Oracle数据库管理习题及答案_第1页
Oracle数据库管理习题及答案_第2页
Oracle数据库管理习题及答案_第3页
Oracle数据库管理习题及答案_第4页
Oracle数据库管理习题及答案_第5页
已阅读5页,还剩33页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.6习题

一.填空题

1、关系模型供应了3类完整性规则,分别是、、。

参考答案:实体完整性规则、参照完整性规则、用户定义的完整性规则

2、RDBMS由两部分组成,即、两部分。

答案:数据库系统内核、数据字典

3、关系数据库模型支持三种类型的表关联关系:、、o

答案:一对一、一对多以及多对多

4、数据模型的种类有许多,例如、、和等。目前理论

最成熟、运用最普及的是。

答案:层次模型、网状模型、关系数据模型、面对对象模型。关系数据模型

二、选择题

1、Oracle11g版本号中字母“g”的含义是()

A.产品类型的“代”(generation)B.网格(gridding)

C.集成(integration)D.无含义

答案:A

2、设计性能较优的关系模式称为规范化,规范化主要的理论依据是()

A.关系规范化理论B.关系运算理论

C.关系代数理论D.数理逻辑

答案:A

3、消退了部分函数依靠的1NF的关系模式必定是()

A.INFB.2NFC.3NFD.4NF

答案:B

4、当B属于函数依靠于A属性时,属性B及A的联系是()

A.1对多B.多对1C.多对多D.以上都不是

答案:B

5、依据关系数据库规范化理论,关系数据库中的关系要满足第一范式。下面“部门”

关系中,因哪个属性而使它不满足第一范式?

部门(部门号,部门名,部门成员,部门总经理)

A.部门总经理B.部门成员

C.部门名D.部门号

答案:B

6、下列不属于Oracle数据库数据类型的是()

A.NUMBERB.FLOATC.CLOBD.BOOLEAN

答案:D

三、简答题

1、简述数据库及数据库管理系统的区分。

参考答案:数据库是用来存储信息或数据的机制,是依据数据结构来组织、存储和管理

数据的仓库。可以被定义为是在计算机存储设备上合理存放的,相互关联的数据集合。

数据库管理系统,它是基于某种结构数据模型、以统一的方式管理和维护数据库,并供

应访问数据库接口的通用软件。

2、简述数据库规范化的概念及其作用。

参考答案:数据库规范化,又称数据库或资料库正规化、标准化,是数据库设计中的一

系列原理和技术,以削减数据库中数据冗余,增进数据的一样性。

四、应用题

1、设有一教学管理数据库,其属性为:学号(S#),课程号(C#),成果(G),任课老

师(TN),老师所在的系(D)。这些数据有下列语义:

-学号和课程号分别及其代表的学生和课程一一对应。

-一个学生所修的每门课程都有一个成果。

-每门课程只有一位任课老师,但每位老师可以有多门课程。

-老师中没有重名,每个老师只属于一个系。

(1)试依据上述语义确定函数依靠集。

(2)假如用上面全部属性组成一个关系模式,那么该关系模式为何模式?并举例说明

在进行增、删操作时的异样现象。

(3)分解为具有依靠保持和无损连接的3NF。

参考答案:

(I)F={(S#,C#)fG,C#TN,TN-D)

(2)关系模式为INF,因为该关系模式的候选码为(S#,C#),则非主属性有G,

TN和D。

又YF中有C#—TN,...存在非主属性TN对候选码(S#,C#)的部分依靠,即:

若新增设一门课程而短暂还没有学生选修时,则因缺少码S#值而不能进行插入操

作。若某个老师调离学校要删除有关信息时,会将不该删除的课程(C#)信息删除。

(3)VFm={(S#,C#)-G,C#-TN,TN^D)

P={R1,R2,R3}

其中:

-Rl=(S#,C#,G)

-R2=(C#,TN)

-R3=(TN,D)

2.7习题

一、填空题

1、常用的Oracle服务主要有如下四种,分别是、、、。

参考答案:OracleDBConsoleorclsOracleJobScheduler<SID>>OracleService<SID>>

Oracle<ORACLE_HOME_NAME>TNSListener

2、Oracle数据库启动的三个阶段是:、、。

参考答案:启动实例、打开限制文件、打开数据库

3、Oracle数据库关闭的四个选项是:、、、。

参考答案:normal,immediate,transaction>abort

二、选择题

1、系统标识符(SID)是指唯一在网络域中区分于其他数据库的数据库实例名,下面

合法的SID是()

A.my2orclB.myoracletestC.my_orclD.my@orcl

参考答案:A

2、安装OracleDatabase11g可以选择安装类型,下列不属于OracleDatabase11g的安

装类型是()

A.企业版B.个人版C.定制D.免费版

参考答案:D

三、简答题

1、简述OracleDatabase11g在Windows系统下的安装步骤。

参考答案:选择安装方法、选择安装类型、指定主书目详细信息、产品特定的先决条件

检查、选择配置选项、安装、安装结束。

2、简述Oracle中用户和模式的关系。

参考答案:用户是用连接数据库和访问数据库对象的。模式是数据库对象的集合。模式

对象是数据库数据的逻辑结构。通俗地说,模式是用来创建oracle中各种对象,而用户用来

连接数据库并访问模式中对象,在oracle中模式及用户是一一对应关系。

四、上机练习

1、依据书中步骤,正确安装OracleDatabase11g,创建数据库,并且创建用户。

2、从操作系统提示符界面,接受上题创建的用户登录数据库,并仓建EMPLOYEES表

进行测试。(表结构如下图)

CMPlOVlfS

twnovu_iDNLHKP<4)

FWST.NAHt

IAST.RAMIWOW425)

[WML

VAAOWU(20>

KIRt.OATIDATt(7)

&JOB.IOVARO#ft2(10)

3、客户端连接Oracle数据库时,默认端口为1521。创建一个新的监听程序,其端口为

1522o然后将ORCL注册于该监听程序。

3.5习题

一、填空题

1.查看表结构时,所运用的叮嘱是,该叮嘱可以简写为o

参考答案:DESCRIBE、DESC

2.运用SQL*Plus语句快速编辑SQL语句时,可以运用的叮嘱有APPEND(可以简写

为A)叮嘱、(可以简写为C)叮嘱、(可以简写为1)、

(可简写为L)叮嘱,以及RUN(可以简写为R)叮嘱。

参考答案:CHANGE、INPUT,LIST

3.在SQL*Plus工具中,可以运用SAVE叮嘱将缓冲区内容保存到文件;可以运用

叮嘱读取并运行文件内容;可以运用叮嘱编辑缓冲区内容或文件内

容;还可以运用SPOOL叮嘱复制输出结果到文件。

参考答案:START>EDIT

4.在SQL语句中,假如在某个变量前面运用了&符号,那么就表示该变量是一个临时

变量。定义变量,可以运用或ACCEPT叮嘱;删除变量,可以运用UNDEFINE

叮嘱。

参考答案:DEFINE

5.在SQL*Plus中格式化查询结果时,COLUMN叮嘱可以对列格式化显示效果,

PAGESIZE叮嘱可以,LINESIZE叮嘱可以。

参考答案:设置页的大小、设置行宽度

6.创建简洁报表时,运用叮嘱和叮嘱,分别为报表设置页眉

和页脚信息。

参考答案:Ttitle、Btitle

二、选择题

1.在SQL*Plus中连接数据库时,可以运用CONNECT叮嘱。下面的4个选项中,哪

个叮嘱是正确的?其中,用户名为scott,密码为tiger,数据库名为orcl。()

A.CONNECTscott/tiger;

B.CONNECTtiger/scott;

C.CONNscott/tigerassysdba;

D.CONNscott/tiger@orclassysdba;

参考答案:D

2.执行语句SAVEscott_emp_query.sqlAPPEND,执行结果表示()。

A.假如scottemp_query.sql文件不存在,则出现错误

B.假如scottemp_query.sql文件已经存在,则出现错误

C.将缓冲区中的内容追加到scott_emp_query.sql文件中。假如该文件不存在,会

创建该文件

D.将缓冲区中的内容替换掉scott_emp_query.sql文件的内容。假如该文件不存在,

会创建该文件

参考答案:C

3.运用SQL*Plus中的,可以将文件中的内容检索到缓冲区,并且不执行。

()

A.SAVE叮嘱

B.GET叮嘱

C.START叮嘱

D.SPOOL叮嘱

参考答案:B

4.下面是有关变量的描述,请问哪些描述是正确的?()

A.临时变量是指仅在某个SQL语句中有效的变量

B.临时变量是在某个会话期间有效的变量

C.已定义变量是指明确定义,其生命期至显式地删除、重新定义或退出SQL*Plus

为止

D.己定义的变量是不能被删除的

参考答案:B、C

5.假如希望限制列的显式格式,那么可以运用下面的叮嘱()

A.SHOW

B.DEFINE

C.SPOOL

D.COLUMN

参考答案:D

三、简答题

1.运用DESCRIBE叮嘱,查看scott用户的dept表的结构信息。

参考答案:descscott.dept

2.运用SAVE叮嘱将缓冲区内容写入到e:\test.sql文件中;然后运用START叮嘱将文

件中的内容读入到缓冲区,并且进行执行。

参考答案:savee:\test.sql

Starte:\test.sql

3.执行下列语句,视察输出结果:

DEFINEtemp=5000

SELECTempno,ename,mgr

FROMscott.emp

WHEREsal>=&temp;

参考答案:略

4.对scott用户的emp表的输出信息进行格式设置。其中,empn。列设置标题为“员

工编号",NUMBER格式为9999;ename列设置标题为“员工名称”,格式设置为25个字

符;hiredate列设置标题为“受雇日期”,并且标题居中显示。

参考答案:colempnoheading,员工编号,format9999;

colenameheading,员工名称,forA25;

colhiredateheading'受雇日期,justifycenter;

5.设置一页显示30行数据,并且设置一行显示130个字符,然后输出scott用户的emp

表的全部信息。

参考答案:SETPAGESIZE30

SETLINESIZE130

SELECT*FROMSCOTT.EMP

四、操作练习

下载SQLDeveloper,建立Oracle数据库的连接,依据书中所述步骤,操作熟悉SQL

Developer的运用。

4.5习题

一、填空题

1.假如须要在SELECT子句中包括一个表的全部列,可以运用符号。

参考答案:*

2.WHERE子句可以接收FROM子句输出的数据;而HAVING子句可以接收来自

FROM、或子句的输出的数据。

参考答案:WHEREsGROUP

3.在SELECT语句中,分组条件的子句是,对显示的数据进行排序的子

句是O

参考答案:GROUPBY,ORDERBY

4.在DML语句中,INSERT语句可以实现插入记录,语句可以实现更新

记录,语句和语句可以实现删除记录。

参考答案:UPDATE.DELETE>TURNCATE

5.函数可以返回某个数值的ASCH值,函数可以返回某个

ASCII值对应的十进制数。

参考答案:ASCII,CHR

6.运用_______函数,可以把数字或日期类型的数据转换成字符串;运用TCLDATE

函数,可以把转换成,默认的日期格式为。

参考答案:TO_CHAR、字符串、II期型、yyyy-MM-ddHH:mm:ss

二、选择题

1.查询scott用户的emp表中的总记录数,可以运用下列哪个语句?()

A.SELECTMAX(empno)FROMscott.emp;

B.SELECTCOUNT(empno)FROMscott.emp;

C.SELECTCOUNT(comm)FROMscott.emp;

D.SELECTCOUNT—)FROMscott.emp;

参考答案:D

2.为了去除结果集中的重复行,可以在SELECT中运用下列哪个关键字?()

A.ALLB.DISTINCTC.UPDATAD.MERGE

参考答案:B

3.在SELECT语句中,HAVING子句的作用是()

A.查询结果的分组条件B.组的筛选条件

C.限定返回的行的推断条件D.对结果集进行排序

参考答案:B

4.下列哪个聚合函数可以把一个列中的全部值相加求和?()

A.MAX函数B.MIN函数C.COUNT函数D.SUM函数

参考答案:A

5.假如要统计表中有多少行记录,应当运用下列哪个聚合函数?()

A.SUM函数B.AVG函数C.COUNT函数D.MAX函数

参考答案:C

三、简答题

1.标准SQL语言的语句类型可以分为哪三大类,每种语句类型分别用来操纵哪些语

句?

参考答案:数据操纵语言(DML):用来操纵数据库中数据的叮嘱。包括:select,insert,

update>deleteo

数据定义语言(DDL):用来建立数据库、数据库对象和定义列的叮嘱。包括:create,

altersdrop。

数据限制语言(DCL):用来限制数据库组件的存取许可、权限等的叮嘱。包括:grant、

deny>revoke<>

2.列举几个在WHERE条件中可以运用的操作符。

参考答案:运用=、>、>=、<、<=、o符号和BETWEEN。。。AND。°。、

IN(set).LIKE、ISNULL。

3.假如要依据降序对数据进行排序,应当在ORDERBY子句中运用哪个关键字?

参考答案:DESC

4.下面这个SELECT语句能否输出查询结果?假如不能,该如何修改?

SELECTempno,ename,deptno,COUNT(*)

FROMscott.emp

GROUPBYdeptno

参考答案:不能。

SELECTd印tno,COUNT(*)

FROMscott.emp

GROUPBYdeptno

5.指定一个日期值,例如08-8月-2023,获得这个日期及系统当前日期之间相隔的月

份数和天数。

参考答案:selectmonths_between('08-8月-2023',sysdate)mon_betwfromdual;

5.8习题

一、填空题

1.依据约束的用途,主要可以将表的完整性约束分为NOTNULL约束、、

、和。

参考答案:ChecksUniqueIndex、Primarykey、Foreignkey

2.运用关键字,可以快速删除表中的全部记录,并且不在撤消表空间中记

录撤消数据。

参考答案:TRUNCATE

3.约束用于定义列中不能出现NULL值,约束用于定义列中

不能出现重复值,而PRIMARYKEY约束则可以定义列中既不允许出现NULL值,也不允

许出现重复值。

参考答案:NOTNULL、UNIQUE

二、选择题

1.存储数据123.45,可以运用下面哪种数据类型?()

A.NUMBERB.NUMBER(5)C.NUMBER(5,3)D.NUMBER(5,2)

参考答案:D

2.假如某列定义了UNIQUE约束,则()

A.该列不允许出现重复值。B.该列不允许出现NULL值。

C.该列内允许出现一个NULL值。D.该列允许出现多个NULL值。

参考答案:A

3.为列定义一个CHECK约束,希望该约束能对表中已存储的数据,以及以后向表中

添加或修改的数据都进行检查,则应当将该约束设置为如下哪种状态?()

A.ENABLEVALIDATEB.ENABLENOVALIDATE

C.DISABLEVALIDATED.DISABLENOVALIDATE

参考答案:A

4.运用如下语句创建一个临时表空间temp:

CREATTABLESPACEtemp

'F:\oraclefole\temp.dbf,

SIZE10M

AUTOEXTENTON

NEXT2M

MAXSIZE20M;

请从下列选项中选择正确的关键字补充上面的语句。()

A.(不填)、DATAFILEB.TEMP、TEMPFILE

C.TEMPORARYsTEMPFILED.TEMP、DATAFILE

参考答案:C

5.下列关于约束及索引的说法中哪一项是不正确的?()

A.在字段上定义PRIMARYKEY约束时会自动创建B树惟一索引

B.在字段上定义UNIQUE约束时会自动创建B树惟一索引

C.在默认的状况下,禁用约束会删除对应的索引,而激活约束会自动重建相应的

索引

D.在定义FOREIGNKEY约束时会创建B树唯一索引

参考答案:D

三、简答题

1.比较VARCHAR2及CHAR两种数据类型的区分,并举例说明分别在什么状况下运

用这两种数据类型。

参考答案:CHAR的长度是固定的,VARCHAR2的长度是可以变更的,存储字符串

“ABC",对于CHAR(IO),表示存储的字符将占10个字节(包括7个空字符),而同样的

VARCHAR2(10)则只占用3个字节的长度,10只是最大值,当你存储的字符小于10

时,按实际长度存储。VARCHAR2比CHAR节.约空间,在效率上比CHAR会略微差

一此,—O

2.创建一个表后,为表中的某列添加CHECK约束,并分别设置该约束的状态为4种

不同的状态,比较这4种状态下的约束检查效果。

参考答案:略

3.建立一个学生表,表结构如下slu_info(stuidnumber,namevarchar(20),age

number(2),sexchar(2),birthdaydate)

(1)在数据库中建立stu_info表。

(2)添加主键约束(stuid)

(3)添加check约束(插入的年龄必需大于19岁)

(4)添加非空约束(要求姓名不能为空值)

(5)给上面的表添加唯一约束(要求姓名不行重复)

参考答案:

(1)createtablestu_info(

stuidnumber,

namevarchar(20),

agenumber(2),

sexchar(2),

birthdaydate);

(2)ALTERTABLEstu_infb

ADDCONSTRAINTstu_info_pkPRIMARYKEY(stuid);

(3)ALTERTABLEstujnfo

ADDCONSTRAINTage_checkcheck(age>19);

(4)altertablestu_infomodifynamenotnull;

(5)ALTERTABLEstuJnfo

ADDCONSTRAINTname_uniunique(name);

6.8习题

一、填空题

1.为了保证在SQL>方式下进行INSERT、DELETE和UPDATE操作达到平安的目的,

一般在SQL>下进行操作前,建议将环境设置成为非自动提交的方式,接受的叮嘱是

,若想取消操作,实行的叮嘱是。

参考答案:setautocommitoff、rollback

2.对某步操作设置相应保存点的叮嘱是,当依据须要用叮嘱来实现撤

消到这一步。

参考答案:SAVEPOINT、ROLLBACKTO

3.关系数据库中比较常用的SQL中,接受叮嘱进行插入,接受来进行

数据更新,而同时具有更新和插入功能的叮嘱式

参考答案:INSERT,UPDATA、MERGE

二、选择题

1.PL/SQL块中不能干脆运用的SQL叮嘱是()。

A.SELECTB.INSERTC.UPDATED.DROP

参考答案:D

2.以零作除数时会引发()异样。

A.VALUE_ERRORB.ZERO_DIVIDE

C.STORAGE_ERRORD.SELF_IS_NULL

参考答案:B

3.要更新游标结果集中的当前行,应运用()子句。

A.WHERECURRENTOFB.FORUPDATE

C.FORDELETED.FORMODIFY

参考答案:A

4.下面不是常用的数据对象权限的是()

A.DELETEB.REVOKEC.INSERTD.UPDATE

参考答案:B

5.用于修改表中数据的语句是()

A.EDITB.MODIFYC.UPDATED.ALTER

参考答案:D

6.在只读表空间上可以执行以下哪些操作?()

A.CREATETABLEB.ALTERTABLE

C.DROPTABLED.INSERT

参考答案:C

三、简答题

1.简述DETELE操作及TRUNCATE操作的异同。

参考答案:truncate,可以删除表中的全部记录,释放表空间,只保留表结构。

delete,假如没有where条件,也是删除表中的全部记录,但是它不释放空间。

TRUNCATE在各种表上无论是大的还是小的都特殊快。假如有ROLLBACK叮嘱

DELETE将被撤销,而TRUNCATE则不会被撤销。RUNCATE将重新设置高水平线和

全部的索引。在对整个表和索引进行完全阅读时,经过TRUNCATE操作后的表比

DELETE操作后的表要快得多。

2.已有表文件teacher(老师代码(C),姓名(C),学院(C),职称(C),年龄(N)),

依据要求写出SQL语句。

1.查询职称为“副教授”的老师代码,姓名,学院,职称信息;

2.查询学院为“电信学院”并且职称为“讲师”的全部老师的信息,并将查询结果按年

龄字段的降序排序。

3.将全部老师的年龄加1;

4.将表中年龄小于15岁的老师记录加上删除标记;

参考答案:(1)select老师代码,姓名,学院。职称fromteacherwhere职称='副教授

(2)select*fromteacherwhere学院=,电信学院,and职称=,讲师Jorderby年龄desc;

(3)updateteacherset年龄=年龄+1;

(4)deletefromteacherwhere年龄<15

3.有一个表T,有两个字段a,b,我们想在表T中做Insert/Update,假如存在,则更新T

中b的值,假如不存在,则插入一条记录。假设待InseWUpdate的记录为(aTOOllbnlOO)。

请运用MERGE叮嘱完成。

参考答案:

MERGEINTOTT1

USING(SELECT'1001'ASa,2ASbFROMdual)T2

ON(Tl.a=T2.a)

WHENMATCHEDTHEN

UPDATESETTl.b=T2.b

WHENNOTMATCHEDTHEN

INSERT(a,b)VALUES(T2.a,T2.b);

7.5习题

一.填空题

1.创建视图的叮嘱是。若要保证插入或修改的数据行必需满足视图定义的约束,

创建时附带的参数是;若要保证视图上不能进行任何DML操作,创建时附带的参

数是o

参考答案:CREATEVIEW,WITHCHECKOPTION.WITHREADONLY

2.创建序列的叮嘱是。若要使序列的增量为5,创建时附带的参数是;

若要使序列起先值为10,创建时附带的参数是。

参考答案:CREATESEQUENCE.INCREMENTBY5,STARTWITH10

3.视图中的列并不都支持DML操作,通过数据字典可以了解视图中哪些

列是可更新的。

参考答案:user_updatable_columns

4.运用可以获得序列的当前值,运用可以获得下一个值。

参考答案:currvaknextval

5.假如要清除索引中的存储碎片,可以对索引进行合并或

参考答案:重建

选择题

1.以下哪个视图可以查到用户具有运用权限的表的信息()

A.USER_VIEWSB.USER_TABLES

C.ALL_OBJECTSD.USER_OBJECTS

参考答案:C

2.要查看当前用户下有哪些数据表格,适用下列哪个视图()

A.USER_TABLEB.TAB

C.USER_ALL_TABLESD.TABLES_USER

参考答案:C

3.可以运用()伪列来访问序列。

A.CURRVAL和NEXTVALB.NEXTVAL和PREVAL

C.CACHE和NOCACHED.MAXVALUEMINVALUE

参考答案:A

4.带有错误的视图可运用()选项来创建。

A.FORCEB.WITHCHECKOPTION

C.CREATEVIEWWITHERRORD.CREATEERRORVIEW

参考答案:A

5.在联接视图中,当()时,该基表被称为键保留表。

A.基表的主键不是结果集的主键

B.基表的主键是结果集的主键

C.基表的主键是结果集的外键

D.基表的主键不是结果集的外键

参考答案:B

6.运用如下语句创建一个视图:

CREATEVIEWtestviewAS

SELECTstu.stuname,stu.stuage+1newage,cla.claname

FROMstudentstuLEFTJOINclassclaONstu.claid=cla.claid;

请问testview视图中哪些列是可更新的?()

A.stunameB.stuname,newage

C.stuname,clanameD.stuname,newage,claname

参考答案:A

7.假如创建一个序列,用于为表的主键列生成主键值,则创建该序列时不应当指定以

下哪种参数?()

A.MAXVALUE1000B.MINVALUE10

C.CACHE10D.CYCLE

参考答案:D

8.假如在创建序列时指定其CACHE参数值为10,当序列的当前值为5时,数据库突

然关闭,再次运行数据库后,序列将从以下哪个值起先?()

A.5B.6C.11D.16

参考答案:C

9.下列关于索引的描述哪一项是不正确的?()

A.表是否具有索引不会影响到所运用的sql的编写形式

B.为表创建索引后,全部的查询操作都会运用索引

C.为表创建索引后,可以提高查询的执行速度

D.为表创建索引后,Oracle优化器将依据详细状况确定是否接受索引

参考答案:B

三、简答题

1.简述表及视图的关系。

参考答案:联系:视图(view)是在基本表之上建立的表,它的结构(即所定义的列)

和内容(即全部数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应

一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关

系。

2.表结构说明:createtableemployee(idnumber(lO)notnull,—员工工号

salarynumber(10,2)default0nolnull,—薪水

namevarchar2(24)notnull—姓名

);

(1).创建序列seq_employee,该序列每次取的时候它会自动增加,从1起先计数,不

设最大值,并且始终累加,不循环。

参考答案:createsequenceseq_employee

2incrementby1

3startwith1

4nomaxvalue

5nocycle

6/

(2).写一个PL/SQL块,插入表user.employee中100条数据。插入该表中字段id用

序列seq_empk>yee实现,薪水和姓名字段可以随意填写。

参考答案:略

3.假如对视图的基表进行结构上的改动,将会影响视图的可用性。请基于一个表创建

一个视图,在视图的子查询语句中运用*查询基表中的全部列,然后对该表进行结构修改,

例如增加列、删除列,修改列名等,测试不同状况下视图的可用性,并思索其中的缘由。

参考答案:视图依靠于基础表的存在而存在,当基础表进行了结构上的修改后,有可能

会对视图产生印象,假如要再次运用此试图,须要进行编译。

4.假如经常须要运用如下语句查询employee表中的员工信息:

SELECT*FROMemployeeWHERESUBSTRB(ename,0,2)=幸;

那么应当为ename创建什么索引,如何创建?

参考答案:创建基于函数的索引

CREATEINDEXEANMEJNDEX

ONemployee(SUBSTRB(ename,0,2))

TABLESPACEmyspace

8.6习题

一.填空题

1.PL/SQL程序由三个块组成,即、

参考答案:声明部分、执行部分、异样处理部分

2.Oracle块依据应用模块功能,可以分为四种类型,分别是:

参考答案:匿名块、命名块、子程序、触发器

3.Oracle的游标分为、。

参考答案:显示游标、隐式游标

4.Oracle游标有4个属性,推断游标是否被打开,假如打开等于true,否则等

于false;推断游标所在的行是否有效,假如有效,则等于true,否则等于false,

属性及之相反;返回当前位置为止游标读取的记录行数。

参考答案:%ISOPEN、%FOUND、%NOTFOUND、%ROWCOUNT

二、选择题

1.关于存储过程参数,正确的说法是()

A.存储过程的输出参数可以是标量类型,也可以是表类型

B.存储过程输入参数可以不输入信息而调用过程

C.可以指定字符参数的字符长度(函数的()或者过程的(number/varchar2))

D.以上说法都不对

参考答案:B

2.下列说法,正确的说法是()

A.只要在存储过程中有增删改语句,确定加自治事务

B.在函数内可以修改表数据

C.函数不能递归调用

D.以上说法都不对

参考答案:B

3.利用游标来修改数据时,FORUPDATE充分利用了事务的哪个特性?()

A.原子性B.一样性C.永久性D.隔离性

参考答案:D

4.下列哪个语句无需COMMIT而自动提交()

A.CREATETABLEt(tlNUMBER,t2NUMBER)

B.UPDATEtSET11=123

C.DELETEFROMt

D.INSERTINTOtVALUES(1,3)

参考答案:A

5.下列说法不正确的是()

A.在PLSQL自定义函数中假如包含UPDATE、DELETE、INSERT语句,不必在函数

体内给出COMMIT;

B.自定义函数可以在SQL语句中调用、也可以在PLSQL块中调用

C.自定义函数可以返回表类型

D.自定义函数中的参数可以是OUT类型

参考答案:D

6.下面定义PL/SQL记录的语法正确的是()

A.TYPE<记录类型名>ISRECORDB.TYPE<记录类型名>RECORD

C.RECORD<记录类型名〉D.TYPERECORDc记录类型名〉

参考答案:A

7.在SQL*PLUS环境中可以利用DBMSJDUTPUT包中的PUT_LINE方法来回显服务

器端变量的值,但在此之前要利用一个叮嘱打开服务器的回显功能,这一叮嘱是(

)

A.setserveronB.setserverechoon

C.setservershowonD.setserveroutputon

参考答案:D

三、简答题

1.简述NO_DATA_FOUND和%NOTFOUND两个保留字的用法。

参考答案:SELECT...INTO语句触发NO_DATA_FOUND;

当一个显示光标的where子句未找到时触发%NOTFOUND;

当UPDATE或DELETE语句的where子句未找到时触发SQL%NOTFOUND;

在光标的提取(Fetch)循环中要用%NOTFOUND或%FOUND来确定循环的退出条件,不

要用NO_DATA_FOUNDo

2.简述PL/SQL的异样处理机制。

参考答案:当发生错误时,程序无条件转到异样处理部分,这就要求代码要特殊干净并

把错误处理部分和程序的其它部分分开。oracle允许声明其他异样条件类型以扩展错误/异样

处理。这种扩展使PL/SQL的异样处理特殊灵敏。

当一个运行时错误发生时,称为一个异样被抛出。PL/SQL程序编译时的错误不是能

被处理得异样,只有在运行时的异样能被处理。在PL/SQL程序设计中异样的抛出和处理是

特殊重要的内容。

3.查找出当前用户模式下,每张表的记录数,以scott用户为例,结果应如下:

DEPT4

EMP14

BONUS0

SALGRADE5

请编写PL/SQL程序块实现。

参考答案:

DECLARE

typetab_namesistableofvarchar2(20)indexbybinary_integer;

tab_nametab_names;

counnumber;

strvarchar2(100);

BEGIN

selecttable_namebulkcollectintotab_namefromuser_tables;

foriintab_name.first..tab_name.lastLOOP

str:-selectcount(*)froml|tab_name(i);

executeimmediatestrintocoun;

dbms_output.put_line(tab_name(i)||''||coun);

ENDLOOP;

END;

9.6习题

一、填空题

1.关键字标记着PL/SQL程序中声明段的起先。

参考答案:DECLARE

2.PL/SQL的异样处理代码在块中实现。

参考答案:EXCEPTION

3.触发器可以分为三类,分别是:、、.

参考答案:DML触发器、替代触发器、系统及触发器

4.包中包含和,它们共享公共的变量,公共的局部函数和过程。

参考答案:过程、函数

5.一个包由两个分开的部分组成和。

参考答案:包说明(packagesoecification)、包主体(packagebody)

二、选择题

1.关于触发器,下列说法正确的是()

A.可以在表上创建INSTEADOF触发器

B.语句级触发器不能运用“:old”和“:new”

C.行级触发器不能用于审计功能

D.触发器可以显式调用

参考答案:B

2.分析下面的PL/SQL代码块:

BEGIN

FORIIN1..5LOOP

IF1=1THENNULL;

ELSEIF1=3THENCOMMIT;

ELSEIF1=5THENROLLBACK;

ELSEINSERTINTOtest(results)values(i);

ENDIF;

ENDLOOP;

COMMIT;

END;

有多少个值,被永久地插入到TEST表中?()

A.0B.1C.2D.3

参考答案是:B

3.在PL/SQL循环中,须要测试当前的FETCH是否成功,可以完成这个要求的游标

属性是下列哪个()。

A.SQL%ISOPENB.SQL%ROWCOUNT

C.SQL%FOUNDD.这一要求无法运用SQL游标属性完成。

参考答案是:D

4.检查下面的PL/SQL块:

DECLARE

TYPEEmpList

ISVARRAY(2)OFemployees.employee_id%TYPENOTNULL;

v_employeesEmpList:=EmpList();

BEGIN

DBMS_OUTPUT.PUT_LINE(v_employees.COUNT);

v_employees.EXTEND;

v_employees(l):=30;

END;

下列关于上述PL/SQL块的结果的说法,正确的一项是:()。

A.它执行成功,并显示值为2

B.它执行成功,并显示值为0

C.它生成一个错误,因为数组不能扩展

D.它生成一个错误,因为该变长数组的声明是无效的。

参考答案是:B

三、简答题

1.简述PL/SQL程序包的作用。

参考答案:把相关的过程和函数归类,依据功能的相关性存放在一起,并赐予确定的管

理功能和运用的一组对象就叫做包。Oracle系统把相关的模块归类成为包,可使开发人员利

用面对对象的方法进行内嵌过程的开发,从而提高系统性能。

2.简述存储过程和函数的区分。

参考答案:本质上没区分。只是函数有如:只能返回一个变量的限制。而存储过程可以

返回多个。而函数是可以嵌入在sql中运用的,可以在select中调用,而存储过程不行。执行

的本质都一样。

函数限制比较多,比如不能用临时表,只能用表变量.还有一些函数都不行用等等.而

存储过程的限制相对就比较少。

3.思索如何在PL/SQL里避开重复编码的问题,请举例说明。

参考答案:运用存储过程或函数,举例略。

4.在PL/SQL里如何运用绑定变量,为何运用绑定变量,请举例说明。

参考答案:这是解决Oracle应用程序可伸缩性的一个关键环节;而Oracle的共享池就确

定了开发人员必需运用绑定变量;假如想要Oracle运行减慢,甚至完全终止,那就可以不用绑

定变量;

这里举例说明上述问题;

为了查询一个员工代号是123,你可以这样查询:

select*fromempwhereempno='123';

你也可以这样查询:

select*fromempwhereempno=:empno;

第一个查询运用的频率越高,所消耗的系统硬件资源越大,从而降低了用户的运用数量;

它也会把优化好的其它查询语句从共享池中踢出,系统的整体性能降低;而执行绑定变量,

提交相同对象的完全相同的查询的用户,,一次性运用就可重复运用,提高效率。

四、应用题

1.用PL/SQL编写函数计算一个给定的正整数的阶乘,并编写调用程序对该函数进行

调用。

参考答案:FUNCTIONfac(nPOSITIVE)

RETURNINTEGERIS

BEGIN

IFn=1THEN

RETURN1;

ELSE

RETURNn*fac(n-1);

ENDIF;

ENDfac;

BEGIN

dbms_output.put_line(fac(5));

END;

2.给teacher_info表编写一个(before-delete)触发器,当要在teacher_info表中删除一

个记录,将触发该触发器。在触发器中将推断老师是否已经授课?假如已经支配某位老师授

课,它将激发一个例外,把无法删除的信息返回用户。

参考答案:createtriggerteacher_cancel

onleacher_info

insteadofdelete

as

declare@skint,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论