1.简单查询
2.条件查询
2.1语法格式:
select 字段,字段,字段....
from
表名
where
条件;
执行顺序:先from 然后where,最后select。
mysql中,字符串用’ '单引号括起来
2.2模糊查询like
在模糊查询当中,必须掌握两个特殊符号,一个是%,一个是_;%代表任意多个字符,_代表任意一个字符
找出名字当中含有O的?
select * from emp where ename like '%O%';
找出第二个字母是A的?
select * from emp where ename like '_A%';
2.3.排序
默认升序
asc表示升序,desc表示降序
按照工资升序,找出员工名和薪资?
select
ename,sal
from
emp
order by
sal asc(或者desc);
按照工资的降序排列,当工资相同的时候再按照名字的升序排列
select ename,sal from emp order by sal desc , ename sac;
执行顺序:先from,再where,然后select ,最后order
2.4 分组函数(多行处理函数)
count 计数
sum 求和
avg 平均值
max 最大值
min 最小值
记住:所有的分组函数都是对“某一组”数据进行操作的。
分组函数自动忽略NULL
找出工资总和:
select sum(sal) from emp;
2.5 group by 和 having
group by :按照某个字段或者某些字段进行分组。
having :对分组之后的数据进行再次过滤
案例:找出每个工作岗位的最高薪资
select max(sal) from emp group by job;
注意:分组函数一般都会和group by联合使用,并且任何一个分组函数都是在group by语句执行结束之后才会执行。
找出每个部门最高薪资,要求显示薪资大于2500的数据
select max(sal),deptno from emp where sal >2900 group by deptno ;
找出每个部门的平均薪资,要求显示薪资大于2000的数据
select avg(sal),deptno from emp group by deptno having avg(sal)>2000;
select deptno,avg(sal) from emp where avg(sal)>2000 group by deptno ;//错误
where后面不能使用分组函数。
2.6 关于查询结果集的去重
distinct关键字只能出现在所有字段的最前面,表示后面的字段联合起来去重。
案例:
select distinct job from emp;
案例:统计岗位数量
select count(distinct job) from emp;
总结一个完整的DQL语句:
select 5
…
from 1
…
where 2
…
group by 3
…
having 4
…
order by 6
…