2020-08-11DQL_查询
2020-08-19 本文已影响0人
智障猿
语法
select 字段列表 from 表名列表 where 条件列表 group by 分组字段 having 分组之后的条件 order by 排序 limit 分页限定
基础查询
- 多个字段的查询
select 列名,列名 from 表名; - 去除重复
select distinct 列名 from 表名; - 计算列
select 列名+列名 from 表名;
select 列名+ifnull(列名,0) from 表名; - 起别名
select 列名+列名 as 别名 from 表名;
条件查询
- where 子句后面跟条件
- 运算符
- >,<,<=,>=,=,<>
- BETWEEN...AND...
select * from 表名 where 列名 between 20 and 90;
select * from 表名 where 列名 >=20 and 列名<=90; - LIKE
模糊查询
占位符:_:单个字符的占位符;%:任意多个字符的占位符
select * from 表名 where 列名 LIKE “%马%”;
select * from 表名 where 列名 LIKE “ 马__” - IS NULL
select * from 表名 where 列名 is NULL;
select * from 表名 where 列名 is not NULL; - and 或 &&
- or 或 ||
- not 或 !
- in
select * from 表名 where 列名 in (20,60,80);
select * from 表名 where 列名= 20 or 列名=60 or 列名=80;
排序查询
- 语法
order by 排序字段1 排序方式1,排序字段2 排序方式2; - 排序方式
ASC:升序
DESC:降序 - 注意
如果不指定排序方式,默认为升序 -
例子
select * from 表名 ORDER BY 列名 ASC,列名 DESC;
聚合查询
将一列数据作为一个整体,进行纵向的计算,结果为单行单列的一个值
- 语法
select 聚合函数(列名) from 表名;
函数 | 说明 |
---|---|
count | 计算个数(一般选择非空的列) |
max | 计算最大值 |
min | 计算最小值 |
sum | 计算和 |
avg | 计算平均值 |
-
例子
select count(列名) from 表名; - 注意
聚合函数的计算会排除NULL值,为得到包含null的列数可以使用以下方法
①选择不包含null的列进行计算
②使用IFNULL函数:select count(IFNULL(列名,0)) from 表名;
分组查询
- 语法:group by 分组字段;
- 注意:
①分组之后查询的字段:分组字段、聚合函数
②where和having的区别 -
where和having的区别
①where在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足条件,则不会被查询出来。
②where后不可以跟聚合函数,having之后可以进行聚合函数的判断。 -
例子
select sex,AVG(math),COUNT(id) from student where math > 70 GROUP BY sex having COUNT(id)>2;
select sex,AVG(math),COUNT(id) as 人数 from student where math > 70 GROUP BY sex having 人数>2;
分页查询
- 语法
limit 开始的索引,每页查询的条数 -
公式
开始的索引=(当前的页码-1)*每页显示的条数 -
例子
select * from 表名 limit 0,10;
select * from 表名 limit 10,10;