DQL : 查询表中的数据
查询语法
SELECT
字段列表
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段
HAVING
分组之后的条件
ORDER BY
排序
LIMIT
分页限定
基础查询
-
查询多个字段
SELECT id,name,sex FROM 表名;
-
去重查询
SELECT DISTINCT 字段名称 FROM 表名;
-
起别名
SELECT id,name AS 姓名,sex 性别 FROM 表名;
条件查询
where子句后的条件
- 运算符
- > < >= <= = !=(<>)
- BETWEEN…AND
- IN(…,…,…)
- IS (NOT) NULL
- AND 或 &&
- OR 或 ||
- NOT 或 !
- LIKE 模糊查询
- _ : 单个任意字符
- % : 多个任意字符
排序查询
-
语法
... order by 排序字段1 排序方式1,排序字段2 排序方式2;
-
排序方式
- ASC : 升序(默认)
- DESC : 降序
注意:如果有多个排序条件,当前面的条件一样时才会执行后边的条件。
聚合函数
将一列数据作为一个整体,进行纵向的计算
- count() : 计数
- max() : 返回最大值
- min() : 返回最小值
- sun() : 计算和
- avg() : 计算平均数
注意: 聚合函数的计算,会排除null值。
解决方案:
1-选择不包含非空的列进行计算
2-IFNULL ();
分组查询
- 语法 :
...GROUP BY 分组字段
注意:
1- 分组后之后查询的字段:分组字段,聚合函数
2-where 和having 的区别?
where 在分组之前进行限定,如果不满足条件,则不参与分组;having在分组之后进行限定,如果不满足结果,则不会被查询出来
- where后不可以使用聚合函数,having可以使用聚合函数。
分页查询
- 语法:
... limit 开始的索引,每页的显示的条数;
- 开始的索引公式:(当前页码-1) * 每页的显示的条数
limit是mysql的”方言“