oracle练习题及答案(2页).doc
-oracle练习题及答案-第 2 页1. 找出各月倒数第3 天受雇的所有员工select ename from emp where last_day(hiredate)-2=hiredate;2. 找出早于12 年前受雇的员工select ename from emp where months_between(sysdate,hiredate)>=144;3. 以首字母大写的方式显示所有员工的姓名select initcap(ename) from emp;4. 显示正好为5 个字符的员工的姓名select ename from emp where length(ename)=5;5. 显示不带有“R”的员工姓名select ename from emp where instr(ename,'R',1,1) =0;6. 显示所有员工姓名的前三个字符select substr(ename,1,3) from emp;7. 显示所有员工的姓名,用“a”替换所有的“A”select ename,replace(ename,'A','a') from emp; 8. 显示满10 年服务年限的员工的姓名和受雇日期select ename,hiredate from emp where months_between(sysdate,hiredate)>=120;9. 显示员工的详细资料,按姓名排序select * from emp order by ename desc;10. 显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面select ename,hiredate from emp order by hiredate;11. 显示所有员工的姓名、工作和薪金,按照工作的降序排序,若工作相同则按薪金排序select ename,job,sal from emp order by job desc, sal;12. 显示所有员工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面select ename, to_char(hiredate,'yyyy') h, to_char(hiredate,'mm') m from emp order by m,h;13. 显示在一个月为30 天的情况所有员工的日薪金,忽略余数select trunc(sal/30) from emp;14. 找出在(任何年份的)2 月受聘的所有员工select ename from emp where to_char(hiredate,'mm')=2;15. 对于每个员工显示其加入公司的天数select ename, sysdate-hiredate from emp;16. 显示姓名字段的任何位置包含“A”的所有员工姓名select ename from emp where instr(ename,'A',1,1) <>0;select ename from emp where ename like '%A%'