一.查找每个员工的姓名,部门编号,薪水和薪水等级
select emp.ename, emp.deptno, emp.sal, SALGRADE.GRADE
from emp
join SALGRADE
on emp.sal>=LOSAL and emp.sal<=HISAL;
二.查找每个部门的编号,以及该部门所有员工的平均工资,平均工资等级;
我们先慢慢尝试,先查找每个部门的编号,以及该部门所有员工的平均工资
select deptno,avg(sal) as "部门平均工资"
from emp
group by deptno;
再与第其他表建立联系:将上述语句形成的临时表用括号括起来,当做一个表,与salgrade表连接,这一点对于初学者很难想到;
三.查找每个部门的编号,部门名称,以及该部门所有员工的平均工资,平均工资等级;
select t.deptno, dept.dname as "部门名称", t.部门平均工资, SALGRADE.GRADE
from (
select emp.deptno,avg(sal) as "部门平均工资"
from emp
join dept
on emp.deptno=dept.deptno
group by emp.deptno) as "T"
join SALGRADE
on T."部门平均工资" between salgrade.LOSAL and SALGRADE.HISAL
join dept
on t.deptno=dept.deptno;
练习必须基于对表的熟悉的基础上,当然我们也可以右击“数据关系库”——新建数据库关系图——全选(长按shift)——添加,关闭,就可以“俯瞰”这些表的关系和字段名称了;
表名的大小写不影响语句的执行;