1.DQL:查询表中的记录
select * from 表名
语法:
select
字段列表
from
表名列表
where
条件列表
group by
分组字段
having
组分之后的条件
order by
排序
limit
分页限定
2.基础查询
1.多个字段的查询
select 字段名1,字段名2...from 表名;
*注意:
如果查询所有字段,则可以使用*来代替字段列表
2.去除重复
distinct
3.计算列
1.一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算)。
2.ifnull(表达式1,表达式2):null参与的运算,计算结果都是null
表达式1:哪个字段需要判断是否为null,如果该字段为null,就用表达式2替换。
4.起别名
as:as也可以省略,用空格。
3.条件查询
1.where子句后跟条件
2.运算符
>,<,<=,>=,=,<>(不等于)
BETWEEN...AND...
IN(集合)
LIKE:模糊查询
1._:单个任意字符
2.%:多个任意字符
IS NULL
AND 或者 &&
OR 或者 ||
not 或 |
4.顺序查询
语法:order by子句
order by 排序字段1 排序方式1,排序字段2 排序方式2....
排序方式:
ASC:升序,默认的。
DESC:降序。
注意:
如果有多个排序条件,则当前边的条件值一样的,才会判断第二个条件
5.聚合函数
聚合函数:将一列数据作为一个整体,进行纵向的计算
1.count:计算个数
1.一般选择非空的列:主键
2.count(*)
2.max:计算最大值
3.min:计算最小值
4.sum:计算和
5.avg:计算平均值
*注意:聚合函数的计算,排除NULL值。
解决方案:
1.选择不包含非空的列进行计算
2.IFNULL函数
6.分组查询
1.语法:group by 分组字段;
2.注意:
1.分组之后查询的字段:分组字段,聚合函数
2.where 和having的区别:
1.where在分组之前进行限定,如果不满足条件,则不参与分组.having在分组之后进行限定,如果不满足结果,则不会被查询出来
2.where后不可以跟聚合函数,having可以进行聚合函数的判断。
7.分页查询
1.语法:limit 开始的索引,每页查询的条数;
2.公式:开始的索引 = (当前的页数 - 1)* 每页显示的条数
示例代码:
每页显示三条数据:
select * from students limit 0,3;--第一页 select * from students limit 3,3;--第二页 select * from students limit 6,3;--第三页
3.limit是一个MySQL特有的。