Oracle数据库复习题.docx
《Oracle数据库复习题.docx》由会员分享,可在线阅读,更多相关《Oracle数据库复习题.docx(11页珍藏版)》请在冰豆网上搜索。
![Oracle数据库复习题.docx](https://file1.bdocx.com/fileroot1/2023-5/27/df9b304a-5215-4e29-bf6d-e07703bde6b6/df9b304a-5215-4e29-bf6d-e07703bde6b61.gif)
Oracle数据库复习题
题型:
选择题:
1’*15
填空题:
1’*10
判断题:
1’*10
简答题:
5’*3
编程题:
15’*1
查询设计:
3’*5
综合题:
20’
一、选择题
在关系模式中,视图是三级模式结构中的()D
A.内模式 B.模式 C.存储模式 D.外模式
下面()内容通常不属于Oracle数据库管理员的职责。
D
A.创建新用户 B.创建数据库对象
C.安装Oracle软件 D.操纵数据库数据的应用程序开发
在下面关于数据库技术的说法中,不正确的是____。
C
A.数据的完整性是指数据的正确性和一致性
B.防止非法用户对数据的存取,称为数据库的安全性防护
C.采用数据库技术处理数据,数据冗余应完全消失
D.不同用户可以使用同一数据库,称为数据共享
下列不属于关系代数运算的是。
A
A.查询B.投影C.选择D.联接
在登录到OracleEnterpriseManager(OEM)时,要求验证用户的身份。
下面不属于可以选择的身份为()。
D
A.NormalB.SYSOPERC.SYSDBAD.Administrator
Oracle管理数据库存储空间的最小数据存储单位是()。
C
A.表空间B.表C.数据块D.区间
下列不属于Oracle表空间的是()。
D
A.大文件表空间B.系统表空间C.撤销表空间D.网格表空间
Oracle数据库物理结构包括以下三种文件,以下不属于的是()。
A
A.系统文件B.日志文件C.数据文件D.控制文件
下面不属于Oracle数据库状态的是()。
D
A.OPENB.MOUNTC.CLOSED.READY
删除数据库的语句是()C
A.DELETEDATABASEB.REMOVEDATABASE
C.DROPDATABASED.UNMOUNTDATABASE
在ALTERTABLE语句中,指定某列不可用,可以使用关键字()。
A
A.UNUSEDB.USEDC.DISABLED.NOUSE
关键字是关系模型中的重要概念。
当一张二维表(A表)的主关键字被包含到另外一张二维表(B表)中时,它就称为B表的。
B
A.主关键字B.外部关键字C.候选关键字D.超关键字
以下关于空值(NULL)叙述正确的是()B
A)空值等于空字符串B)空值表示字段或变量还没有确定的值
C)空格是空值D)空值等同于数值0
有关查询与视图,下列说法中不正确的是()。
B
A.查询是只读型数据,而视图可以更新数据源
B.查询可以更新源数据,视图也有此功能
C.视图具有许多数据库表的属性,利用视图可以创建查询和视图
D.视图可以更新源表中的数据,存在于数据库中
PL/SQL标识符的最大长度为()。
B
A.20B.30C.40D.50
序列号是一个Oracle整数,最多可以有()个数字。
C
A.36B.37C.38D.39
下面不是Oracle游标属性的是()。
D
A.%ISOPENB.%FOUNDC.%ROWCOUNTD.%FETCH
用于显示所有表空间描述信息的视图为()。
B
A.V$TABLESPACEB.DBA_TABLESPACES
C.USER_TABLESPACESD.TABLESPACES
撤销用户指定权限的命令是()。
A
A.REVOKEB.REMOVERIGHT
C.DROPRIGHTD.DELETERIGHT
拥有所有系统级管理权限的角色是()。
D
A.ADMINB.SYSTEMC.SYSMAND.DBA
如果一个表中某条记录的一个字段暂时不具有任何值,那么在其中将保存以下(c)内容。
A.空格字符B.数字0C.NULLD.该字段数据类型的默认值
下列哪一项不是伪列ROWID的作用?
()D
A.保存记录的物理地址B.快速访问指定的记录
C.标识各条记录D.保存记录的头信息
某用户需要创建一个很小的表,但是该表会被许多查询使用。
这时用户应当在创建该表时指定下列()。
B
A.PCTFREE和PCTUSEDB.CACHE
C.NOLOGGINGD.TABLESPACE
唯一性约束与主键约束的一个区别是()。
D
A.唯一性约束列的值不可以有重复值
B.唯一性约束列的值可以不是唯一的
C.唯一性约束列的值不可以为空值
D.唯一性约束列的值可以为空值
下列哪个语句可以在SQL*Plus中直接调用一个过程?
(d)
A.RETURNB.CALLC.SETD.EXEC
下面()不是过程中参数的有效模式。
C
A.INB.INOUTC.OUTIND.OUT
下列哪一个动作不会激发触发器?
()B
A.更新数据B.查询数据
C.删除数据D.插入数据
替代触发器一般被附加到哪一类数据库对象上?
()C
A.表B.序列C.视图D.簇
如果希望执行某个操作时,该操作本身并不执行,而是去执行另外的一些操作,那么可以使用什么方式完成这种操作?
()C
A.before触发器
B.after触发器
C.insteadof触发器
D.undo触发器
如果创建的表其主键可以自动编号,则应该为主键创建的索引类型是()。
A
A.反向键索引B.位图索引C.B树索引D.基于函数的索引
如果用户经常要在EMP表的SEX列统计不同性别的员工信息,则应该在SEX列上创建的索引类型是(b)。
C
A.B树索引B.位图索引C.反向键索引D.基于函数的索引
建立序列后,首次调用序列时应该使用()伪列。
C
A.ROWIDB.ROWNUMC,NEXTVALD.CURRVAL
下列关于序列的描述中,()是不正确的。
D
A.序列是Oracle提供的用于产生一系列唯一数字的数据库对象
B.序列并不占用实际的存储空间
C.使用序列时,伪列NEXTVAL返回序列生成的下一个值
D.任何时候都可以使用伪列CURRVAL返回当前序列值
为了禁止在视图上执行DML操作,建立视图时应该提供()选项。
B
A.WITHCHECKOPTIONB.WITHREADONLY
C.WITHREADOPTIOND.READONLY
对于游标FOR循环,以下哪种说法是错误的?
()D
A.循环隐含使用FETCH提取数据
B.循环隐含使用OPEN打开记录集
C.终止循环操作也就关闭了游标
D.使用游标FOR循环不需要定义游标
二、填空题
在安装Oracle11g时,需要指定全局数据库名,默认为orcl。
用于显示数据库基本信息的Oracle系统视图是V$DATABASE。
完整的Oracle数据库系统通常由两个部分组成:
实例(INSTANCE)和数据库(DATABASE)。
Oracle数据块的标准大小由初始化参数DB_BLOCK_SIZE确定。
Oracle数据库系统的物理存储结构主要由3类文件组成,分别为数据文件、日志文件、控制文件。
在Oracle的逻辑存储结构中,数据块是最小的I/O单元。
在Oracle实例的进程结构中,主要有3类进程:
用户进程、服务器进程和后台进程。
当用户运行一个应用程序或一个Oracle工具是,系统将创建一个用户进程。
执行强制启动数据库的命令是STARTUPFORCE。
保存初始化参数的服务器参数文件的缩写是SPFile。
Oracle中的异常可以分为预定义异常、非预定义异常和用户定义异常3类。
有些表共享公共的列,并经常同时被访问。
为了提高数据存取的效率,把这些表在物理上存储在一起,得到的表的组合就是簇。
声明游标的语句是DECLARECURSOR。
如果表中某列的基数比较低,则应该在该列上创建索引。
位图
使用显式游标主要包括4个步骤:
声明游标、打开游标、提取数据、关闭游标。
在PL/SQL中,如果SELECT语句没有返回任何记录,则会引发NO_DATA_FOUND异常。
查看操作在数据表中所影响的行数,可以通过游标的%ROWCOUNT属性实现。
三、判断题(以下说法均正确)
数据库可以由多个实例装载和打开,而实例可以在任何时间装载和打开一个数据库。
启动Oracle数据库服务器时,实际上是在服务器的内存中创建一个Oracle实例。
数据库管理员可以为数据库创建多个撤销表空间,但每个数据库实例最多只能使用一个撤销表空间。
同一个实例中的所有SQL语句的排序操作共享一个排序段。
表空间在物理上与数据文件相对应,一个表空间在物理上对应一个或多个数据文件,而一个数据文件只能属于一个表空间。
Oracle支持在同一个数据库中使用多种大小的块。
在撤销表空间中,存在大量的写入操作,而只有少量的读取操作。
用户对数据库的操作如果产生日志信息,则该日志信息首先被存储在日志缓冲区,随后由LGWR进程保存到日志文件组。
当用户运行一个应用程序或一个Oracle工具时,系统将创建一个用户进程。
保存初始化参数的服务器参数文件的缩写是SPFile。
视图是虚拟的表,它在物理上并不存在。
可以把它看成是一个存储的查询。
创建索引可以提高读取数据的效率。
有些表共享公共的列,并经常同时被访问。
为了提高数据存取的效率,把这些表在物理上存储在一起,得到的表的组合就是簇。
用于显示控制文件中保存的所有表空间的名称和数量的视图是V$TABLESPACE。
RMAN是RecoveryManager的缩写,即恢复管理器。
它可以用来备份和恢复数据库文件、归档日志和控制文件,可以用来执行完全或不完全的数据库恢复。
在恢复Oracle数据库时,必须先启用ARCHIVELOG(归档日志)模式,才能使数据库在磁盘故障的情况下得到恢复。
初始化参数db_recovery_file_dest表示闪回恢复区的位置,db_recovery_file_dest_size表示闪回恢复区的大小。
在ALTERUSER语句中,使用ACCOUNTLOCK关键词锁定账户。
由于ROWID实际上保存的是记录的物理地址,因此通过ROWID来访问记录可以获得最快的访问速度。
四、简答题
根据存放的数据库对象类型,Oracle中的段可以分为哪几种?
数据段索引段临时段回退段LOB段
简述Oracle数据库逻辑存储结构。
Oracle数据库由多个表空间组成,而表空间又由许多段组成,段由多个盘区组成,盘区又由多个数据块组成
简述事务的概念。
事务是包含一组数据库操作的逻辑工作单元。
在事务中包含的数据库操作是不可分割的整体,要么一起被执行,要么回滚到执行事务之前的状态。
在执行事务时,并不是每执行一个数据库操作就立即将结果写入数据库,而是在完成所有操作后,执行提交命令(Commit)。
如果事务不能成功地被执行,则可以通过执行回滚命令(Rollback)将数据库恢复到执行事务之前的状态。
简述索引的工作原理。
索引是对表的一列或多列进行排序的结构。
因为绝大多数的搜索方法在搜索排序结构时效率都会大大提高,所以如果表中某一列经常被作为关键字搜索,则建议对此列创建索引。
索引提供指针以指向存储在表中指定列的数据值,然后根据指定的排序次序排列这些指针。
数据库使用索引的方式与使用书的目录很相似:
通过搜索索引找到特定的值,然后跟随指针到达包含该值的行。
用户可以利用索引快速访问数据库表中的特定信息。
索引是对数据库表中一个或多个列的值进行排序的结构。
如果想根据用户名来查找特定的用户,则按用户名列UserName建立索引将大大缩短查询的时间。
简述游标的基本概念。
游标从字面来理解就是游动的光标。
用数据库语言来描述,游标是映射在结果集中一行数据上的位置实体,有了游标,用户就可以访问结果集中的任意一行数据了。
将游标放置到某行后,即可对该行数据进行操作,最常见的操作是提取当前行数据。
简述重命名重做日志成员的步骤。
(1)使用SHUTDOWN命令关闭数据库。
(2)将重做日志文件复制到新的位置。
(3)使用STARTUPMOUNT命令装载数据库。
(4)使用带RENAMEFILE子句的ALTERDATABASE语句重命名数据库的重做日志文件。
(5)使用ALTERDATABASEOPEN命令打开数据库。
根据SCOTT用户模式中的4张表,写出实现以下数据查询操作的SELECT语句。
1、选择部门30中的雇员
select*fromempwheredeptno=30;
2、列出所有办事员的姓名、编号和部门
selectename,empno,dnamefromempeinnerjoindeptdone.deptno=d.deptnowherejob=upper('clerk’);
3、找出部门10中所有经理和部门20中的所有办事员的详细资料
select*fromempwhere(deptno=10andjob=upper('manager'))or(deptno=20andjob=upper('clerk'));
4、找出部门10中所有经理、部门20中所有办事员,既不是经理又不是办事员但其薪金>=2000的所有雇员的详细资料
select*fromempwhere(deptno=10andjob=upper('manager'))or(deptno=20andjob=upper('clerk'))or(job<>upper(‘manager’)andjob<>upper(‘clerk’)andsal>=2000)
5、显示不带有'R'的雇员姓名
Selectenamefromempwhereenamenotlike‘%R%’;
Selectenamefromempwhereinstr(ename,’R’)=0;
6、显示雇员的详细资料,按姓名排序
Select*fromemporderbyename
7、显示雇员姓名,根据其服务年限,将最老的雇员排在最前面
Selectenamefromemporderbyhiredate
8、显示所有雇员的姓名、工作和薪金,按工作的降序顺序排序,而工作相同时按薪金升序
Selectename,job,salfromemporderbyjobdesc,salasc
9、显示所有雇员的姓名和加入公司的年份和月份,按雇员受雇日所在月排序,将最早年份的项目排在最前面
selectename,to_char(hiredate,'yyyy'),to_char(hiredate,'mm')fromemporderbyhiredateasc
10、显示姓名字段的任何位置,包含"A"的所有雇员的姓名
selectenamefromempwhereenamelike'%A%';
selectenamefromempwhereinstr(ename,’A’,1)>0;
创建一个函数sum_odd(),用于计算1~n之间的所有奇数之和(用WHILE循环实现),并在PL/SQL程序中调用该函数,计算1~100之间的所有奇数之和,要求在SQL*PLUS中输出结果。
创建一个函数sum_even(),用于计算1~n之间的所有偶数之和(用FOR循环实现),并在PL/SQL程序中调用该函数,计算1~100之间的所有偶数之和,要求在SQL*PLUS中输出结果。
在某教学管理数据库(jxsj)中有一张教师表(js),其结构如下所示。
请写出创建教师表(js)表结构的SQL命令。
现要在教师表中增加一个字段“gzrq”,用于表示参加工作的时间(默认值为系统当前日期),请写出相应的SQL命令。
请写出为工号字段设置主键约束的命令。
请写出为工号字段设置唯一约束的命令。
现有一条记录需加入该表,内容如下所示,请写出相应的SQL命令。
写出删除工号为7124的教师信息的SQL命令。
现要将所有教师的基本工资加上200,请写出相应的SQL命令。
基于教师表创建触发器js_oper,将用户对教师表的具体操作(插入、更新、删除)保存到日志信息表(js_log)中。
日志信息表的结构如下所示。
创建过程insert_js,用于接收一系列参数,并将它们插入教师表。
创建过程search_js,根据用户提供的教师工号,检索教师的姓名和性别。