Oracle面试题及答案模块和题目
l基本SQL查询
l运算符与函数
l子查询
l连接查询
建表语句emp.sql
PartI(第一天)
01.查询员工表所有数据,并说明使用*的缺点
答:
select*fromemp;
使用*的缺点有
a)查询出了不必要的列
b)效率上不如直接指定列名
02.查询职位(JOB)为'PRESIDENT'的员工的工资
答:
select*fromempwherejob='PRESIDENT';
03.查询佣金(COMM)为0或为NULL的员工信息
答:重点是理解0与null的区别
select*fromempwherecomm=0orcommisnull;
04.查询入职日期在1981-5-1到1981-12-31之间的所有员工信息
答:通过此题掌握常用日期函数
select*fromempwherehiredate
betweento_date('1981-5-1','yyyy-mm-dd')andto_date('1981-12-31','yyyy-mm-dd');
05.查询所有名字长度为4的员工的员工编号,姓名
答:
select*fromempwherelength(ename)=4;
06.显示10号部门的所有经理('MANAGER')和20号部门的所有职员('CLERK')的详细信息
答:
select*fromempwheredeptno=10andjob='MANAGER'ordeptno=20andjob='CLERK';
07.显示姓名中没有'L'字的员工的详细信息或含有'SM'字的员工信息
答:考察知识点模糊查询
select*fromempwhereenamenotlike'%L%'orenamelike'%SM%';
08.显示各个部门经理('MANAGER')的工资
答:
selectsalfromempwherejob='MANAGER';
09.显示佣金(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');
PartII(第二天)
01.查询各个部门的平均工资
答:考察知识点:分组
selectdeptno,avg(sal)fromempgroupbydeptno;
02.显示各种职位的最低工资
答:考察知识点:分组
selectjob,min(sal)fromempgroupbyjob;
找oracle题目视频教程学文档名,上课课家教育IT培训专家。