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 | 要提取的结果行数 | 否 |