ORACLE数据库习题(有答案)
- 格式:doc
- 大小:28.50 KB
- 文档页数:2
史上最全Oracle数据库基本操作练习题(含答案)oracle基本操作练习题使用表格:员工表(emp):部:(deptnonumber(2)notnull,--部门编号dnamevarchar2(14),--部门名称locvarchar2(13)―部门地址)注:添加、删除和修改相对简单。
这些练习旨在进行数据查询。
查询主要使用函数、运算符、模糊查询、排序、分组、变量关联、子查询、分页查询等。
建表脚本(根据需要使用):创建表脚本1练习:2.找出部门10中所有经理(manager)和部门20中所有办事员(clerk)的详细资料。
从empwhere(job='manager'和deptno=10)或(job='clerk'和deptno=20)中选择*;3.统计各部门的薪水总和。
按deptno从empgroup中选择deptno,sum(sal);4.找出部门10中所有理(manager),部门20中所有办事员(clerk)以及既不是经理又不是办事员但其薪水大于或等2000的所有员工的详细资料。
从empwhere(job='manager'和deptno=10)或(job='clerk'和deptno=20)或(jobnotin('manager','clerk')和sal>2000)中选择*;5.列出各种工作的最低工资。
从empgroupbyjob中选择job,min(sal);26.列出每个部门经理的最低工资。
selectdeptno,min(sal)fromempwherejob='manager'groupbydeptno;7.了解领取奖金的员工的不同工作。
9.找出各月最后一天受雇的所有员工。
选择*fromempwherehiredate=最后一天(hiredate);10.显示所有员工的姓名,首字母大写。
第1章Oracle 11g简介软件122班王平安一、选择题1.D 2.D 3.C 4.A 5.D6.D 7.B二、填空题1.视图2.索引3.簇4.DB_BLOCK_SIZE 5.SYSTEM 6.数据文件7.日志文件8.控制文件9.系统全局区(System Global Area,SGA)10.程序全局区(Program Global Area,PGA)11.数据库管理员12.安全官员13.网络管理员14.应用程序开发员15.应用程序管理员16.数据库用户。
三、简答题1.答:数据库由若干个表空间组成,表空间由表、索引、视图等逻辑对象组成,表由段组成,段由区组成,区则由数据块组成。
2.答:物理结构由构成数据库的操作系统文件所决定。
每个Oracle数据库都由3种类型的文件组成:数据文件、日志文件和控制文件。
Oracle数据库有一个或多个物理的数据文件。
数据库的数据文件包含全部数据库数据。
逻辑数据物理地存储在数据文件中。
每个数据库有两个或多个日志文件组,日志文件组用于收集数据库日志。
日志的主要功能是记录对数据所作的修改,所以对数据库作的全部修改记录在日志中。
在出现故障时,如果不能将修改数据永久地写入数据文件,则可利用日志得到修改记录,从而保证已经发生的操作成果不会丢失。
每个Oracle数据库有一个控制文件,记录数据库的物理结构。
控制文件包含数据库名、数据库数据文件和日志文件的名字、位置和数据库建立日期等信息。
3.答:SGA是一组共享内存结构,其中包含一个Oracle数据库例程数据及控制信息。
如果有多个用户同时连接到同一个例程,则此例程的SGA数据由这些用户共享。
因此,SGA也称为共享全局区(Shared Global Area)。
SGA包含以下数据结构。
∙数据库缓冲区:SGA用来保存从数据文件中读取的数据块。
∙重做日志缓冲区:SGA中的循环缓冲区,用于记录数据库发生改变的信息。
∙共享池:用于保存用户程序。
1.6习题一.填空题1、关系模型提供了3类完整性规则,分别是_______、_______、_______。
参考答案:实体完整性规则、参照完整性规则、用户定义的完整性规则2、RDBMS由两部分组成,即_______、_______两部分。
答案:数据库系统内核、数据字典3、关系数据库模型支持三种类型的表关联关系:_______、_______、_______。
答案:一对一、一对多以及多对多4、数据模型的种类有很多,例如_______、_______、_______和_______等。
目前理论最成熟、使用最普及的是_______。
答案:层次模型、网状模型、关系数据模型、面向对象模型。
关系数据模型二、选择题1、Oracle 11g版本号中字母“g”的含义是()A.产品类型的“代”( generation) B.网格(gridding)C.集成(integration)D.无含义答案:A2、设计性能较优的关系模式称为规范化,规范化主要的理论依据是()A.关系规范化理论B.关系运算理论C.关系代数理论D.数理逻辑答案:A3、消除了部分函数依赖的1NF的关系模式必定是()A.1NF B.2NF C.3NF D.4NF答案:B4、当B属于函数依赖于A属性时,属性B及A 的联系是()A.1对多B.多对1 C.多对多D.以上都不是答案:B5、根据关系数据库规范化理论,关系数据库中的关系要满足第一范式。
下面“部门”关系中,因哪个属性而使它不满足第一范式?部门(部门号,部门名,部门成员,部门总经理)A.部门总经理B.部门成员C.部门名D.部门号答案:B6、下列不属于Oracle数据库数据类型的是()A.NUMBER B.FLOAT C.CLOB D.BOOLEAN 答案:D三、简答题1、简述数据库及数据库管理系统的区别。
参考答案:数据库是用来存储信息或数据的机制,是按照数据结构来组织、存储和管理数据的仓库。
可以被定义为是在计算机存储设备上合理存放的,互相关联的数据集合。
1.6习题一。
填空题1、关系模型提供了3类完整性规则,分别是_______、_______、_______。
参考答案:实体完整性规则、参照完整性规则、用户定义的完整性规则2、RDBMS由两部分组成,即_______、_______两部分。
答案:数据库系统内核、数据字典3、关系数据库模型支持三种类型的表关联关系:_______、_______、_______.答案:一对一、一对多以及多对多4、数据模型的种类有很多,例如_______、_______、_______和_______等。
目前理论最成熟、使用最普及的是_______。
答案:层次模型、网状模型、关系数据模型、面向对象模型。
关系数据模型二、选择题1、Oracle 11g版本号中字母“g”的含义是()A.产品类型的“代”(generation) B.网格(gridding)C.集成(integration) D.无含义答案:A2、设计性能较优的关系模式称为规范化,规范化主要的理论依据是()A.关系规范化理论B.关系运算理论C.关系代数理论D.数理逻辑答案:A3、消除了部分函数依赖的1NF的关系模式必定是( )A.1NF B.2NFC.3NFD.4NF答案:B4、当B属于函数依赖于A属性时,属性B与A 的联系是( )A.1对多B.多对1 C.多对多D.以上都不是答案:B5、根据关系数据库规范化理论,关系数据库中的关系要满足第一范式。
下面“部门”关系中,因哪个属性而使它不满足第一范式?部门(部门号,部门名,部门成员,部门总经理)A.部门总经理B.部门成员C.部门名D.部门号答案:B6、下列不属于Oracle数据库数据类型的是()A.NUMBER B.FLOAT C.CLOB D.BOOLEAN答案:D三、简答题1、简述数据库与数据库管理系统的区别。
参考答案:数据库是用来存储信息或数据的机制,是按照数据结构来组织、存储和管理数据的仓库。
可以被定义为是在计算机存储设备上合理存放的,互相关联的数据集合.数据库管理系统,它是基于某种结构数据模型、以统一的方式管理和维护数据库,并提供访问数据库接口的通用软件。
1、判断题,正确请写写"T",错误请写写"F",1、oracle数据库系统中,启动数据库的第一步是启动一个数据库实例。
( T )2、Oracle服务器端的监听程序是驻留在服务器上的单独进程,专门负责响应客户机的连接请求。
( F)3、oracle数据库中实例和数据库是一一对应的(非ORACLE并行服务,非集群)。
( T)4、系统全局区SGA 是针对某一服务器进程而保留的内存区域,它是不可以共享的。
( F )5、数据库字典视图ALL_***视图只包含当前用户拥有的数据库对象信息。
( F )8、数据字典中的内容都被保存在SYSTEM表空间中。
( T )9、HAVING后面的条件中可以有聚集函数,比如SUM(),AVG()等, WHERE 后面的条件中也可以有聚集函数。
( F )10、"上海西北京" 可以通过like ‘%上海_’查出来。
( F )11、表空间是oracle 最大的逻辑组成部分。
Oracle数据库由一个或多个表空间组成。
一个表空间由一个或多个数据文件组成,但一个数据文件只能属于一个表空间。
( T )12、表空间分为永久表空间和临时表空间两种类型。
( T )13、truncate是DDL操作,不能 rollback。
( T )14、如果需要向表中插入一批已经存在的数据,可以在INSERT语句中使用WHERE语句。
( F )15、Oracle数据库中字符串和日期必须使用双引号标识。
( F )16、Oracle数据库中字符串数据是区分大小写的。
( T )17、Oracle数据库中可以对约束进行禁用,禁用约束可以在执行一些特殊操作时候保证操作能正常进行。
( F )18、为了节省存储空间,定义表时应该将可能包含NULL值的字段放在字段列表的末尾。
( T ) 20、在连接操作中,如果左表和右表中不满足连接条件的数据都出现在结果中,那么这种连接是全外连接。
oracle数据库的试题及答案一、选择题1. Oracle数据库是一种()数据库管理系统。
A. 非关系型B. 关系型C. 分布式D. 图形化2. 数据库中,将所有数据进行分类和组织的基本单位是()。
A. 表B. 字段C. 记录D. 数据库3. 在Oracle数据库中,用于删除表中所有数据的操作是()。
A. DELETEB. REMOVEC. DROPD. TRUNCATE4. 在Oracle数据库中,用于更新表中数据的操作是()。
A. UPDATEB. MODIFYC. ALTERD. REPLACE5. 在Oracle数据库中,用于查询数据的操作是()。
A. SELECTB. SEARCHC. FINDD. WHERE二、简答题1. 请简述Oracle数据库的特点。
Oracle数据库具有以下特点:- 完整性:通过约束和触发器来保证数据的完整性。
- 可扩展性:支持集群部署和分布式数据库,可以动态扩展数据库的容量。
- 安全性:提供了严格的数据权限管理和用户认证机制,保护数据免受未经授权的访问。
- 可靠性:支持数据备份和恢复功能,保障数据的持久性和可靠性。
- 高性能:采用多线程和缓存技术,提高数据库的读写性能和响应速度。
2. 在Oracle数据库中,什么是事务?事务是指逻辑上的一组操作,这组操作要么全部成功执行,要么全部失败回滚。
事务具有以下特性:- 原子性:事务中的操作要么全部执行成功,要么全部回滚,不会出现部分执行的情况。
- 一致性:事务执行前后,数据库的状态保持一致性,不会破坏数据的完整性。
- 隔离性:事务之间相互独立,每个事务都认为自己是唯一在操作数据库的。
- 持久性:事务一旦提交,其对数据库的修改将永久保存,不会被回滚。
3. 请说明Oracle数据库中的索引是什么,并简要介绍索引的作用。
索引是一种特殊的数据库对象,用于快速查找数据库中的数据。
索引基于一个或多个列值创建,并按照特定的排序规则存储列值和对应的行指针。
1、判断题,正确请写写"T",错误请写写"F",1、oracle数据库系统中,启动数据库的第一步是启动一个数据库实例。
( T )2、Oracle服务器端的监听程序是驻留在服务器上的单独进程,专门负责响应客户机的连接请求。
( F)3、oracle数据库中实例和数据库是一一对应的(非ORACLE并行服务,非集群)。
( T)4、系统全局区SGA 是针对某一服务器进程而保留的内存区域,它是不可以共享的。
( F )5、数据库字典视图ALL_***视图只包含当前用户拥有的数据库对象信息。
( F )8、数据字典中的内容都被保存在SYSTEM表空间中。
( T )9、HAVING后面的条件中可以有聚集函数,比如SUM(),AVG()等, WHERE 后面的条件中也可以有聚集函数。
( F )10、"上海西北京" 可以通过like ‘%上海_’查出来。
( F )11、表空间是oracle 最大的逻辑组成部分。
Oracle数据库由一个或多个表空间组成。
一个表空间由一个或多个数据文件组成,但一个数据文件只能属于一个表空间。
( T )12、表空间分为永久表空间和临时表空间两种类型。
( T )13、truncate是DDL操作,不能 rollback。
( T )14、如果需要向表中插入一批已经存在的数据,可以在INSERT语句中使用WHERE语句。
( F )15、Oracle数据库中字符串和日期必须使用双引号标识。
( F )16、Oracle数据库中字符串数据是区分大小写的。
( T )17、Oracle数据库中可以对约束进行禁用,禁用约束可以在执行一些特殊操作时候保证操作能正常进行。
( F )18、为了节省存储空间,定义表时应该将可能包含NULL值的字段放在字段列表的末尾。
( T )20、在连接操作中,如果左表和右表中不满足连接条件的数据都出现在结果中,那么这种连接是全外连接。
Oracle数据库试题一、选择题1、段是表空间中一种逻辑存储结构,以下( D )不是ORACLE数据库使用的段类型。
(A)索引段(B)临时段(C)回滚段(D)代码段2、 ORACLE数据库物理结构包括以下三种文件,以下不属于的是( A )。
(A)系统文件(B)日志文件(C)数据文件(D)控制文件3、数据库中有两个用户scott和muuser,物资表wz是属于myuser用户的,但当前用户是scott,要求查询物资表wz(wno,wname,wtype,wunit)物资单位wunit列为null的记录,取结果的前5条记录显示,以下正确的SQL语句是( C )(A)select*from scott.wz where wunit is null and rownum<5;(B)select*from myuser.wz where wunit = null and rownum<5;(C) select*from myuser.wz where wunit is null and rownum<6;(D)select*form scott.wz where wunit is null and rownum<6;4、若当前日期为’25-5月-06’,以下( D )表达式能计算出5个月后那一天所在月份的最后一天的日期。
(A)NEXT_DAY(ADD_MONTHS(28-5月-06,5))(B)NEXT_DAY(MONTHS_BETWEEN(28-5月-06,5))(C)NEXT_DAY(MONTHS_BETWEEN(’28-5月-06’,5))(D)NEXT_DAY(ADD_MONTHS(’28-5月-06’,5))5、下列叙述中正确的是_C_。
A、数据库是一个独立的系统,不需要操作系统的支持B、数据库设计是指设计数据库管理系统C、数据库技术的根本目标是要解决数据共享的问题D、数据库系统中,数据的物理结构必须与逻辑结构一致6、SQL语句中修改表结构的命令是 C 。
--1.列出至少有一个雇员的所有部门。
SELECT * FROM DEPTWHERE DEPTNO IN (SELECT DISTINCT DEPTNO FROM EMP);--2.列出薪金比“SMITH”多的所有雇员。
SELECT * FROM EMP WHERE SAL>(SELECT SAL FROM EMP WHERE ENAME='SMITH');--3.列出所有雇员的姓名及其上级的姓名。
SELECT AS empName, AS mgrNameFROM emp ygb,emp sjbWHERE =;--4.列出入职日期早于其直接上级的所有雇员。
【SELECT * FROM emp ygbWHERE hiredate<(SELECT hiredate FROM emp sjb WHERE =;--5.列出所有部门的名称和这些部门的雇员编号及姓名(没有雇员的部门包含在内)SELECT dname,enameFROM dept a LEFT JOIN emp b ON =; --6.列出所有JOB为“CLERK”(办事员)的员工姓名及其部门名称SELECT ename,dnameFROM dept a,emp bWHERE = AND job='CLERK';--7.列出各种类型的最低薪金,并使最低薪金大于。
SELECT job,MIN(sal)—FROM empGROUP BY jobHAVING MIN(sal)>1500;--8.列出从事“SALES”(销售)工作的雇员的姓名,假定不知道销售部的部门编号。
SELECT ename FROM empWHERE deptno=(SELECT deptno FROM dept WHERE dname='SALES'); --9.列出薪金高于公司平均水平的所有雇员。
SELECT * FROM EMP WHERE SAL>(SELECT AVG(SAL) FROM EMP);--10.列出与“SCOTT”从事相同工作的所有雇员。
Oracle基本操作练习题使用表:员工表(emp):(empnoN UMBER(4)notnul l,--员工编号,表示唯一enameV ARCHA R2(10),--员工姓名job VARCHA R2(9),--员工工作职位mgrNUM BER(4),--员工上级领导编号hireda teDAT E,--员工入职日期salNUM BER(7,2),--员工薪水commNU MBER(7,2),--员工奖金deptno NUMBE R(2)—员工部门编号)部门表(dept):(deptno NUMBE R(2)notnul l,--部门编号dnameV ARCHA R2(14),--部门名称locVAR CHAR2(13)—部门地址)说明:增删改较简单,这些练习都是针对数据查询,查询主要用到函数、运算符、模糊查询、排序、分组、多变关联、子查询、分页查询等。
建表脚本.txt建表脚本(根据需要使用):练习题:1.找出奖金高于薪水60%的员工信息。
SELECT * FROM emp WHEREcomm>sal*0.6;2.找出部门10中所有经理(MANAGE R)和部门20中所有办事员(CLERK )的详细资料。
SELECT* FROM emp WHERE(JOB='MANAGE R' AND DEPTNO=10) OR (JOB='CLERK' AND DEPTNO=20);3.统计各部门的薪水总和。
SELECT deptno,SUM(sal) FROM emp GROUPBY deptno;4.找出部门10中所有理(M ANAGE R),部门20中所有办事员(C LERK 以及既不是经理又不是办事员但其薪水大于或等2000的所有员工的)详细资料。
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数据库期末考试试题及答案一、选择题(每题2分,共20分)1. 在Oracle数据库中,用于创建数据库表的命令是:A. CREATE DATABASEB. CREATE TABLEC. DROP TABLED. ALTER TABLE答案:B2. 下列哪个选项不是Oracle数据库的系统表?A. USER_TABLESB. DBA_TABLESC. ALL_TABLESD. EMPLOYEE答案:D3. 在Oracle数据库中,用于删除数据库表的命令是:A. DROP TABLEB. DELETE TABLEC. REMOVE TABLED. ERASE TABLE答案:A4. Oracle数据库中,哪个命令用于查询数据库中所有用户?A. SELECT * FROM USER_USERS;B. SELECT * FROM ALL_USERS;C. SELECT * FROM DBA_USERS;D. SELECT * FROM USER;答案:B5. 在Oracle数据库中,用于添加新列的命令是:A. ADD COLUMNB. INSERT COLUMNC. CREATE COLUMND. ALTER TABLE答案:D6. 下列哪个选项不是Oracle数据库的存储引擎?A. InnoDBB. Oracle RDBMSC. BDBD. Oracle ASM答案:A7. Oracle数据库中,用于更新表中数据的命令是:A. UPDATEB. CHANGEC. MODIFYD. ALTER答案:A8. Oracle数据库中,用于删除表中数据的命令是:A. DELETEB. REMOVEC. DROPD. ERASE答案:A9. 在Oracle数据库中,用于查询表中数据的命令是:A. SELECTB. QUERYC. FETCHD. GET答案:A10. Oracle数据库中,用于创建索引的命令是:A. CREATE INDEXB. CREATE KEYC. INDEXD. KEY答案:A二、填空题(每题2分,共20分)1. Oracle数据库的默认端口号是______。
oracle数据库试题及答案一、单选题1. Oracle数据库的特点是()A. 高安全性B. 高性能C. 可扩展性D. 全面支持ACID特性答案:D2. 在Oracle数据库中,数据存储在()中。
A. 数据块B. 数据段C. 数据文件D. 表空间答案:D3. 下面哪个是Oracle数据库的管理工具?A. SQL DeveloperB. ToadC. PL/SQL DeveloperD. SQL*Plus答案:A4. Oracle数据库中,用于创建和修改数据库对象的语言是()。
A. DMLB. DDLC. DCLD. TCL答案:B5. 在Oracle数据库中,用于查询和操作数据库对象的语言是()。
A. DMLB. DDLC. DCLD. TCL答案:A二、多选题1. 下列哪些是Oracle数据库的特点?()A. 支持事务处理B. 支持分布式数据库C. 支持并发控制D. 支持网络编程答案:A、B、C2. Oracle数据库的体系结构包含以下几个部分:()A. 数据块B. 数据文件C. 表空间D. 实例答案:A、B、C、D3. 下列哪些是Oracle数据库的安全机制?()A. 用户权限管理B. 数据加密C. 访问控制D. 数据备份答案:A、B、C4. Oracle数据库的存储结构包括以下几个层次:()A. 数据库B. 表空间C. 数据文件D. 段E. 数据块答案:A、B、C、D、E5. Oracle数据库的备份与恢复策略包括以下几种:()A. 完全备份B. 增量备份C. 差异备份D. 恢复点备份E. 日志备份答案:A、B、C、E三、判断题1. Oracle数据库是面向对象的数据库。
答案:错误2. Oracle数据库可以跨平台使用。
答案:正确3. Oracle数据库的事务具有原子性、一致性、隔离性和持久性。
答案:正确4. Oracle数据库可以使用PL/SQL语言进行存储过程和触发器的编写。
答案:正确5. Oracle数据库的数据存储采用以行为单位的方式。
一、判断题,正确请写写"T",错误请写写"F",1、oracle数据库系统中,启动数据库的第一步是启动一个数据库实例。
( T )2、Oracle服务器端的监听程序是驻留在服务器上的单独进程,专门负责响应客户机的连接请求。
( F)3、oracle数据库中实例和数据库是一一对应的(非ORACLE并行服务,非集群)。
( T)4、系统全局区SGA 是针对某一服务器进程而保留的内存区域,它是不可以共享的。
( F )5、数据库字典视图ALL_***视图只包含当前用户拥有的数据库对象信息。
( F )8、数据字典中的内容都被保存在SYSTEM表空间中。
( T )9、HAVING后面的条件中可以有聚集函数,比如SUM(),AVG()等, WHERE 后面的条件中也可以有聚集函数。
( F )10、"上海西北京" 可以通过like ‘%上海_’查出来。
( F )11、表空间是oracle 最大的逻辑组成部分。
Oracle数据库由一个或多个表空间组成。
一个表空间由一个或多个数据文件组成,但一个数据文件只能属于一个表空间。
( T )12、表空间分为永久表空间和临时表空间两种类型。
( T )13、truncate是DDL操作,不能 rollback。
( T )14、如果需要向表中插入一批已经存在的数据,可以在INSERT语句中使用WHERE 语句。
( F )15、Oracle数据库中字符串和日期必须使用双引号标识。
( F )16、Oracle数据库中字符串数据是区分大小写的。
( T )17、Oracle数据库中可以对约束进行禁用,禁用约束可以在执行一些特殊操作时候保证操作能正常进行。
( F )18、为了节省存储空间,定义表时应该将可能包含NULL值的字段放在字段列表的末尾。
( T )20、在连接操作中,如果左表和右表中不满足连接条件的数据都出现在结果中,那么这种连接是全外连接。
Oracle基本操作练习题使用表:员工表(emp):(empno NUMBER(4)notnull,—-员工编号,表示唯一ename VARCHAR2(10),--员工姓名job VARCHAR2(9),-—员工工作职位mgr NUMBER(4),--员工上级领导编号hiredate DATE,—-员工入职日期sal NUMBER(7,2),--员工薪水comm NUMBER(7,2),--员工奖金deptno NUMBER(2)-员工部门编号)部门表(dept):(deptno NUMBER(2)notnull,--部门编号dname VARCHAR2(14),-—部门名称loc VARCHAR2(13)—部门地址)说明:增删改较简单,这些练习都是针对数据查询,查询主要用到函数、运算符、模糊查询、排序、分组、多变关联、子查询、分页查询等。
建表脚本.txt建表脚本(根据需要使用):练习题:1。
找出奖金高于薪水60%的员工信息。
SELECT * FROM emp WHERE comm〉sal*0.6;2.找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料。
SELECT * FROM emp WHERE (JOB=’MANAGER’AND DEPTNO=10) OR (JOB=’CLERK' AND DEPTNO=20);3.统计各部门的薪水总和。
SELECT deptno,SUM(sal) FROM emp GROUP BY deptno;4.找出部门10中所有理(MANAGER),部门20中所有办事员(CLERK)以及既不是经理又不是办事员但其薪水大于或等2000的所有员工的详细资料.SELECT * FROM emp WHERE (JOB=’MANAGER’ AND DEPTNO=10) OR (JOB=’CLERK’AND DEPTNO=20) OR (JOB NOT IN(’MANAGER’,’CLERK’)AND SAL>2000);5。
Oracle基本操作练习题使用表:员工表(emp):(empno NUMBER(4)notnull,--员工编号,表示唯一ename VARCHAR2(10),--员工姓名job VARCHAR2(9),--员工工作职位mgr NUMBER(4),--员工上级领导编号hiredate DATE,--员工入职日期sal NUMBER(7,2),--员工薪水comm NUMBER(7,2),--员工奖金deptno NUMBER(2)—员工部门编号)部门表(dept):(deptno NUMBER(2)notnull,--部门编号dname VARCHAR2(14),--部门名称loc VARCHAR2(13)—部门地址)说明:增删改较简单,这些练习都是针对数据查询,查询主要用到函数、运算符、模糊查询、排序、分组、多变关联、子查询、分页查询等。
建表脚本.txt建表脚本(根据需要使用):练习题:1.找出奖金高于薪水60%的员工信息。
SELECT * FROM emp WHERE comm>sal*0.6;2.找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料。
SELECT * FROM emp WHERE (JOB='MANAGER' AND DEPTNO=10) OR (JOB='CLERK' AND DEPTNO=20);3.统计各部门的薪水总和。
SELECT deptno,SUM(sal) FROM emp GROUP BY deptno;4.找出部门10中所有理(MANAGER),部门20中所有办事员(CLERK)以及既不是经理又不是办事员但其薪水大于或等2000的所有员工的详细资料。
SELECT * FROM emp WHERE (JOB='MANAGER' AND DEPTNO=10) OR (JOB='CLERK' AND DEPTNO=20) OR (JOB NOT IN('MANAGER','CLERK') AND SAL>2000);5.列出各种工作的最低工资。
oracle数据库的试题及答案### Oracle数据库试题及答案#### 一、选择题1. 在Oracle数据库中,哪个命令用于创建数据库表?- A. CREATE TABLE- B. DROP TABLE- C. ALTER TABLE- D. TRUNCATE TABLE答案:A2. 以下哪个选项不是Oracle数据库的SQL语句?- A. SELECT- B. UPDATE- C. DELETE- D. PRINT答案:D3. Oracle数据库中,用于删除表中所有数据的命令是什么? - A. DELETE FROM table_name- B. TRUNCATE TABLE table_name- C. DROP TABLE table_name- D. CLEAR table_name答案:B4. 在Oracle数据库中,哪个命令用于查看表的结构?- A. DESCRIBE table_name- B. EXPLAIN table_name- C. DESC table_name- D. SHOW table_name答案:C5. Oracle数据库中,哪个命令用于插入数据?- A. INSERT INTO- B. ADD INTO- C. PUT INTO- D. SET INTO答案:A#### 二、简答题1. 简述Oracle数据库的体系结构。
- Oracle数据库的体系结构主要包括内存结构和存储结构。
内存结构包括系统全局区(SGA)和程序全局区(PGA)。
存储结构包括数据文件、控制文件和重做日志文件。
SGA是所有数据库进程共享的内存区域,包含了数据库缓冲区、重做日志缓冲区等。
PGA是每个服务器进程或后台进程的私有内存区域。
2. 什么是PL/SQL?它在Oracle数据库中的作用是什么?- PL/SQL是Oracle数据库的过程式扩展,它允许用户定义存储过程、函数、触发器等。
PL/SQL结合了SQL语句和过程式编程的特性,使得数据库编程更加灵活和强大。
--1.列出至少有一个雇员的所有部门。
SELECT * FROM DEPTWHERE DEPTNO IN (SELECT DISTINCT DEPTNO FROM EMP);--2.列出薪金比“SMITH”多的所有雇员。
SELECT * FROM EMP WHERE SAL>(SELECT SAL FROM EMP WHERE ENAME='SMITH');--3.列出所有雇员的姓名及其上级的姓名。
SELECT AS empName, AS mgrNameFROM emp ygb,emp sjbWHERE =;--4.列出入职日期早于其直接上级的所有雇员。
SELECT * FROM emp ygbWHERE hiredate<(SELECT hiredate FROM emp sjb WHERE =;--5.列出所有部门的名称和这些部门的雇员编号及姓名(没有雇员的部门包含在内)SELECT dname,enameFROM dept a LEFT JOIN emp b ON =; --6.列出所有JOB 为“CLERK”(办事员)的员工姓名及其部门名称SELECT ename,dnameFROM dept a,emp bWHERE = AND job='CLERK';--7.列出各种类型的最低薪金,并使最低薪金大于。
SELECT job,MIN(sal)FROM empGROUP BY jobHAVING MIN(sal)>1500;--8.列出从事“SALES”(销售)工作的雇员的姓名,假定不知道销售部的部门编号。
SELECT ename FROM empWHERE deptno=(SELECT deptno FROM dept WHEREdname='SALES');--9.列出薪金高于公司平均水平的所有雇员。
SELECT * FROM EMP WHERE SAL>(SELECT AVG(SAL) FROM EMP);--10.列出与“SCOTT”从事相同工作的所有雇员。
SELECT * FROM EMPWHERE JOB=(SELECT JOB FROM EMP WHERE ENAME='SCOTT')AND ENAME<>'SCOTT';--11.列出薪金等于部门中任何一个雇员薪金的员工姓名和薪金SELECT ENAME,SAL FROM EMPWHERE SAL IN(SELECT SAL FROM EMP WHERE DEPTNO=30);SELECT ENAME,SAL FROM EMPWHERE SAL =ANY(SELECT SAL FROM EMP WHERE DEPTNO=30); --12.列出薪金高于部门中所有雇员薪金的员工姓名和薪金SELECT * FROM EMPWHERE SAL >ALL(SELECT SAL FROM EMP WHERE DEPTNO=30);--13.列出所有部门的部门名称、地点以及该部门中雇员的数量SELECT DNAME,DEPTNO,LOC,(SELECT COUNT(*) FROM EMP E WHERE = AS TOTALFROM DEPT;--14.列出各种类别工作的最低工资SELECT job,MIN(sal)FROM empGROUP BY job;--15.列出各个部门的MANAGER(经理)的最低薪金。
SELECT MIN(sal) FROM empWHERE job='MANAGER' GROUP BY DEPTNO;--1. 查询所有部门员工的编号、姓名、月薪及奖金。
select empno,ename,sal,comm from emp where deptno=10;--2. 查询员工WHITE的员工编号。
select empno from emp where ename='WHITE';--3. 查询所有员工的编号及收入。
(提示:收入=月薪+奖金)select empno 编号,sal+nvl(comm,0) as 收入from emp;--4. 查询所有员工的编号、姓名、工种及其工龄,按工龄降序排序,工龄相同时按编号升序排序。
Selectempno,ename,job,trunc(months_between(sysdate,hiredate)/12) 工龄from emp order by 工龄desc,empno asc;--5. 统计各部门的员工人数及工种类型数。
select deptno,count(*) 人数,count(distinct job) 工种类型数from emp group by deptno;--6. 查询部门人数多于人的部门编号。
select deptno,count(*) from emp group by deptno having count(*) > 3;--7. 统计各部门各种工作类别的最低月薪,显示最低薪金大于的记录。
select deptno,job,min(sal) from emp group by deptno,job having min(sal)>1500;--8. 统计、及部门员工平均工资。
select deptno,coung(*) from emp where deptno in (10,20,30) group by deptno;--9. 查询工资水平在至间的各部门员工人数。
select deptno,count(*) from emp where sal between 2000 and 5000 group by deptno;--10. 查询公司最高领导人的员工编号及姓名。
select empno,ename from emp where mgr is null;--1、编写一查询,显示与Blake在同一部门工作的雇员的姓名和受雇日期,但是Blake不包含在结果内。
select ename,hiredatefrom empwhere deptno in (select deptno from emp wherelower(ename)='black')and lower(ename)!='black';--2、创建一查询,显示工资大于平均工资水平的雇员的编号及姓名,输出结果按工资降序排列。
select empno,ename,salfrom empwhere sal>(select avg(sal) from emp)order by sal desc;--3、显示位置在Dallas的部门内的雇员的姓名、编号及工作。
select ename,empno,jobfrom emp inner join dept on =where lower(loc)='dallas';--4、显示被King直接管理的雇员的姓名及其工资。
select ,from emp e1 inner join emp e2 on =where lower='king';--5、显示在Sales部门工作的雇员的部门编号、姓名及工作。
select empno,ename,jobfrom emp inner join dept on =where lower(dname)='sales';--6、编写一查询,显示与能获得奖金的雇员的奖金和工资同时匹配的雇员的编号和工资。
select ,,from emp e1 inner join emp e2 on = and =where !=;--7、显示与工作在Dallas的雇员的工资及奖金同时匹配的雇员的姓名、部门名称及工资。
select ,,from emp e inner join dept d on =where (sal,nvl(comm,0)) in(select sal,nvl(comm,0) from emp where deptno in (select deptno from dept wherelower(loc)='dallas'));--8、创建一查询,显示能获得与Scott一样工资和奖金的其他雇员的姓名、受雇日期及工资。
select ename,hiredate,salfrom empwhere (sal,nvl(comm,0)) inWHERE job='MANAGER' GROUP BY DEPTNO;(select sal,nvl(comm,0) from emp whereupper(ename)='SCOTT');--9、显示比其上级管理员更早进入公司的雇员的姓名(Employee)、受雇日期(Emp Hiredate)--以及其上级管理员的姓名(Manager)及受雇日期(Mgr Hiredate)。
select Employee, "Emp Hiredate", Manager, "MgrHiredate"from emp w inner join emp m on =where >;--1.列出至少有一个雇员的所有部门。
SELECT * FROM DEPTWHERE DEPTNO IN (SELECT DISTINCT DEPTNO FROM EMP);--2.列出薪金比“SMITH”多的所有雇员。
SELECT * FROM EMP WHERE SAL>(SELECT SAL FROM EMP WHEREENAME='SMITH');--3.列出所有雇员的姓名及其上级的姓名。
SELECT AS empName, AS mgrNameFROM emp ygb,emp sjbWHERE =;--4.列出入职日期早于其直接上级的所有雇员。
SELECT * FROM emp ygbWHERE hiredate<(SELECT hiredate FROM emp sjb WHERE =;--5.列出所有部门的名称和这些部门的雇员编号及姓名(没有雇员的部门包含在内)SELECT dname,enameFROM dept a LEFT JOIN emp b ON =;--6.列出所有JOB为“CLERK”(办事员)的员工姓名及其部门名称SELECT ename,dnameFROM dept a,emp bWHERE = AND job='CLERK';--7.列出各种类型的最低薪金,并使最低薪金大于1500。