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