ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

oracle表操作和数据库对象(视图,序列,索引)的相关练习

2019-08-06 13:42:54  阅读:193  来源: 互联网

标签:ename join 视图 索引 emp oracle deptno e1 select


oracle表操作和数据库对象(视图,序列,索引)的相关练习

--1.列出所有雇员的姓名及其直接上级的姓名
  select e1.ename,e2.ename from emp e1
  inner join emp e2
  on e1.mgr=e2.empno
--2.列出部门名称和这些部门的雇员,同时列出那些没有雇员的部门;
  select * from emp e
  right join dept d
  on e.deptno=d.deptno
--3.显示所有部门在"洛阳"(dept表 loc字段)的员工姓名
  select * from emp e
  inner join dept d
  on e.deptno=d.deptno
  inner join city c
  on d.loc=c.cid
  where c.cname='洛阳'
--4.显示员工"WARD"的姓名,部门名称
select e.ename,d.dname from emp e
inner join dept  d
on e.deptno=d.deptno
where e.ename='WARD'
--5.显示员工姓名,部门名称,工资,工资级别(salgrade表 grade字段),要求工资级别大于4级
select * from emp e 
inner join dept d
on e.deptno=d.deptno
inner join salgrade s
on e.sal> =s.losal and e.sal<=s.hisal
where s.grade>4
--6.显示员工"KING"和"FORD"管理的员工姓名及其经理姓名
  select * from emp e1
  full join emp e2
  on e1.mgr=e2.empno
  inner join emp e3
  on e1.empno=e3.mgr
  where e1.ename='KING' or e1.ename='FORD'
--7.显示员工名,参加工作时间,经理名,参加工作时间:参加工作时间比他的经理早
select e1.ename,e1.hiredate,e2.ename,e2.hiredate from emp e1
inner join emp e2
on e1.mgr=e2.empno
where e1.hiredate<e2.hiredate
--8、求出部门名称中,带'S'字符的部门员工的工资总和 、部门人数
select d.dname, sum(e.sal),count(*) from emp e
inner join dept d
on e.deptno=d.deptno
where d.dname like '%S%'
group by d.dname

--9、列出所有员工的年工资,按年薪从低到高排序
select ename,(sal+nvl(comm,0))*12 年薪 from emp order by 年薪
--10、列出各种工作的最低工资以及从事此工作的雇员姓名
select * from emp e ,(select min(sal) msal,job from emp group by job) s where e.job=s.job and e.sal=s.msal
--11、列出所有部门的详细信息和部门人数
select * from dept d ,(select d.deptno, count(empno) from emp e,dept d where e.deptno(+)=d.deptno group by d.deptno) s
where d.deptno=s.deptno
--12、列出所有员工的姓名、部门名称和工资
select e.ename,d.dname,e.sal from emp e
inner join dept d
on e.deptno=d.deptno
--13、查询员工信息: 员工的名字 老板的名字  
select e.ename,m.ename from emp e,(select * from emp where mgr is null) m
--14、要求查询出每一个雇员的编号、姓名、工资、部门名称、工资在所在公司的工资等级 
--15、按照职位分组,求出每个职位的最高工资、最低工资以及平均工资 
select job,max(sal),min(sal),avg(sal) from emp group by job
--16、统计平均工资大于2000的部门的详细信息
select * from dept d,(select deptno, avg(sal) asal from emp group by deptno) s
where d.deptno=s.deptno and s.asal>2000
 

标签:ename,join,视图,索引,emp,oracle,deptno,e1,select
来源: https://blog.csdn.net/bingmo_/article/details/98608023

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有