## DQL:查询表中的记录
* select * from 表名;
1. 语法:
* select
字段列表
from
表明列表(逗号分隔)
where
条件列表
group by
分组字段
having
分组后的条件
order by
排序
limit
分页限定
2.基础查询
1. 多个字段的查询
* SELECT NAME,age FROM student3;
2. 去除重复
![](https://i-blog.csdnimg.cn/blog_migrate/24186b053365967187f15c67127ff324.png)
3. 计算列
* 一般可以使用四则运算计算一些列的值。(一般只会进行数值型计算)
* ifnull(表达式1,表达式2):null参与的运算,计算得值都为null
* 表达式1:哪个字段需要判断是否为null
* 表达式2:如果表达式1为null的替换值
* SELECT NAME,math + english FROM student3;
* 如果有null 参与运算,计算结果都为null
SELECT NAME,math,english,math + IFNULL(english,0) AS 总分 FROM student3;
4. 起别名
* AS :as 可以省略。
* SELECT NAME,math 数学,english 英语,math + IFNULL(english,0) AS 总分 FROM student3;
3.条件查询
1.where子句后跟条件
2. 运算符
* like : 模糊查询
* 占位符
* _ : 单个任意字符
* %: 任意多个字符
* and 或 &&
* or 或 ||
* not 或 !
模糊查询:LIKE
排序查询:
语法:order by 子句
* order by 排序字段1 排序方式1,排序字段2 排序方式2...
排序方式:
* ASC : 升序,默认的。
* desc : 降序
* 注意 :
如果有多个排序条件,则当前一个条件值一样时,才会判断第二个条件。
2.聚合函数 :将以列数据作为一个整体,进行总想计算。
1. count : 计算个数
2. max: 计算最大
3. min : 计算最小
4. sum : 计算和
5. avg :计算平均值
* 注意 :聚合函数的计算,排除null
解决方案:
1. 选择不包含非空的列进行纵向计算
2.ifnull函数
3. 分组查询
* 语法 :group by 分组字段
2. 注意:
1. 分组之后查询字段:分组字段,聚合函数
2. where 和 having 的区别?
1. where在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限 定,如果不满足结果,则不会被查询出来
2.where 不可以跟聚合函数,having可以进行聚合函数的判断。
4. 分页查询
1.语法:limit 开始的缩引,每页查询的条数
2. 分页操作是个“方言”