2018.12.21简单查询和多表连接查询课后习题

简单查询

查询入职时间在1982-7-9之后,并且不从事SALESMAN工作的员工姓名、入职时间、职位。

select ename,hiredate,job
from emp
where hiredate >'1982-07-09'and job <> 'salesman'

查询员工姓名的第三个字母是a的员工姓名。

SELECT ename
from emp
where ename like '__a%'

查询除了10、20号部门以外的员工姓名、部门编号。

select ename,deptno
from emp 
where deptno not in(10,20)

查询部门号为30号员工的信息,先按工资降序排序,再按姓名升序排序。

select *
from emp
where deptno = 30
ORDER BY sal desc,ename asc

查询没有上级的员工(经理号为空)的员工姓名。

select *
from emp
where mgr is null

查询工资大于等于4500并且部门为10或者20的员工的姓名\工资、部门编号。

SELECT ename,sal,deptno
FROM emp
where sal > 4500 and (deptno in (10,20))

多表连接查询

显示员工SMITH的姓名,部门名称,直接上级名称

select e.ename,dname,d.ename
from emp e join emp d
on e.mgr = d.empno
join dept s
on e.deptno = s.deptno
where e.ename = 'smith'

显示员工姓名,部门名称,工资,工资级别,要求工资级别大于4级。

SELECT ename,dname,sal,grade
from emp e join dept d
on e.deptno = d.deptno
join salgrade
on e.sal between losal and hisal
where grade > 4

显示员工KING和FORD管理的员工姓名及其经理姓名。重点是要第三个表
左连接之前的两个表,这样才能显示king

select e.ename,m.ename,d.ename
from emp e join emp m
on e.mgr = m.empno
left join emp d
on m.mgr = d.empno
where m.ename in ('king','ford')

显示员工姓名,参加工作时间,经理名,
参加工作时间,要求参加时间比经理早。

select e.ename,e.hiredate,m.ename
from emp e join emp m
on e.mgr = m.empno
where e.hiredate < m.hiredate
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值