数据库经典查询23道题(附答案) .pdfVIP

  • 7
  • 0
  • 约4.71千字
  • 约 3页
  • 2023-12-30 发布于河南
  • 举报

数据库经典查询23道题(附答案)

数据库经典查询23道题(附答案,仅供参考)

1.查询平均⼯资最⾼的部门的部门编号、部门名称和该部门的平均⼯资

selectt.deptno,t.num,d.dnamefrom

(selectdeptno,avg(sal)numfromempgroupbydeptno)t,

deptd

wheret.deptno=d.deptnoandt.num=

(selectmax(avg(sal))numfromempgroupbydeptno)

2.查询所有员⼯的年薪、所在部门的名称,查询结果按年薪从低往⾼排序

selectename,sal*12+nvl(comm,0)sal_year,dnamefrom

empe,deptd

wheree.deptno=d.deptnoorderbysal_year

3.查询每种⼯作的最低⼯资,以及领取该⼯资的员⼯姓名,查询结果显⽰⼯作名称、最低⼯资、领取该⼯资的员⼯姓名

selecte.job,t.sal_min,e.enamefromempe,

(selectjob,min(sal)sal_minfromempgroupbyjob)t

wheree.sal=t.sal_minande.job=t.job

4.查询出管理员⼯⼈数最多的⼈的名字和他管理的⼈的名字

selecte1.ename,wm_concat(e2.ename)fromempe1,empe2wheree1.empno=e2.mgrande1.empno=

(

selectt.mgrfrom(

selectmgr,count(*)numfromempgroupbymgr

)t

wheret.num=(

selectmax(count(*))numfromempgroupbymgr)groupbye1.ename

5.查询所有员⼯的编号、姓名,及其上级领导的编号、姓名。显⽰结果按领导的年薪降序排列

selecte1.empno,e1.ename,e2.empno,e2.ename,e1.sal*12+nvl(m,0)

sal_yearfromempe1,empe2wheree1.empno=e2.mgrorderbysal_year

desc

6.查询所有领取奖⾦和不领取奖⾦的员⼯⼈数、平均⼯资:查询结果的列名分别为:⼈数、平均⼯资:第⼀⾏为有奖⾦的员⼯,第⼆⾏为没有奖

⾦的员⼯

selectcount(*)num,avg(sal)sal_avgfromempwherecommisnotnull

unionall

selectcount(*)num,avg(sal)sal_avgfromempwherecommisnull

7.查询⼯资不超过2500的⼈数最多的部门名称和该部门⼯资不超过2500的员⼯的员⼯⼈数

selectd.dname,t.numfrom(

selectdeptno,count(*)numfromempwheresal2500groupbydeptno

)t,deptdwheret.deptno=d.deptnoandnum=(

selectmax(count(*))numfromempwheresal2500groupbydeptno

)

selectd.dname,t.numfromdeptd,

(select*from(

selectdeptno,count(*)numfromempwheresal2500groupbydeptno

)wherenum=(

selectmax(count(*))numfromempwheresal2500groupbydeptno

))twhered.deptno=t.deptno

8.查询受雇⽇期早于其直接上级的所有员⼯的编号,姓名,部门名称

selecte2.ename,e2.empno,d.dnamefromempe1,empe2,deptd

wheree1.empno=e2.mgrande2.hiredatee1.hiredate

ande2.deptno=d.deptno

selecte

文档评论(0)

1亿VIP精品文档

相关文档