文前附sql语句学习链接
https://www.w3cschool.cn/sql/
一、基础语句
1.找出工资是800的员工
select ename,sal from emp where sal=800;
2.找出叫Smith的人
select ename,sal from emp where ename='smith';
3.找出工资大于1500的员工
select ename,sal from emp where sal>1500;
4.找出工资小于1000的员工
select ename,sal from emp where sal<1000;
5.找出工资大于1000的和小于2900的员工
mysql> select ename,sal from emp where sal>1000 and sal<2900;
6.between语句
mysql> select ename,sal from emp where sal between 1100 and 3000;
7.查找工种为salesman的工资在1000和3000之间的员工
由于有优先级顺序,故后面的语句用括号括起来
select ename,job,sal from emp where job='salesman'and(sal>1000 or sal<3000);
8.查找工种为salesman和clerk的员工
select ename,job from emp where job='salesman'or job='clerk';
二、like模糊查询 *
1.查找名字中包含字母t的员工
select ename from emp where ename like '%t%';
2.查找名字中第二个字母是l的员工
select ename from emp where ename like '_l%';
**
3.查找以a,j,b开头的员工
由于版本不支持,暂时此语句无法运行,无截图;
select ename frome emp where ename like '[ajb]%';
三、多行函数,聚合函数
**:输入多行,产出一行。自动忽略NULL值。不参与运算。
count 统计
max 最大值
min 最小值
sum 总和
avg 平均值
NULL此处的值不存在,不是空,’'不是0
1.计算员工一年所得
select ename,(sal+comm)*12 from emp;
null和任何数值运算,结果为NULL;
ifnull()函数,使为null的值为0;
select ename,(sal+ifnull(comm,0))*12 from emp;
2.找出没有津贴的员工
select ename,comm from emp where comm is null;
3.找出有津贴的员工津贴的和
select sum(comm) from emp;
四、分组group by
分组:一般情况是和聚合函数一起用:
select
参与分组的列名,聚合函数,
from
…
group by
分组的列名;
1.计算每个工种的工资的平均值
select avg(sal) from emp group by job;
2.部门的工资总和
select deptno,sum(sal) from emp group by deptno;
3.部门中不同工种的最高工资
select deptno,job,max(sal) from emp group by deptno,job;
五、order by 排序。
asc是指定列按升序排列,desc则是指定列按降序排列。
默认升序
1.,
select ename,sal from emp order by sal desc;
2.工资降序排列相同的按名字的字母升序。(多个排序)
select ename,sal from emp order by sal,ename asc;