oracle习题

合集下载

Oracle测试题+答案

Oracle测试题+答案

Oracle测试题+答案1) PL/SQL块中可以使用下列()命令。

(选择两项)a) TRUNCATEb) DELETEc) SA VEPOINTd) ALTER TABLE2) 授予sa用户在SCOTT.EMP表中SAL列的更新权限的语句是(B)〔选择一项〕a) GRANT CHANGE ON SCOTT.EMP TO SAb) GRANT UPDA TE ON SCOTT.EMP(SAL) TO SAc) GRANT UPDA TE (SAL) ON SCOTT.EMP TO SAd) GRANT MODIFY ON SCOTT.EMP(SAL) TO SA3) EMP表有14条记录,则语句SELECT ‘Aptech’FROM EMP 的执行结果是(C)〔选择一项〕a) Aptechb) 无输出c) 14行Aptechd) 编译出错4) PL/SQL块中哪几部分是可选的()〔选择二项〕a) Declareb) Beginc) Exceptiond) Constant5) 在创建序列的过程中,下列()选项指定序列在达到最大值或最小值后,将继续从头开始生成值。

(选择一项)a) Cycleb) Nocyclec) Cached) Nocache6) 同义词有以下()用途。

(选择三项)a) 简化SQL 语句b) 隐藏对象的名称和所有者c) 提供对对象的公共访问d) 显示对象的名称和所有者7) Oracle中用来释放锁的语句有()〔选择二项〕a) commitb) Drop lockc) rollbackd) unlock8) 关于类型定义Number(9,2)说法正确的有()〔选择一项〕a) 整数部分9位,小数部分2位,共11位b) 整数部分7位,小数部分2位,共9位c) 整数部分6位,小数点一位,小数部分2位,共9位d) 以上说法均不正确9) 下列哪种Lob类型用来存储数据库以外的操作系统文件()〔选择一项〕a) CLOBb) BLOBc) CFILEd) BFILE10) Oracle中的三种系统文件分别是()〔选择三项〕a) 数据文件b) 归档文件c) 日志文件d) 控制文件11) 下列哪项不是Oracle中常用的分区方法?()〔选择一项〕a) 范围分区b) 散列分区c) 列表分区d) 条件分区12) 查看Test中名称为P1的分区中的记录的查询语句为()〔选择一项〕a) Select * from Test Where PartitionName=’p1’b) Select * from Test(p1)c) Select * from Test Partition(p1);d) 以上均正确13) 创建序列时,若未指定Cycle选项,则当当前值大于MaxValue时将()〔选择一项〕a) 从MinValue重新开始循环b) 重复使用MaxValue 值c) 执行出错d) 使用随机值14) 下列哪项是创建索引组织表所必需的()〔选一项〕a) Primary Keyb) Order Byc) Group Byd) 以上均不是15) 若表的某字段值存在大量的重复,则基于该字段适合创建哪种索引?()〔选一项〕a) 标准索引b) 唯一索引c) 位图索引d) 分区索引16) 在PL/SQL块中定义一个名为PI值为3.14的Real型常量的语法是()〔选一项〕a) A.Pi Const Real=3.14;b) B.Pi Real Const =3.14;c) C.Constant Pi Real:=3.14d) D.Pi Constant Real:=3.1417) 22.当Select语句没有返回行时,将引发下列哪个异常?()[选择一项]a) A.No_rows_foundb) B.No_data_foundc) C.No_Data_rows_foundd) D.Invalid_Number18) Oracle中提供的两种游标是()〔选择二项〕a) A.隐式游标b) B.静态游标c) C.REF游标d) D.显式游标19) 若Emp表中有14条记录,则用户执行了以下操作,结果是:()〔选择一项〕Cursor mycur is Select * From emp;。

oracle练习题及答案

oracle练习题及答案

oracle练习题及答案Oracle练习题及答案Oracle是一种强大的关系数据库管理系统,被广泛应用于企业级应用程序和数据管理中。

为了帮助大家更好地掌握Oracle数据库的知识,以下是一些Oracle练习题及答案,希望能够帮助大家更好地理解和掌握Oracle数据库的知识。

1. 什么是Oracle数据库?Oracle数据库是一种关系数据库管理系统,由美国Oracle公司开发。

它是一种高性能、可靠性高的数据库系统,被广泛应用于企业级应用程序和数据管理中。

2. Oracle数据库的特点有哪些?Oracle数据库具有以下特点:高性能、高可用性、可伸缩性、安全性高、灵活性强、易管理等。

3. 如何创建一个新的数据库用户?在Oracle数据库中,可以使用以下SQL语句来创建一个新的数据库用户:```CREATE USER username IDENTIFIED BY password;```4. 如何查看Oracle数据库中所有的表?可以使用以下SQL语句来查看Oracle数据库中所有的表:```SELECT table_name FROM user_tables;```5. 如何在Oracle数据库中插入一条新的记录?可以使用以下SQL语句来在Oracle数据库中插入一条新的记录:```INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);```6. 如何在Oracle数据库中更新一条记录?可以使用以下SQL语句来在Oracle数据库中更新一条记录:```UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;```7. 如何在Oracle数据库中删除一条记录?可以使用以下SQL语句来在Oracle数据库中删除一条记录:```DELETE FROM table_name WHERE condition;```通过以上Oracle练习题及答案的学习,相信大家对Oracle数据库有了更深入的了解。

Oracle数据库试题100题(附答案)

Oracle数据库试题100题(附答案)

Oracle数据库试题100题(附答案)1.当Oracle服务器启动时,下列哪种文件不是必须的(D)。

A.数据文件B.控制文件C.日志文件D.归档日志文件2.在Oracle中,当用户要执行SELECT语句时,下列哪个进程从磁盘获得用户需要的数据(B)。

A.用户进程B.服务器进程C.日志写入进程(LGWRD.检查点进程(CKPT)3.在Oracle中,一个用户拥有的所有数据库对象统称为(B)。

A.数据库B.模式C.表空间D.实例4.在Oracle中,有一个教师表teacher的结构如下:ID NUMBER(5)NAME V ARCHAR2(25)EMAIL VARCHAR2(50)下面哪个语句显示没有Email地址的教师姓名(C)。

A.SELECT name FROM teacher WHERE email = NULL;B.SELECT name FROM teacher WHERE email NULL;C.SELECT name FROM teacher WHERE email IS NULL;D.SELECT name FROM teacher WHERE email IS NOT NULL;5.在Oracle数据库的逻辑结构中有以下组件:A 表空间B 数据块C 区D 段这些组件从大到小依次是(B)。

A.A→B→C→DB.A→D→C→BC.A→C→B→DD.D→A→C→B6.在Windows操作系统中,Oracle的(A)服务监听并接受来自客户端应用程序的连接请求。

A.OracleHOME_NAMETNSListenerB.OracleServiceSIDC.OracleHOME_NAMEAgentD.OracleHOME_NAMEHTTPServer7.在Oracle 中创建用户时,若未提及DEFAULT TABLESPACE关键字,则Oracle 就将(B)表空间分配给用户作为默认表空间。

Oracle笔试题库附参考答案

Oracle笔试题库附参考答案

Oracle笔试题库附参考答案1.下列不属于ORACLE的逻辑结构的是(C)1. 区2. 段3. 数据⽂件4. 表空间2. 下⾯哪个⽤户不是ORACLE缺省安装后就存在的⽤户(A)A . SYSDBAB. SYSTEMC. SCOTTD. SYS3 下⾯哪个操作会导致⽤户连接到ORACLE数据库,但不能创建表(A)1. 授予了CONNECT的⾓⾊,但没有授予RESOURCE的⾓⾊2. 没有授予⽤户系统管理员的⾓⾊3. 数据库实例没有启动4. 数据库监听没有启动1. ( )函数通常⽤来计算累计排名,移动平均数和报表聚合。

A . 汇总B. 分析C 分组、D 单⾏1. 带有(B)字句的SELECT语句可以在表的⼀⾏或多⾏放置排他锁。

A . FOR INSERTB. FOR UPDATEC. FOR DELETED. FOR REFRESH1. 在Oracle中,你以SYSDBA登录,CUSTOMER表位于Mary⽤户⽅案中,下⾯哪条语句为数据库中的所有⽤户创建CUSTOMER表的同义词(B)。

1. CREATE PUBLIC SYNONYM cust ON mary.customer;2. CREATE PUBLIC SYNONYM cust FOR mary.customer;3. CREATE SYNONYM cust ON mary.customer FOR PUBLIC;4. 不能创建CUSTOMER的公⽤同义词。

5.7. 在Oracle中,当FETCH语句从游标获得数据时,下⾯叙述正确的是(C)。

1. 游标打开2. 游标关闭3. 当前记录的数据加载到变量中4. 创建变量保存当前记录的数据8. 在Oracle中,下⾯关于函数描述正确的是(AD)。

1. SYSDATE函数返回Oracle服务器的⽇期和时间2. ROUND数字函数按四舍五⼊原则返回指定⼗进制数最靠近的整数3. ADD_MONTHS⽇期函数返回指定两个⽉份天数的和4. SUBSTR函数从字符串指定的位置返回指定长度的⼦串9. 阅读下⾯的PL/SQL程序块:BEGININSERT INTO employee(salary,last_name,first_name)VALUES(35000,’Wang’,'Fred’);SAVEPOINT save_a;INSERT INTO employee(salary,last_name,first_name)VALUES(40000,’Woo’,'David’);SAVEPOINT save_b;DELETE FROM employee WHERE dept_no=10;SAVEPOINT save_c;INSERT INTO employee(salary,last_name,first_name)VALUES(25000,’Lee’,'Bert’);ROLLBACK TO SAVEPOINT save_c;VALUES(32000,’Chung’,'Mike’);ROLLBACK TO SAVEPOINT save_b;COMMIT;END;运⾏上⾯的程序,哪两个更改永久保存到数据库(CD)。

ORACLE期末复习题

ORACLE期末复习题

一、选择题:1. ORACLE 服务器是基于( )机制的服务器。

A.物理B.类C.日志D.例程2. ORACLE中可以连接到数据库的命令是 ( )A.SET B.CONN C.SELECT D.ROLLBACK3. PGA是( )A. 系统全局区B.程序全局区C. 代码全局区D. 数据库全局区4.用来记录应用程序对数据库改变的文件( )A.数据文件 B. 控制文件C. 重做日志文件D.初始化参数文件5.删除DEPT表中数据,但保留表的指令是()。

A.DELETE B.ROLLBACKC. UPDATED.SELECT6.ORACLE中变量的命名一般以()打头。

A. v_B. c_C. g_D. p_7. ORACLE 中的存储过程和函数的区别是 ( )A. 函数有参数,存储过程没有B. 存储过程可多次执行,函数不行C. 函数有返回语句,存储过程没有D. 存储过程和函数不可以同时出现8. ORACLE包由 ( ) 和包主体构成。

A.包变量B.说明部分C.包头D.某个类型名9.要将数值转换成字符串,可以用的是 ( )A. TOCHARB.TO_CHARC. TO_DATED. TO_NUMBER10.Oracle数据库服务器是由()组成。

A.SGA和PGA B.SGA和数据库C.数据库和后台进程D.例程和数据库11. Oracle数据库被划分为()的逻辑存储单元,该逻辑存储单元本身由操作系统磁盘文件和原始分区组成。

A. 表空间B. 联机重做日志文件C. 归档重做日志文件D. 回滚段12.()是包含Oracle数据库中所有数据的数据库对象。

A. 视图B. 索引C. 存储过程D. 表13.()是为了加速对特定表数据的访问而创建的数据段。

A. 视图B. 索引C. 存储过程D. 触发器13.下面是有关date数据类型和timestamp数据类型的描述,请问哪一种描述是正确的?A. 两者都只能存储日期数据,不能存储时间数据B. 两者都只能存储时间数据,不能存储日期数据C. date数据类型比timestamp数据类型的存储时间精度高D. date数据类型比timestamp数据类型的存储时间精度低14.可以自动执行操作的存储对象是()。

oracle练习题(打印版)

oracle练习题(打印版)

oracle练习题(打印版)### Oracle数据库练习题#### 一、选择题1. Oracle数据库中,哪个命令用于创建表?- A. CREATE TABLE- B. CREATE DATABASE- C. DROP TABLE- D. ALTER TABLE2. 以下哪个不是Oracle数据库的数据类型?- A. NUMBER- B. CHAR- C. DATE- D. IMAGE3. 在Oracle数据库中,哪个命令用于删除表?- A. DELETE FROM- B. DROP TABLE- C. REMOVE TABLE- D. ERASE TABLE4. Oracle数据库中,如何查看当前用户?- A. SELECT USER FROM DUAL;- B. SELECT CURRENT_USER FROM DUAL;- C. SELECT USERNAME FROM ALL_USERS;- D. SELECT CURRENT_USER FROM ALL_USERS;5. 以下哪个命令用于在Oracle数据库中创建索引?- A. CREATE INDEX- B. CREATE KEY- C. CREATE CONSTRAINT- D. CREATE UNIQUE#### 二、填空题1. 在Oracle数据库中,使用____命令可以查看表结构。

2. Oracle数据库中,使用____命令可以查看当前数据库的所有表。

3. 要删除Oracle数据库中的行,可以使用____命令。

4. Oracle数据库中,____用于存储二进制数据。

5. Oracle数据库中,____命令用于查看数据库中所有的索引。

#### 三、简答题1. 描述Oracle数据库中事务的ACID属性。

2. 解释Oracle数据库中的锁定机制。

3. 说明Oracle数据库中视图的作用。

#### 四、操作题1. 创建一个名为`Employees`的表,包含以下字段:- `EmployeeID` NUMBER(10) PRIMARY KEY,- `FirstName` VARCHAR2(50),- `LastName` VARCHAR2(50),- `HireDate` DATE,- `Salary` NUMBER(10, 2),- `DepartmentID` NUMBER(10).2. 向`Employees`表中插入以下数据:- `EmployeeID`: 1001, `FirstName`: 'John', `LastName`:'Doe', `HireDate`: '2023-01-01', `Salary`: 70000,`DepartmentID`: 101.- `EmployeeID`: 1002, `FirstName`: 'Jane', `LastName`:'Smith', `HireDate`: '2023-02-15', `Salary`: 50000,`DepartmentID`: 102.3. 编写一个查询,显示所有员工的姓名和工资,按工资从高到低排序。

Oracle基础(习题卷1)

Oracle基础(习题卷1)

Oracle基础(习题卷1)第1部分:单项选择题,共63题,每题只有一个正确答案,多选或少选均不得分。

1.[单选题]以下()用户默认拥有SYSDBA权限A)A-SYSTEMB)B-SYSC)C-SAD)D-DBADMIN答案:B解析:2.[单选题]你使用 IMMEDIATE 选项关闭数据库实例。

考虑打开数据库需要执行的步骤:1. 分配 SGA2. 读取控制文件3. 读取日志文件4. 开始实例恢复5. 启动后台进程6. 检查数据文件一致性7. 读取 spfile 或者 pfile哪个选项是正确的关于这些步骤()A)7, 1, 5, 2, 3, 6, 4B)1, 5, 7, 2, 3, 6; step 4 is not requiredC)7, 1, 5, 2, 3, 6 step 4 is not requiredD)1, 2, 3, 5, 6, 4; step 7 is not required答案:C解析:3.[单选题]执行下面的命令备份 USERS 表空间SQL> ALTER TABLESPACE users BEGIN BACKUP;ALTER TABLESPACE users BEGIN BACKUP*ERROR at line 1:ORA-01123: cannot start online backup;media recovery not enabled什么原因导致整个错误()A)MTTR Advisor 禁用B)数据库处于 NOARCHIVELOG 模式C)表空间已经处于备份模式D)Flash Recovery Area 没有配置答案:B解析:4.[单选题]当执行介质数据库恢复时,有个归档日志文件丢失或者损坏,那么此时只能执行哪种操作?什么A)Until SCNB)Until timeC)Recover using backup control file.D)Until cancel答案:D解析:5.[单选题]oracle逻辑存储结构正确的是( )A)tablespace--segment--osblock--blockB)tablespace--segment--extent--blockC)tablespace--extent--segment--blockD)tablespace--extent--block -segment答案:B解析:6.[单选题]如何将变量v_row 定义为emp表的记录类型( )A)v_row emp%type;B)v_row emp%record;C)v_row emp%tabletype;D)v_row emp%rowtype;答案:D解析:7.[单选题]The schema SALES exists in two databases, ORCL1 and ORCL2, and has the same password,SALES123. User SALES has CREATE DATABASE LINK and CREATE SESSION privileges on bothDatabases.Eaxmine these command:Conn SALES/SALES123CREATE DATABASE LINK orcl2 USING ‘orcl12’;What is the outcome of executing these commands in the ORCL1 database?A)ORCL2 is created as a shared database link to connect multiple sessions to the SALES schema in the ORCL2 databaseB)ORCL2 database link creation failsC)ORCL2 is created as a private database link to connect to only the SALES schema in the ORCL2 databaseD)ORCL2 is created as a public link to connect a single session to the SALES schema in the ORCL2 database答案:C解析:8.[单选题]分析以下的SQL 命令:SELECT manufacturer_idFROM inventoryWHERE manufacturer_id LIKE '%N\%P\%O%' ESCAPE '\';命令执行的返回结果是( )。

oracle练习题

oracle练习题

ORACL复习题一、填空题:1、ORACLE数据库默认最高管理员账号是。

sys2、ORACLE数据库系统由、组成。

逻辑结构、物理结构和实例3、ORACLE数据库具有3种主要类型的文件,它们分别是:、、。

数据文件,控制文件,日志文件4、ORACLE内存结构主要分为、。

系统全局区,程序全局区5、ORACLE逻辑存储结构包括、、、。

块,区,段,表空间6、在SQL SELECT语句查询中,要去掉查询结果中的重复记录,应该使用_________关键字。

Distinct7、使用SQL语言的SELECT语句进行分组查询时,如果希望去掉不满足条件的分组,应当使用_________子句。

Having8、连接到ORACLE数据库的方法有、。

SQL*PLUS、OEM9、SCOTT用户的默认口令是:。

tiger10、SYS用户登录SQL*PLUS时,连接字符应该为。

数据库名AS sysdba11、安装ORACLE时,(是/否)一定要进行数据库实例的安装。

否12、要登录OEM,必须启动才行。

OracleDBConsoleORCL服务13、OUI工具用来安装和ORACLE组件。

卸载14、打开ORACLE安装目录下的install中的文件可以查看OEM、ISQL*PLUS的URL和端口号。

Portlist.ini15、每个数据库至少有一个系统表空间,被称为表空间。

system16、安装过程中进行了口令的设置,但是出现了口令有错的信息,是因为原因。

口令设置不符合ORACLE的约定17、EXP命令是用来进行文件的。

导出18、数据库可以使用工具进行创建。

DBCA19、登录ISQL*PLUS页面的默认端口号为。

556020、支持客户端应用程序到ORACLE数据库服务器网络会话的组件是。

ORACLE NET21.在SQL*PLUS中使用SQL*PLUS的命令可以显示表的结构信息。

22.所谓方案,就是一系列数据库对角的集合,是数据库中存储数据的一个逻辑表示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. /*1、选择在部门30中员工的所有信息*/2. select * from scott.emp where deptno = '30'3. /*2、列出职位为(MANAGER)的员工的编号,姓名*/4. select empno, ename from scott.emp where job = 'MANAGER'5. /*3、找出奖金高于工资的员工*/6. select * from scott.emp where comm > sal7. /*4、找出每个员工奖金和工资的总和*/8. select ename, sal + nvl(comm, 0) from scott.emp9. /*5、找出部门10中的经理(MANAGER)和部门20中的普通员工(CLERK) */10. select *11. from scott.emp12. where deptno = '10'13. and job = 'MANAGER'14. union15. select *16. from scott.emp17. where job = 'CLERK'18. and deptno = '20'19. /*6、找出部门10中既不是经理也不是普通员工,而且工资大于等于2000的员工*/20. select *21. from scott.emp22. where job != 'MANAGER'23. and job != 'CLERK'24. and sal > 200025. /*7、找出有奖金的员工的不同工作*/26. select distinct(job) from scott.emp where comm is not null27. /*8、找出没有奖金或者奖金低于500的员工*/28. select *29. from scott.emp30. where comm is not null31. and comm > 50032. /*9、显示雇员姓名,根据其服务年限,将最老的雇员排在最前面*/33. select ename34. from scott.emp35. order by (months_between(sysdate, hiredate) / 12) desc36.37. select ename,hiredate from scott.emp order by hiredate38. /*10、找出每个月倒数第三天受雇的员工*/39. select * from scott.emp where hiredate = last_day(hiredate) - 240. /*11、分别用case和decode函数列出员工所在的部门,deptno=10显示'部门10',41. deptno=20显示'部门20'42. deptno=30显示'部门30'43. deptno=40显示'部门40'44. 否则为'其他部门'*/45. select ename,46. case deptno47. when 10 then48. '部门10'49. when 20 then50. '部门20'51. when 30 then52. '部门30'53. when 40 then54. '部门40'55. else56. '其他部门'57. end 工资情况58. from scott.emp59.60. select ename,61. decode(deptno,62. 10,63. '部门10',64. 20,65. '部门20',66. 30,67. '部门30',68. 40,69. '部门40',70. '其他部门') 工资情况71. from scott.emp72. /*12、分组统计各部门下工资>500的员工的平均工资*/73. select avg(sal) from scott.emp where sal > 500 group by deptno74. /*13、统计各部门下平均工资大于500的部门*/75. select deptno from scott.emp group by deptno having avg(sal) > 50076. /*14、算出部门30中得到最多奖金的员工奖金*/77. select max(comm) from scott.emp where deptno = 3078. /*15、算出部门30中得到最多奖金的员工姓名*/79. select ename80. from scott.emp81. where deptno = 3082. and comm = (select max(comm) from scott.emp where deptno = 30)83. /*16、算出每个职位的员工数和最低工资*/84. select count(ename), min(sal), job from scott.emp group by job85. /*17、列出员工表中每个部门的员工数,和部门no */86. select count(ename), deptno from scott.emp group by deptno87. /*18、得到工资大于自己部门平均工资的员工信息*/88. select *89. from scott.emp e90. where sal > (select avg(sal) from scott.emp where e.deptno = deptno)91.92. select *93. from scott.emp e1,94. (select avg(sal) sals, deptno from scott.emp group by deptno) e295. where sal > sals96. and e1.deptno = e2.deptno97. /*19、分组统计每个部门下,每种职位的平均奖金(也要算没奖金的人)和总工资(包括奖金) */98. select avg(nvl(comm,0)), sum(sal + nvl(comm, 0))99. from scott.emp100. group by deptno,job101. /*20、笛卡尔集*/102. select * from scott.emp, scott.dept103. /*21、显示员工ID,名字,直属主管ID,名字*/104. select empno,105. ename,106. mgr,107. (select ename from scott.emp e1 where e1.empno = e2.mgr) 直属主管名字108. from scott.emp e2109. /*22、DEPT表按照部门跟EMP表左关联*/110. select *111. from scott.dept, scott.emp112. where scott.dept.deptno = scott.emp.deptno(+)113. /*23、使用此语句重复的内容不再显示了*/114. select distinct (job) from scott.emp115. /*24、重复的内容依然显示*/116. select *117. from scott.emp118. UNION ALL119. select * from scott.emp120. /*23和24题和22题是一样的*/121.122. /*25、只显示了两个表中彼此重复的记录。

*/123. select *124. from scott.dept, scott.emp125. where scott.dept.deptno(+) = scott.emp.deptno126. /*26、只显示了两张表中的不同记录*/127. select * from scott.emp union select * from scott.emp128. minus129. (select * from scott.emp intersect select * from scott.emp)130.131. (select * from scott.emp minus select * from scott.emp)132. union133. (select * from scott.emp minus select * from scott.emp)134. 表结构相同先union 只能有-135. /*27、列出员工表中每个部门的员工数,和部门no */136. select count(ename), deptno from scott.emp group by deptno137. /*28、列出员工表中每个部门的员工数(员工数必须大于3),和部门名称*/138. select count(deptno),139. deptno,140. (select dname from scott.dept where scott.dept.deptno = e1.deptno)141. from scott.emp e1142. group by deptno having count(deptno)>3143. /*29、找出工资比jones多的员工*/144. select *145. from scott.emp146. where sal > (select sal from scott.emp where ename = 'JONES')147. /*30、列出所有员工的姓名和其上级的姓名*/148. select ename,149. (select ename from scott.emp e1 where e1.empno = e2.mgr) 上级的姓名150. from scott.emp e2151. /*31、以职位分组,找出平均工资最高的两种职位*/152. select job153. from scott.emp154. group by job155. having avg(sal) in (select max(sal) from scott.emp group by job )156.157. select job158. from (select job, avg(sal)159. from scott.emp160. group by job161. order by avg(sal) desc)162. where rownum <= 2163.164. 最大的:165. select max(max_sal)166. from (select job, avg(sal) max_sal from scott.emp group by job)167. /*32、查找出不在部门20,且比部门20中任何一个人工资都高的员工姓名、部门名称*/168.169. select ename, dname170. from scott.emp e1, scott.dept e2171. where e1.deptno = e2.deptno172. and e1.deptno <> 20173. and sal > (select max(sal) from scott.emp where deptno = '20')174.175. /*33、得到平均工资大于2000的工作职种*/176. select job from scott.emp group by job having avg(sal) > 2000177. /*34、分部门得到工资大于2000的所有员工的平均工资,并且平均工资还要大于2500 */ 178. select avg(sal)179. from scott.emp180. where sal > 2000181. group by deptno182. having avg(sal) > 2500183. /*35、得到每个月工资总数最少的那个部门的部门编号,部门名称,部门位置*/ 184. select deptno, dname, loc185. from scott.dept186. where deptno in (select deptno187. from scott.emp188. group by deptno189. having sum(sal) = (select min(sum(sal))190. from scott.emp191. group by deptno))192.193. select * from scott.dept194. /*36、分部门得到平均工资等级为2级(等级表)的部门编号*/195. select deptno196. from scott.emp197. group by deptno198. having avg(sal) between (select losal from scott.salgrade where grade = 2) and (select hisal 199. from scott.salgrade200. where grade = 2)201.202. select avg(sal) from scott.emp group by deptno203. select * from scott.salgrade204. /*37、查找出部门10和部门20中,工资最高第3名到工资第5名的员工的员工名字,部门名字,部门位置*/205. select a.ename, dname, loc206. from (select *207. from (select rownum rn, deptno, empno, sal, ename208. from (select deptno, empno, sal, ename209. from scott.emp210. where deptno in (10, 20)211. and rownum <= 5212. order by sal desc))213. where rn between 3 and 5) a,214. scott.dept b215. where a.deptno = b.deptno216.217.218. select deptno, ename219. from (select empno, deptno, ename220. from (select rownum rn, deptno, empno, sal, ename221. from (select deptno, empno, sal, ename222. from scott.emp223. where deptno in (10, 20)224. order by sal desc))225. where rn between 3 and 5)226.227.228. /*38、查找出收入(工资加上奖金),下级比自己上级还高的员工编号,员工名字,员工收入*/229. select empno, ename, sal + nvl(comm, 0)230. from scott.emp e1231. where sal + nvl(comm, 0) >232. (select sal + nvl(comm, 0) from scott.emp where empno = e1.mgr)233.234. select * from scott.emp235. select ename, sal + nvl(comm, 0) from scott.emp236. /*39、查找出职位和'MARTIN' 或者'SMITH'一样的员工的平均工资*/237. select avg(sal)238. from scott.emp239. where job in (select job240. from scott.emp241. where ename = 'MARTIN'242. or ename = 'SMITH')243. /*40、查找出不属于任何部门的员工*/244. select * from scott.emp where deptno is null245. select * from scott.emp where deptno not in (select deptno from scott.emp)246. /*41、按部门统计员工数,查处员工数最多的部门的第二名到第五名(列出部门名字,部门位置)*/247. select dname, loc248. from (select *249. from (select rownum rn, deptno250. from (select deptno, count(*)251. from scott.emp252. group by deptno253. order by count(*) desc))254. where rn between 2 and 5) a,255. scott.dept b256. where a.deptno = b.deptno257.258. select count(*) from scott.emp group by deptno259. /*42、查询出king所在部门的部门号\部门名称\部门人数(多种方法)*/260. select sc.deptno, dname, count(*)261. from scott.emp sc, scott.dept de262. where sc.deptno = ((select deptno from scott.emp where ename = 'KING'))263. and de.deptno = sc.deptno264. group by sc.deptno, dname265.266.267. /*43、查询出king所在部门的工作年限最大的员工名字*/268. select *269. from scott.emp270. where hiredate =271. (select min(hiredate)272. from scott.emp273. where deptno in (select deptno from scott.emp where ename = 'KING'))274. and deptno = (select deptno from scott.emp where ename = 'KING')275. /*44、查询出工资成本最高的部门的部门号和部门名称*/276. select deptno, dname277. from scott.dept278. where deptno = (select deptno279. from scott.emp280. group by deptno281. having sum(sal) = (select max(sum(sal))282. from scott.emp283. group by deptno))284.285. select * from scott.emp for update使用scott/tiger用户下的emp表和dept表完成下列练习,表的结构说明如下emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno部门编号)dept部门表(deptno部门编号/dname部门名称/loc地点)工资=薪金+佣金1.列出至少有一个员工的所有部门。

相关文档
最新文档