DQL:对表中的数据进行查询
①基础查询
1.查询多个字段
select 字段列表 from 表名;
select * from;----查询所有数据
例: select name,age,sex from stu;
2.去除重复元素
select distinct 字段列表 from 表名;
3.起别名
as:as也可以省略
例:select name,math 数学,english 英语 from stu;
②条件查询
1.条件查询语法
select 字段名 from 表名 where 条件列表;
2.条件
符号:>,<,>=,<=,=,!=,<>
between...and 在某个范围内
例: date between '1991-11-11' and '1999-11-11';
in(...) 多选一
like 占位符 模糊查询,_单个任意字符,%多个任意字符
is null ,is not null 是不是null
and或&& 并且
or或|| 或者
not或! 非
③排序查询
1.排序查询语法
select 字段列表 from 表名 order by 排序字段名1 排序方式1,排序字段名2 排序方式...;
排序方式: asc:升序排序(默认值)
desc:降序排序
④分组查询
聚合函数
1.概念:将一列数据作为一个整体,进行纵向计算
2.聚合函数分类:
函数名 功能
count(列名)一般用* 统计数量(一般选用不为null的列)
max(列名) 最大值
min(列名) 最小值
sum(列名) 求和
avg(列名) 平均值
3.聚合函数语法:
select 聚合函数名(列名) from 表;
注意:null值不参与所有聚合函数运算
1.分组查询语法
select 字段列表 from 表名 where 分组前条件 group by 分组 字段名 having 分组后条件过滤
注意:分组之后,查询的字段为聚合函数和分组函数,查询其他字段无任何意义
面试常问:where和having的区别
①执行时机不一样:where是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤
②可判断的条件不一样:where不能对聚合函数进行判断,having可以
执行顺序:where>聚合函数>having
⑤分页查询
1.分页查询语法
select * from 表名 limit 起始索引,查询条目数;
起始索引:从0开始
计算公式:起始索引=(当前页码-1)*每页显示的条数
tips:①分页查询limit是mysql数据库的方言
②oracle分页查询使用rownumber
③SQLServer 分页查询使用top