数据查询语言
条件查询需要用到where语句,where必须放到from语句表后面
运算符 | 说明 |
---|---|
= | 等于 |
<>或!= | 不等于 |
< | 小于 |
> | 大于 |
<= | 小于等于 |
>= | 大于等于 |
between...and... | 两个值之间,相当于>=and<= |
is null | 为null(is not null不为空) |
and | 并且 |
or | 或者 |
in | 包含,相当于多个or(not in 不在这个范围中) |
not | not可以取非,主要用于is或in中 |
like | like称为模糊查询,支持%或下划线匹配 |
数据排序语言
-
基于一个字段的排列
//根据字段2的升序,对字段1,字段2提取
select 字段1,字段2 from emp order by 字段2;
select 字段1,字段2 from emp order by 字段2 asc;
//根据字段2的降序,对字段1,字段2提取
select 字段1,字段2 from emp order by 字段2 desc;
-
基于多个字段的排列
//按照字段2的降序,当字段2相同时,再按照字段1的升序排列
//字段靠前主导作用越大
select 字段1 , 字段2 from emp order by 字段2 desc , 字段1 asc;
分组函数
-
count 计数
-
sum 求和
-
avg 平均值
-
max
-
min
-
以上5个都是基于某一组数据进行的
//计算某字段包括的所有的数据总和
eg: select sum(某字段) from emp;
-
自动忽略null,不需要手动去除
-
分组函数不可以直接使用在where子句中
-
count(*)和count(某个字段)之间的区别:
count(*)是指所有的值的个数,count(某个字段)所有不为null的值的个数
group by和having
-
group by : 按照某个字段或者某些字段进行分组
-
having : having是对分组之后的数据进行再次过滤
-
分组函数一般都会和group函数联合使用,这也是分组函数名字的由来
-
任何一个分组函数(count,sum,avg,max,min)都是在group by 语句执行结束之后才会执行f
-
当一条语句中有group by函数时,select后面只能跟参加分组的字段以及分组的函数
连接查询
-
查询结果的去重
//关键字distinct去除重复记录
select distinct job from emp;
//distinct关键字只能出现在所有字段的最前方,表示后面所有字段联合一起去重
一个完整的DQL语句
select...
from...
where...
group by...
having...
order by...