MySQL的增删改查语句总结
添加数据
格式:insert into 表名[(字段列表)] values(值列表...); 注:[]中为可省略的数据
-- 标准添加(指定所有字段,给定所有的值)
修改数据
格式:update 表名 set 字段1=值1,字段值2=值2,字段n=值n ...where 条件
-- 将id为2的age改为22,sex改为男
删除数据
格式:delete from 表名 [where 条件]
-- 删除stu表中id值为11的数据
查询语句
语法格式:
select
基础查询
# 查询表中所有列 所有数据
Where 条件查询
- 可以在where子句中指定任何条件
- 可以使用 and 或者 or 指定一个或多个条件
- where条件也可以运用在update和delete语句的后面
- where子句类似程序语言中if条件,根据mysql表中的字段值来进行数据的过滤
示例:
-- 查询stu表中 age > 22的数据
and和or 使用时注意 (and 优先级大于 or)
假设要求 查询 users 表中 年龄为22或者25 的女生信息
select * from users where age=22 or age = 25 and sex = '女';
思考上面的语句能否返回符合条件的数据?
实际查询结果并不符合要求?
select
Like 子句
我们可以在where条件中使用=,<,> 等符合进行条件的过滤,但是当想查询某个字段是否包含时如何过滤?
可以使用like语句进行某个字段的模糊搜索,
例如: 查询 name字段中包含五的数据
-- like 语句 like某个确定的值 和。where name = '王五' 是一样
注意:where子句中的like在使用%或者_进行模糊搜索时,效率不高,使用时注意:
- 尽可能的不去使用%或者_
- 如果需要使用,也尽可能不要把通配符放在开头处
Mysql中的统计函数(聚合函数)
可以使用like语句进行某个字段的模糊搜索,
例如: 查询 name字段中包含五的数据
count(),max(),min(),sum(),avg()
# 计算 users 表中 最大年龄,最小年龄,年龄和及平均年龄
聚合函数除了以上简单的使用以外,通常情况下都是配合着分组进行数据的统计和计算
group by分组
group by 语句根据一个或多个列对结果集进行分组
一般情况下,是用与数据的统计或计算,配合聚合函数使用
-- 统计 stu 表中 男女生人数,
having子句
having时在分组聚合计算后,对结果再一次进行过滤,类似于where,
where过滤的是行数据,having过滤的是分组数据
-- 要统计班级人数
orded by
ORDER BY 语句用于根据指定的列对结果集进行排序。ORDER BY 语句默认按照升序对记录进行排序。如果您希望按照降序对记录进行排序,可以使用 ASC(升序)、DESC(降序) 关键字。
limit
limit子句用于限制查询结果返回的数量,常用于分页查询
# 查询10条数据,索引从0到9,第1条记录到第10条记录
课后练习题
-- 1. 统计班级 classid为2的男女生人数?
总结:
mysql中的查询语句比较灵活多样,所以需要多加练习,
并且在使用查询语句时,一定要注意sql的正确性和顺序
| 子句 | 说明 | 是否必须 | | -------- | -------------------------------- | ------------------ | | select | 要返回的列或表达式,字段列表| * | 是 | | from | 查询的数据表 | 需要在表中查询时 | | Where | 数据行的过滤 | 否 | | group by | 分组 | 仅在分组聚合计算时 | | having | 分组后的数据过滤 | 否 | | order by | 输出排序 | 否 | | limit | 要提取的结果行数 | 否 |