oracle面试.docx

上传人:b****2 文档编号:756670 上传时间:2022-10-12 格式:DOCX 页数:10 大小:23.22KB
下载 相关 举报
oracle面试.docx_第1页
第1页 / 共10页
oracle面试.docx_第2页
第2页 / 共10页
oracle面试.docx_第3页
第3页 / 共10页
oracle面试.docx_第4页
第4页 / 共10页
oracle面试.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

oracle面试.docx

《oracle面试.docx》由会员分享,可在线阅读,更多相关《oracle面试.docx(10页珍藏版)》请在冰豆网上搜索。

oracle面试.docx

oracle面试

竭诚为您提供优质文档/双击可除

oracle,面试

  篇一:

oracle精选面试题(附答案及分析)

  oracle精选面试题

  1.查询员工表所有数据,并说明使用*的缺点

  答案:

  select*fromemp;

  使用*的缺点有:

查询出了不必要的列;效率上不如直接指定列名。

  2.查询职位(job)为pResident的员工的工资

  答案:

  select*fromempwherejob=pResident;

  3.查询佣金(comm)为0或为null的员工信息

  答案:

  select*fromempwherecomm=0orcommisnull;

  4.查询入职日期在1981-5-1到1981-12-31之间的所有员工信息

  答案:

  select*fromempwherehiredate

  betweento_date(1981-5-1,yyyy-mm-dd)andto_date(1981-12-31,yyyy-mm-dd);

  5.查询所有名字长度为4的员工的员工编号,姓名

  答案:

  select*fromempwherelength(ename)=4;

  6.显示10号部门的所有经理(manageR)和20号部门的所有职员(cleRk)的详细信息答案:

  select*fromempwheredeptno=10andjob=manageRordeptno=20andjob=cleRk;

  7.显示姓名中没有l字的员工的详细信息或含有sm字的员工信息

  答案:

  select*fromempwhereenamenotlike%l%orenamelike%sm%;

  8.显示各个部门经理(manageR)的工资

  答案:

  selectsalfromempwherejob=manageR;

  9.显示佣金(comm)收入比工资(sal)高的员工的详细信息

  答案:

  select*fromempwherecomm>sal;

  10.把hiredate列看做是员工的生日,求本月过生日的员工

  答案:

  select*fromempwhereto_char(hiredate,mm)=to_char(sysdate,mm);

  11.把hiredate列看做是员工的生日,求下月过生日的员工

  答案:

  select*fromempwhereto_char(hiredate,mm)=to_char(add_months(sysdate,1),mm);

  12.求1982年入职的员工

  答案:

  select*fromempwhereto_char(hiredate,yyyy)=1982;

  13.求1981年下半年入职的员工

  答案:

  select*fromempwherehiredate

  betweento_date(1981-7-1,yyyy-mm-dd)andto_date(1982-1-1,yyyy-mm-dd)-1;

  14.求1981年各个月入职的的员工个数

  答案:

  selectcount(*),to_char(trunc(hiredate,month),yyyy-mm)

  fromempwhereto_char(hiredate,yyyy)=1981

  groupbytrunc(hiredate,month)

  orderbytrunc(hiredate,month);

  15.查询各个部门的平均工资

  答案:

  selectdeptno,avg(sal)fromempgroupbydeptno;

  16.显示各种职位的最低工资

  答案:

  selectjob,min(sal)fromempgroupbyjob;

  17.按照入职日期由新到旧排列员工信息

  答案:

  select*fromemporderbyhiredatedesc;

  18.查询员工的基本信息,附加其上级的姓名

  答案:

  selecte.*,e2.enamefromempe,empe2wheree.mgr=e2.empno;

  19.显示工资比allen高的所有员工的姓名和工资

  答案:

  select*fromempwheresal>(selectsalfromempwhereename=allen);

  20.显示与scott从事相同工作的员工的详细信息

  select*fromempwherejob=(select*fromempwhereename=scott);

  21.显示销售部(sales)员工的姓名

  答案:

  selectenamefromempe,deptdwheree.deptno=d.deptnoandd.dname=sales;

  22.显示与30号部门maRtin员工工资相同的员工的姓名和工资

  答案:

  selectename,salfromemp

  wheresal=(selectsalfromempwheredeptno=30andename=maRtin);

  23.查询所有工资高于平均工资(平均工资包括所有员工)的销售人员(salesman)

  答案:

  select*fromempwherejob=salesmanandsal>(selectavg(sal)fromemp);

  24.显示所有职员的姓名及其所在部门的名称和工资

  答案:

  selectename,job,dnamefromempe,deptdwheree.deptno=d.deptno;

  25.查询在研发部(ReseaRch)工作员工的编号,姓名,工作部门,工作所在地

  答案:

  selectempno,ename,dname,locfromempe,deptd

  wheree.deptno=d.deptnoanddanme=ReseaRch;

  26.查询各个部门的名称和员工人数

  答案:

  select*from(selectcount(*)c,deptnofromempgroupbydeptno)e

  innerjoindeptdone.deptno=d.deptno;

  27.查询各个职位员工工资大于平均工资(平均工资包括所有员工)的人数和员工职位

  答案:

  selectjob,count(*)fromempwheresal>(selectavg(sal)fromemp)groupbyjob;

  28.查询工资相同的员工的工资和姓名

  答案:

  select*fromempewhere(selectcount(*)fromempwheresal=e.salgroupbysal)>1;

  29.查询工资最高的3名员工信息

  答案:

  select*from(select*fromemporderbysaldesc)whererownum  30.按工资进行排名,排名从1开始,工资相同排名相同(如果两人并列第1则没有第2名,从第三名继

  答案:

  selecte.*,(selectcount(*)fromempwheresal>e.sal)+1rankfromempeorderbyrank;

  31.求入职日期相同的(年月日相同)的员工

  答案:

  select*fromempewhere(selectcount(*)fromempwheree.hiredate=hiredate)>1;

  32.查询每个部门的最高工资

  答案:

  selectdeptno,max(sal)maxsalfromempgroupbydeptnoorderbydeptno;

  33.查询每个部门,每种职位的最高工资

  答案:

  selectdeptno,job,max(sal)fromempgroupbydeptno,joborderbydeptno,job;

  34.查询每个员工的信息及工资级别

  答案:

  selecte.*,sg.gradefromempe,salgradesgwheresalbetweenlosalandhisal;

  35.查询工资最高的第6-10名员工

  答案:

  select*from(

  selecte.*,rownumrnfrom

  (select*fromemporderbysaldesc)e

  whererownum  wherern>5;

  36.查询各部门工资最高的员工信息

  答案:

  select*fromempewheree.sal=(selectmax(sal)fromempwhere(deptno=e.deptno));

  37.查询每个部门工资最高的前2名员工

  答案:

  select*fromempewhere

  (selectcount(*)fromempwheresal>e.salande.deptno=deptno)  orderbydeptno,saldesc;

  38.查询出有3个以上下属的员工信息

  答案:

  select*fromempewhere

  (selectcount(*)fromempwheree.empno=mgr)>2;

  39.查询所有大于本部门平均工资的员工信息

  答案:

  select*fromempewheresal>

  (selectavg(sal)fromempwhere(deptno=e.deptno))

  orderbydeptno;

  40.查询平均工资最高的部门信息

  答案:

  selectd.*,avgsalfromdeptd,(selectavg(sal)avgsal,deptnofromempgroupbydeptno)sewhereavgsal=(selectmax(avg(sal))fromempgroupbydeptno)andd.deptno=se.deptno;

  41.查询大于各部门总工资的平均值的部门信息

  答案:

  selectd.*,sumsalfromdeptd,(selectsum(sal)sumsal,deptnofromempgroupbydeptno)sewheresumsal>(selectavg(sum(sal))fromempgroupbydeptno)andse.deptno=d.deptno;

  42.查询大于各部门总工资的平均值的部门下的员工信息

  答案:

  selecte.*,sumsalfromempe,(selectsum(sal)sumsal,deptnofromempgroupbydeptno)sewheresumsal>(selectavg(sum(sal))fromempgroupbydeptno)andse.deptno=e.deptno;

  43.查询没有员工的部门信息

  答案:

  selectd.*fromdeptdleftjoinempeon(e.deptno=d.deptno)whereempnoisnull;

  44.查询当前月有多少天

  答案:

  selecttrunc(add_months(sysdate,1),month)-trunc(sysdate,month)fromdual;

  45.列出最低薪金大于1500的各种工作及此从事此工作的全部雇员人数

  答案:

  selectjob,count(empno)

  FRome

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 育儿理论经验

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1