根据Oracle数据库scott模式下的emp表和dept表.docx
- 文档编号:13466955
- 上传时间:2023-06-14
- 格式:DOCX
- 页数:9
- 大小:17.64KB
根据Oracle数据库scott模式下的emp表和dept表.docx
《根据Oracle数据库scott模式下的emp表和dept表.docx》由会员分享,可在线阅读,更多相关《根据Oracle数据库scott模式下的emp表和dept表.docx(9页珍藏版)》请在冰点文库上搜索。
根据Oracle数据库scott模式下的emp表和dept表
根据Oracle数据库scott模式下的emp表和dept表
题U要求:
根据Oracle数据库scott模式下的emp表和dept表,完成下列操作。
(1)查询20号部门的所有员工信息。
select*fromempwheredeptno=20;
(2)查询所有工种为CLERK的员工的工号、员工名和部门名。
selectempno,ename,deptnofromempwherejoblike'CLERK';(3)查询奖金(COMM)高于工资(SAL)的员工信息。
select*fromempwherecomm>sal;
(4)查询奖金高于工资的20%的员工信息。
select*fromempwherecomm>(sal*0.2);
(5)查询10号部门中工种为MANAGER和20号部门中工种为CLERK的员工的信息。
select*fromemp
where(deptno=10andjoblike'MANAGER')or(deptno=20andjoblike'CLERK');
(6)查询所有工种不是MANAGER和CLERK,且工资大于或等于2000的员工的详细信
息。
select*fromemp
金的员工的不同工种。
工工资和奖金的和。
selectename,(sal+nvl(comm,0))salcommfromemp;(9)查询没有奖金或奖金低于100的员工信息。
select*fromempwhere(commisnullorcomm<100);(10)查询各月倒数笫2天入职的员工信息。
select*fromempwherehiredatein(select(last_day(hiredate)-1)fromemp);
(11)查询员工工龄大于或等于10年的员工信息。
select*fromempwhere(sysdate-hiredate)/365>=10;(12)查询员工信息,要求以首字母大写的方式显示所有员工的姓名。
selectupper(substr(ename,1,1))
lower(substr(ename,2,length(ename)T))fromemp;
(13)查询员工名正好为6个字符的员工的信息。
select*fromempwherelength(ename)=6;
(14)查询员工名字中不包含字母"S”员工。
select*fromempwhereenamenotin(selectenamefromempwhereenamelike';
select*fromempwhereenamenotlike"%S%f;
(15)查询员工姓名的第2个字母为“M”的员工信息。
select*fromempwhereenamelike';
(16)查询所有员工姓名的前3个字符。
selectsubstr(ename,1,3)fromemp;
(17)查询所有员工的姓名,如果包含字母“s”,则用“S”替换。
selectreplace(ename,'s'/S')fromemp;
(18)查询员工的姓名和入职日期,并按入职日期从先到后进行排列。
selectename,hiredatefromemporderbyhiredateasc;(19)显示所有的姓名、工种、工资和奖金,按工种降序排列,若工种相同则按工资升序
排列。
selectename,job,sal,commfromemporderbyjobdesc,salasc;
(20)显示所有员工的姓名、入职的年份和月份,若入职日期所在的月份排序,若月份相
同则按入职的年份排序。
selectename,to_char(hiredate,'yyyy,)丨'i丨to_char(hiredate,'mm')fromemporderby
to_char(hiredate,'mm'),to_char(hiredate,'yyyy');
(21)查询在2月份入职的所有员工信息。
select*fromempwhereto_char(hiredate,Jmni)=2;
(22)查询所有员工入职以来的工作期限,用“桂年材月**日”的形式表示。
selectename,floor((sysdate-hiredate)/365);「年
'Ifloor(mod((sysdate-hiredate),365)/30)I丨’月
'icell(mod(mod((sysdate-hiredate),365),30))丨丨‘天'fromemp;
(23)查询至少有一个员工的部门信息。
select*fromdeptwheredeptnoin(selectdistinctdeptnofromempwheremgrisnotnull);(24)查询工资比SMITH员工工资高的所有员工信息。
'SMITH');(25)查询所有员工的姓名及其直接上级的姓名。
tjoinempon
t・mgr二emp・empno;
(26)查询入职日期早于其直接上级领导的所有员工信息。
select*fromempwhereempnoin(selectstaempnofrom(selectempnostaempno,hiredate
stahiredate,mgrfromemp)tjoinempont・mgr=emp.empnoandstahiredate select*fromdeptleftjoinemponemp・deptno=dept・deptnoorderbydept,deptno;(28)查询所有员工及其部门信息,包括那些还不属于任何部门的员工。 (29)查询所有工种为CLERK的员工的姓名及其部门名称。 selectename,dnamefromempjoindeptonjoblike'CLERK'and emp・deptno二dept・deptno; (30)查询最低工资大于2500的各种工作。 selectjobfrom(selectmin(sal)min_sal,jobfromempgroupbyjob)wheremin_sal>2500;(31)查询最低工资低于2000的部门及其员工信息。 select*fromempwheredeptnoin(selectdeptnofrom(selectmin(sal)min_sal,deptnofrom empgroupbydeptno)wheremin_sal<'2000"); (32)查询在SALES部门工作的员工的姓名信息。 selectenamefromempwheredeptno=(selectdeptnofromdeptwherednamelike'SALES');(33)查询工资高于公司平均工资的所有员工信息。 (34)查询与SMITH员工从事相同工作的所有员工信息。 select*fromempwherejobin(selectjobfromempwhereenamelike SMITH')andename notlike'SMITH'; (35)列出工资等于30号部门中某个员工工资的所有员工的姓名和工资。 selectename,sal fromempwheresal=any(selectsalfromempwhere deptno=30);(36) 查询工资高于30号部门中工作的所有员工的工资的员工姓 名和工资。 selectename,sal fromempwheresal>all(selectsalfromempwhere deptno=30);(37) 查询每个部门中的员工数量、平均工资和平均工作年限。 selectdname,count,avg_sal,avg_datefromdeptjoin(selectcount(*)count,avg(sal) avg_sal,avg((sysdate-hiredate)/365)avg_date,deptnofromempgroupbydeptno)ton dept・deptno=t・deptno; (38)查询从事同一种工作但不属于同一部门的员工信息。 selectdistincttl・empno,tl・ename,tl・deptnofromemptljoinempt2ontl.jobliket2・joband tl・deptno<>t2・deptno; (39)查询各个部门的详细信息以及部门人数、部门平均工资。 person_num,avg(sal) avg^sal,deptnofromempgroupbydeptno)twheredept・deptno=t.deptno;(40)查询各种工作的最低工资。 selectjob,min(sal)fromempgroupbyjob; (41)查询各个部门中的不同工种的最高工资。 selectmax(sal),job,deptnofromempgroupbydeptno,joborderbydeptno,job; (42)查询10号部门员工以及领导的信息。 select*fromempwhereempnoin(selectmgrfromempwhere deptno=10)ordeptno=10; (43)查询各个部门的人数及平均工资。 selectdeptno,count(*),avg(sal)fromempgroupbydeptno; (44)查询工资为某个部门平均工资的员工信息。 select*fromempwheresalin(selectavg(sal)avg_salfromemp groupbydeptno);(45)查询工资高于本部门平均工资的员工的信息。 selectemp・*fromempjoin(selectdeptno,avg(sal)avg_salfromempgroupbydeptno)ton emp・deptno=t・deptnoandsal>avg_sal; (46)查询工资高于本部门平均工资的员工的信息及其部门的平均工资。 selectemp.*,avg_salfromempjoin(selectdeptno,avg(sal)avg_salfromempgroupby deptno)tonemp・deptno=t・deptnoandsal>avg_sal; (47)查询工资高于20号部门某个员工工资的员工的信息。 deptno二20);(48)统计各个工种的人数与平均工资。 (49)统计每个部门中各个工种的人数与平均工资。 selectdeptno,job,count(*),avg(sal)fromempgroupbydeptno,joborderbydeptno,job;(50)查询匸资、奖金与10号部门某个员工工资、奖金都相同的员工的信息。 selectemp・*fromempjoin(selectsal,commfromempwheredeptno=10)tonemp・sal^t・sal andnvl(emp・comm,0)=nvl(t・comm,0)andemp・deptno! =10; (51)查询部门人数大于5的部门的员工的信息。 select*fromempwheredeptnoin(selectdeptnofromempgroupbydeptnohaving count(*)>5); (52)查询所有员工工资都大于1000的部门的信息。 select*fromdeptwheredeptnoin(selectdistinctdeptnofromempwheredeptnonotin (selectdistinctdeptnofromempwheresal<1000)); (53)查询所有员工工资都大于1000的部门的信息及其员工信息。 select*fromempjoindeptondept・deptnoin(selectdistinctdeptnofromempwheredeptno notin(selectdistinctdeptnofromempwheresal<1000))anddept,deptno二emp.deptno;(54)查询所有员工工资都在900^3000之间的部门的信息。 select*fromdeptwheredeptnoin(selectdistinctdeptnofromempwheredeptnonotin 3000)); (55)查询所有工资都在900^3000之间的员工所在部门的员工信息。 select*fromempwheredeptnoin(selectdistinctdeptnofromempwheredeptnonotin (selectdistinctdeptnofromempwheresalnotbetween900and 3000));(56)查询每个员工的领导所在部门的信息。 select*from(selectel.empno,el・ename,el・mgrmno,e2・ename mname,e2・deptnofromemp eljoinempe2onel.mgr=e2・empno)tjoindepton t.deptno=dept.deptno;(57)查询人数最多的部门信息。 select*fromdeptwheredeptnoin(selectdeptnofrom(selectcount(*)count,deptnofrom empgroupbydeptno)wherecountin(selectmax(count)from(selectcount(*)count,deptno fromempgroupbydeptno))); (58)查询30号部门中工资排序前3名的员工信息。 select*fromempwhereempnoin(selectempnofrom(select empno,salfromempwhere deptno=30orderbysaldesc)whererownum<4); (59)查询所有员工中工资排在5~10名之间的员工信息。 select*fromempwhereempnoin(selectempnofrom(selectempno,rownumnumfrom and10); selectempnofrom(selectempno,salfromemporderbysaldesc) whererownum<=10 minusselectempnofrom(selectempno,salfromemporderbysaldesc) whererownum<5;(60)查询SMITH员工及所有其直接、间接下属员工的信息。 (61)查询SOCTT员工及其直接、间接上级员工的信息。 (62)以树状结构查询所有员工与领导之间的层次关系。 (63)向emp表中插入一条记录,员工号为1357,员工名字为oracle,匸资为 2050元, 部门号为20,入职日期为2002年5月10So insertintoemp(empno,ename,sal,deptno,hiredate)values (1357,'oracle',2050,20,to-date(,2002 年5月10日','yyyy〃年〃mm"月"dd"日〃')); (64)向emp表中插入一条记录,员工名字为FAX,员工号为8000,其他信息 与SMITH 员工的信息相同。 (65)将各部门员工的工资修改为该员工所在部门平均工资加1000c updateemptlsetsal=(selectnew_salfrom(selectavg(sal)+1000 new_sal,deptnofromemp groupbydeptno)t2wheretl・deptno=t2・deptno)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 根据 Oracle 数据库 scott 模式 emp dept