DATABASE NOTES · 04
系统整理条件、聚合、排序、分组与分页查询。
- DQL
- 单表查询
MySQL 单表查询
系统整理条件、聚合、排序、分组与分页查询。
1.简单查询
#查询所有数据
select * from 库.表名;
#查询指定字段数据
select 列名1,列名2 from 库.表名;
#查询指定字段符合条件数据
select 列名1,列名2 from 库.表名 where 条件;
#去重
select distinct * from 库.表名;
#设置别名
select 列名 as '别名' from 库.表名;
2.条件查询
select * from 库.表名 where 条件;
| 比较运算符 | ||
|---|---|---|
| > < <= >= = <> != | 大于、小于、大于(小于)等于、不等于 | |
| BETWEEN …AND… | 显示在某一区间的值(含头含尾) | |
| IN(set) | 显示在in列表中的值,例:in(100,200) | |
| LIKE ‘张%’ LIKE ‘%涛%’ |
模糊查询,Like语句中, %代表零个或多个任意字符, _代表一个字符, 例如:first_name like ‘_a%’; |
|
| IS NULL IS NOT NULL |
判断是否为空 | |
| 逻辑运算符 | ||
| and | 多个条件同时成立 | |
| or | 多个条件任一成立 | |
| not | 不成立,例:where not(salary>100); |
3.聚合查询
纵向查询
select count() from 库.表名;
| 聚合函数 | 作用 |
|---|---|
| count() | 统计指定列不为NULL的记录行数; |
| sum() | 计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0 |
| max() | 计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算; |
| min() | 计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算; |
| avg() | 计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0 |
注:count 会排除
4.排序查询
select * from 库.表名 order by 列名 desc|asc;
#desc 降序
#asc 升序 默认为升序
5.分组查询
##group by 必须按字段进行分组
##有分组必聚合,后面也要跟聚合的数据(用聚合函数)
##按什么分组,就按什么查询
select * from 库.表名 group by 列名 having 条件;
##having 和 where的区别
# having是先分组再计算再筛选
# where是第一步就进行筛选再分组再计算
6.insert into select 语句
INSERT INTO 新表名 SELECT 列名 FROM 库.表名;
1- 查询的结果 和 保存到目标表的结构要保持一致
2- 查询的结果的字段顺序要和目标表的字段的顺序保持一致, 当然类型、长度也要一致
7.分页查询 ——MySQL方言 不通用
select * from 库.表名 limit [strat] num;
# strat 从第几个数据开始 不写默认为0 从第一行开始
# num 展示几行数据