Welcome 微信登录

首页 / 数据库 / MySQL / Oracle查询语句面试题

01. 查询员工表所有数据,并说明使用*的缺点select * from emp;01.查询职(job)为"PRESIDENT"的员工的工资select sal from emp where job="PRESIDENT";02.查询佣金为0或为null的员工的信息select * from emp where comm is null or comm=1;03.查询入职日期在1981-5-1到1981-12-31之间的所有员工的信息select * from emp where hiredate between to_date(‘1-5月-81’) and to_date(‘31-12月-81’)04..查询所有名字长度为4的员工的员工的编号,姓名select empno,ename from emp where length(ename)=405.显示10号部门饿所有经理和20号部门的所有员工select * from emp where job="MANAGER" and deptno=10 or job="CLERK" and deptno=20;06.显示姓名没有"L"字的员工的详细信息或含有"SM"字的员工信息select * from emp where ename not like "%L%" or ename like "%SM%";07.显示各个部门经理的工资select deptno,sal from emp where job="MANAGER";08.显示佣金收入比工资高的员工的详细信息select * from emp where comm>sal;10.把hiredate列看做是员工的生日,求本月过生日的员工:SQL> select * from empwhere to_char(hiredate,"mm")=to_char(sysdate,"mm");11.把hiredate列看做是员工的生日,求下月过生日的员工SQL> select * from empwhere to_char(hiredate,"mm")=to_char(add_months(sysdate,1),"mm");12.求1982年入职的员工SQL> select * from emp where to_char(hiredate,"yyyy")="1982";hiredate是date类型的,1982是字符串类型的,类型匹配才可以13.求1981年下半年入职的员工select * from empwhere hiredate between to_date("1981-7-1","yyyy-mm-dd")and to_date("1982-1-1","yyyy-mm-dd")-1;注:to_char()函数和to_date()函数to_char()函数是把日期的类型转换为指定的格式to_date()是把字符串转换为日期类型-1的原因是更精确14.求1981年各个月入职的员工个数SQL> select to_char(hiredate,"mm"),count(*) from emp where to_char(hiredate,"yyyy")="1981" group by to_char(hiredate,"mm") order by to_char(hiredate,"mm");或select to_char(hiredate,"mm"),count(*) from emp where to_char(hiredate,"yyyy")="1981" group by to_char(hiredate,"mm") order by to_char(hiredate,"mm");PartII01  .查询各个部门的平均工资SQL> select deptno,avg(nvl(sal,0)) from emp group by deptno;02.显示各种职位的最低工资SQL> select job,min(sal) from emp group by job;03.按照入职日期由新到旧排列员工信息SQL> select hiredate from emp order by hiredate desc;04.查询员工的基本信息,附加其上级的姓名(自关联)SQL> select e.*,e1.ename from emp e,emp  e1 where e.mgr=e1.empno;05.显示工资比’ALLEN’高的所有员工的姓名和工作SQL> select ename,sal from emp where sal>(select sal from emp where ename="ALLEN");06.显示与scott从事相同工作的员工的信息(子查询)SQL> select * from emp where job=(select job from  emp where ename="SCOTT");07.显示销售部(‘SALES’)员工的姓名SQL> select e.ename from emp e inner join dept d on e.deptno=d.deptno where d.dname="SALES";08.显示与30号门’MARTIN’员工工资相同的员工的姓名和工资SQL> select ename,sal from emp where sal=(select sal from emp where deptno=30 and ename="MARTIN");09.查询所有工资高于平均工资(包括所有员工)的销售人员SQL> select * from emp where sal>(select avg(sal) from emp) and job="SALESMAN";或SQL> select * from emp where job="SALESMAN" and sal>(select avg(sal) from emp);10.显示所有职员的姓名及其所在部门的名称和工资(表连接)SQL> select e.*,e.sal,d.dname from emp e inner join dept d on e.deptno=d.deptno;11.查询在研发部(RESEARCH)工作人员的编号,姓名,工作部门,工作所在地SQL> select e.empno,e.ename,d.dname,d.loc from emp e inner join dept d on e.deptno=d.deptno where dname="RESEARCH";12.查询各个部门的名称和员工人数select e.deptno,d.dname,count(*) from emp e inner join dept d on e.deptno=d.deptno group by e.deptno,d.dname分析:SQL> select d.dname from emp e inner join dept d on e.deptno=d.deptno group by e.deptno,d.dname;DNAME--------------ACCOUNTINGRESEARCHSALESSQL> select e.deptno,d.dname from emp e inner join dept d on e.deptno=d.deptno group by e.deptno,d.dname;DEPTNO DNAME------ --------------10 ACCOUNTING20 RESEARCH30 SALESSQL> select e.deptno,d.dname,count(*) from emp e inner join dept d on e.deptno=d.deptno group by e.deptno,d.dname;DEPTNO DNAME            COUNT(*)------ -------------- ----------10 ACCOUNTING              320 RESEARCH                530 SALES                   613.查询各个部门员工工资大于平均工资(平均工资包括所有员工)的人数和员工职位(子查询)SQL> select count(*),job from emp where sal>(select avg(sal) from emp) group by  job;14.查询工资相同的员工的工资和姓名(子查询)SQL> select sal,ename from emp e where(select count(*) from emp where sal=e.sal group by sal)>1;或SQL> select e.sal,e.ename from emp e,emp e1 where e.sal=e1.sal and e.ename<>e1.ename;
  • 1
  • 2
  • 下一页
如何解决DB2数据迁移中的外键约束问题Oracle其他数据对象-同义词相关资讯      oracle数据库教程 
  • Oracle raw数据类型介绍  (01/29/2013 10:05:53)
  • 监听器注册与ORA-12514 错误分析  (11/13/2012 14:30:08)
  • Oracle SQL的cursor理解  (11/13/2012 14:16:17)
  • Oracle 如何强制刷新Buffer Cache  (01/29/2013 10:02:46)
  • dblink致Oracle库的SCN变成两库的  (11/13/2012 14:24:41)
  • Linux操作系统下完全删除Oracle数  (11/13/2012 08:25:52)
本文评论 查看全部评论 (1)
表情: 姓名: 字数


评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款