Oraclep324查询练习及答案

更新时间:2023-12-07 23:22:02 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

(1) 查询20号部门的所有员工信息;

(2) 查询所有工种为CLERK 的员工的员工号、员工名和部门号; (3) 查询奖金COMM 高于工资SAL 的员工信息; (4) 查询奖金高于工资的20%的员工信息;

(5) 查询10号部门中工种为MANAGER 和20号部门中工种为CLERK 的员工的信息; (6) 查询所有公众不是MANAGER 和CLERK ,且工资大于或等于2000的员工的详细信息;

(7) 查询有奖金的员工的不同工种; (8) 查询所有员工工作与奖金的和;

(9) 查询没有奖金或奖金低于100的员工信息; (10)查询各月倒数第二天入职的员工信息; (11)查询工龄大于或等于10年的员工信息;

(12)查询员工信息,要求以首字母大写的方式显示所有员工的姓名; (13)查询员工名正好为6个字母的员工信息; (14)查询员工名字中不包含字母S 的员工; (15)查询员工姓名的第二个字母为M 的员工信息; (16)查询所有员工姓名的前三个字符;

(17)查询所有员工的姓名,如果包含字母s ,则用S 替换; (18)查询员工的姓名和入职日期,并按入职日期从先到后进行排序;

(19)显示所有员工的姓名、工种、工资和京津,按工种降序排序,若工种相同则按工资升序排序;

(20)显示所有员工的姓名、入职的年份和月份,按入职日期所在的月份排序,若月份相同则按入职的年份排序;

(21)查询在2月份入职的所有员工信息;

(22)查询所有员工入职以来的工作期限,用“**年**月**日”的形式表示; (23)查询至少有一个员工的部门信息;

(24)查询工资比SMITH 员工 工资高的所有员工信息; (25)查询所有员工的姓名及其直接上级的姓名; (26)查询入职日期早于其上级领导的所有员工信息; (27)查询所有部门及其员工信息,包括那些没有员工的部门; (28)查询所有员工及其部门信息,包括那些还不属于任何部门的员工; (29)查询所有工种为CLERK 的员工的姓名及其部门名称; (30)查询最低工资大于2500的各种工作; (31)查询平均工资低于2000的部门及其员工信息; (32)查询在SALES 部门工作的员工的姓名信息; (33)查询工资高于公司平均工资的所有员工信息; (34)查询与SMITH 员工从事相同工作的所有员工信息;

(35)列出工资等于30号部门中某个员工工资的所有员工的姓名和工资; (36)查询工资高于30号部门中工作的所有员工的工资的员工姓名和工资; (37)查询每个部门中的员工数量、平均工资和平均工作年限; (38)查询不同部门的同一种工作;

(39)查询各个部门的详细信息以及部门人数、部门平均工资;

(40)查询各种工作的最低工资;

(41)查询各个部门中不同工种的最高工资; (42)查询10号部门员工及其领导的信息; (43)查询各个部门的人数及平均工资; (44)查询工资为某个部门平均工资的员工信息; (45)查询工资高于本部门平均工资的员工信息;

(46)查询工资高于本部门平均工资的员工信息及其部门的平均工资; (47)查询工资高于20号部门某个员工工资的员工的信息; (48)统计各个工种的员工人数与平均工资; (49)统计每个部门中各工种的人数与平均工资;

(50)查询工资、奖金与10号部门某员工工资、奖金都相同的员工信息; (51)查询部门人数大于5的部门的员工信息; (52)查询所有员工工资都大于2000的部门的信息;

(53)查询所有员工工资都大于2000的部门的信息及其员工的信息; (54)查询所有员工工资都在2000~3000之间的部门的信息; (55)查询所有工资在2000~3000之间的员工所在的部门的员工信息; (56)查询每个员工的领导所在部门的信息; (57)查询人数最多的部门信息;

(58)查询30号部门中工资排序前3名的员工信息; (59)查询所有员工中工资排序在5~10名之间的员工信息; (60)查询SMITH 员工及其所有直接、间接下属员工的信息;

(61)查询SCOTT 员工及其直接、间接上级员工的信息; (62)以树状结构查询所有员工与领导之间的层次关系;

(63)向emp 表中插入一条记录,员工号为1357,名字为oracle ,工资为2050,部门号为 20,入职日期为 2002年5月10日;

(64)向emp 表中插入一条记录,员工名为FAN,号为8000,其他信息与SMITH员工的信息相同;

(65)将各个部门员工的工资修改为该员工所在部门平均工资加1000;

1、select * from emp where deptno=20;

2、select empno,ename,deptno from emp where job=‘CLERK’ 3、select * from emp where comm>sal; 4、select * from emp where comm.>sal*0.2

5、select * from emp where job=’MANAGER’and deptno=10 or

job=’CLERK’and deptno=20

6、select * from emp where sal>=2000 minus

select * from emp where job=’MANAGER’ or job=’CLERK’ select * from mep where job!=’MANAGER’ and job!=’CLERK’ and sal>=2000

7、select distinct job from emp where comm is not null 8、select ename,empno sal+nvl(comm.,0) from emp;

9、select * from emp where comm is null or comm<100;

10、select * from emp where hiredate in (select last_day(hiredate)-1 from

emp);

11

select

empno,ename,hiredate

from

emp

where

(sysdate-hiredate)/365>=10;

12、select initcap(ename),empno,sal from emp; 13、select * from emp where length(ename)=6; 14、select * from emp where ename not like ‘%S%’; 15、select * from emp where ename like ‘_M%’; 16、select substr(ename,1,3) from mep; 17、select replace(ename,’s’,’S’) from emp; 18、select ename,hiredate from emp order by hiredate

19、 select ename,job,sal,comm. From emp order by job desc,sal 20、select ename,extract(month from hiredate) month,extract(year from hiredate) year from emp order by month,year;

select ename,to_char(hiredate,'yyyy') year,to_char(hiredate,'mm') month from emp order by month,year

21.select * from emp where extract(month from hiredate)=’2’; 22. select floor((sysdate-hiredate)/365)||'年' ||floor(mod(sysdate-hiredate,365)/30)||'月'

||floor(mod(mod(sysdate-hiredate,365),30))||'日' worktime from emp

16.month_:=floor(months_between(date2,(date1+NUMTOYMINTERVAL(year_, 'year'))));

17.day_ :=date2-((date1+NUMTOYMINTERVAL(year_, 'year'))+NUMTOYMINTERVAL(month_, 'month'));

18.return lpad(year_,4,'0')||'年'||lpad(month_,2,'0')||'月'||lpad(day_,2,'0')||'日'; 19.exception

20. when others then

21. dbms_output.put_line('Input date format exception!'); 22. return ''; 23.end;

测试效果: Sql代码

1. select fn_interval_ymd(sysdate,sysdate-1000) from dual; 2. ----------

3. 0002年08月26日 4. ----------

5. select fn_interval_ymd(to_date('2008-05-01','yyyy-mm-dd'), 6. to_date('2006-04-21','yyyy-mm-dd')) from dual; 7. 0002年00月10日 8. ----------

9. select fn_interval_ymd(to_date('2008-02-11','yyyy-mm-dd'), 10.to_date('2008-03-05','yyyy-mm-dd')) from dual; 11.----------

12.0000年00月23日 DECLARE

CURSOR c IS SELECT * FROM emp ; n number(2); m number(2); d number(2); BEGIN

FOR v IN c LOOP

n:=trunc((sysdate-v.hiredate)/365) ; m:=trunc(((sysdate-v.hiredate)-365*n) /12); d:=trunc(((sysdate-v.hiredate)-365*n) -12*m);

DBMS_OUTPUT.PUT_LINE(v.ename||' '||n||'年'||m||'月'||d||'日'); END LOOP; END; /

本文来源:https://www.bwwdw.com/article/x26t.html

Top