数值计算 + - * / %
对查询的某个字段的数据可以之间进行计算
1、查询每个员工的姓名,工资和年终奖(年终奖 =工资*5)
2、给1号部门的员工涨薪5快
select ename,sal,sal*5 from emp; update emp set sal=sal+5 where deptno=1;
别名:
给查询的字段起个名字
select ename as '名字' from emp; select ename '名字' from emp; select ename 名字,sal 工资 from emp;
聚合函数
聚合函数就是对查询的多条数据进行统计查询
统计方式:1.平均值 2.最小值 3.最小值 4.求和 5.计数
1.平均值 avg(字段名)
查询2号部门的平均工资
select avg(sal) from emp where deptno = 2;
2.最小值 min(字段)
查询没有领导的员工中最低工资
select min(sal) from emp where mgr is null;
3.最大值 max(字段)
查询1号部门的最高工资
select max(sal) from emp where deptno =1
4.求和 sum(字段名)
查询2号部门的工资总和
select sum(sal) from emp where deptno =2;
5.计数 count(*)
查询工资大于2000快的员工人数
select count(*) from emp where sal>2000;
分组查询 group by
分组查询可以将某个字段相同的数值划分为一组,以组为单位进行统计查询(聚合函数)
1、查询每个部门的平均工资
select deptno,avg(sal) from emp group by deptno;
2、查询每种工作的人数
select job,count(*) from emp group by job;
3、查询每个部门的最高工资
select deptno,max(sal) from emp group by deptno;
4、查询每个部门的人数
select deptno,count(*) from emp group by deptno;
5、查询1号部门每种工作的人数
select job ,count(*) from emp where deptno=1 group by job;
练习:
1.查询没有上级领导的员工编号 empno,姓名,工资 select empno,ename,sal from emp where mgr is null; 2.查询奖金的员工姓名和奖金 select ename,comm from emp where comm is not null; 3.查询名字中包含精的员工姓名和工资 select ename,sal from emp where ename like'%精%'; 4. select *from emp where ename like'_八%'; 5. select*from emp where sal>2000 and deptno=1; 6. select*from emp where sal<1500 or deptno=2; 7. select*from emp where sal in(1500,3000,5000) order by sal asc; 8. select sal,sum(sal) from emp where daptno=3; 9. select sal,count(*) from emp where sal>1000 order by count asc 10. select ename ,count(*) from emp where mgr is not null group by ename; 11.11.查询所有员工信息,按照部门编号升序排序,如果部门编号一致则工资降序 select* from emp order by deptno,sal desc; 12.查询有领导的员工,每个部门的编号和最高工资 select ename,deptno,max(sal) from emp where mgr is not null group by deptno; 13.查询有领导的员工,按照工资升序排序,第3页的2条数据 select ename,sal from emp where mgr is not null order by sal asc limit 2,2; 14.查询员工表中工资高于2000的员工姓名和工资,按照工资升序排序,查询第二页的2条数据 select ename,sal from emp where sal>2000 order by sal asc limit 1,2; 15.查询和销售工作相关的工资资本总和 select sum(sal) from emp where job='销售'; 16.查询程序员人数 select count(*) from emp where job='程序员'; 17.查询1号部门中有领导的员工中的最高工资 select ename,max(sal) from emp where mgr is not null and deptno=1; 18.查询2号部门的最高工资和最低工资 起别名 select min(sal) as '最低工资',max(sal) as '最高工资' from emp where deptno=2; 19.查询1号部门里面名字包含空字的员工姓名 select ename from emp where deptno=1 and ename like '%空%'; 20.查询每个部门工资低于2000的人数 select deptno,count(*) from emp where sal<2000 group by deptno;