Oracle数据库管理习题和答案_第1页
Oracle数据库管理习题和答案_第2页
Oracle数据库管理习题和答案_第3页
Oracle数据库管理习题和答案_第4页
Oracle数据库管理习题和答案_第5页
免费预览已结束,剩余34页可下载查看

下载本文档

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

文档简介

1、Word格式1.6习题一.填空题1、关系模型提供了 3类完整性规那么,分别是 、.参考答案:实体完整性规那么、参照完整性规那么、用户定义的完整性规那么2、RDBM的两局部组成,即 、两局部.答案:数据库系统内核、数据字典3、关系数据库模型支持三种类型的表关联关系: 、.答案:一对一、一对多以及多对多4、数据模型的种类有很多,例如 、和 等.目前理论最成熟、使用最普及的是 .答案:层次模型、网状模型、关系数据模型、面向对象模型.关系数据模型二、选择题1、Oracle 11g版本号中字母g的含义是A 产品类型的代generationB.网格griddingC.集成integration D.无含义

2、答案:A2、设计性能较优的关系模式称为标准化,标准化主要的理论依据是A关系标准化理论B.关系运算理论C.关系代数理论D.数理逻辑答案:A3、消除了局部函数依赖的1NF的关系模式必定是A 1NFB. 2NFC. 3NFD. 4NF答案:B4、当B属于函数依赖于 A属性时,属性 B与A的联系是A 1对多B.多对1 C .多对多 D.以上都不是答案:B5、根据关系数据库标准化理论,关系数据库中的关系要满足第一范式.下面“部门关系中,因哪个属性而使它不满足第一范式?部门部门号,部门名,部门成员,部门总经理A部门总经理B.部门成员C.部门名D.部门号答案:B6、以下不属于 Oracle数据库数据类型的是

3、A NUMBER B. FLOATC. CLOBD. BOOLEAN答案:D三、简做题1、简述数据库与数据库治理系统的区别.参考答案:数据库是用来存储信息或数据的机制,是根据数据结构来组织、存储和治理数据的仓库.可以被定义为是在计算机存储设备上合理存放的,互相关联的数据集合.完美整理Word格式数据库治理系统,它是基于某种结构数据模型、 以统一的方式治理和维护数据库,并提供访问数据库接口的通用软件.2、简述数据库标准化的概念及其作用.参考答案:数据库标准化,又称数据库或资料库正规化、标准化,是数据库设计中的一 系列原理和技术,以减少数据库中数据冗余,增进数据的一致性.四、应用题1、设有一教学治

4、理数据库,其属性为:学号(S#),课程号(C#),成绩(G,任课教师(TN),教师所在的系(D).这些数据有以下语义:- 学号和课程号分别与其代表的学生和课程一一对应.- 一个学生所修的每门课程都有一个成绩.- 每门课程只有一位任课教师,但每位教师可以有多门课程.- 教师中没有重名,每个教师只属于一个系.(1)试根据上述语义确定函数依赖集.(2)如果用上面所有属性组成一个关系模式,那么该关系模式为何模式?并举例说明在进行增、删操作时的异常现象.(3)分解为具有依赖保持和无损连接的3NF.参考答案:(1) F= (S#, C#) 一 G C4TNI, TIND(2)关系模式为1NF,由于该关系模

5、式的候选码为(S#, C#),那么非主属性有 G, TN 和D=又F中有C4TN, 存在非主属性 TN对候选码(S#, C#)的局部依赖,即:假设新增设一门课程而暂时还没有学生选修时,那么因缺少码S#直而不能进行插入操作.假设某个教师调离学校要删除有关信息时,会将不该删除的课程(C#)信息删除.(3) Fm= (S#, C#) 一 G, C4TNI, TNDp =R1 , R2, R3其中:- R1= (S#, C#, G)- R2= ( C#, TN)- R3= (TN, D)2.7习题一、填空题1、常用的 Oracle 效劳主要有如下四种,分别是、参考答案:OracleDBConsoleo

6、rcl 、OracleJobScheduler 、OracleService OracleTNSListener2、Oracle 数据库启动的三个阶段是: 、.参考答案:启动实例、翻开限制文件、翻开数据库3、Oracle 数据库关闭的四个选项是: 、.参考答案: normal、immediate、transaction 、abort二、选择题完美整理Word格式1、系统标识符SID是指唯一在网络域中区别于其他数据库的数据库实例名,下面合 法的SID是A. my2orclB. myoracletestC. my_orcl D. myorcl参考答案:A2、安装 Oracle Database 1

7、1g可以选择安装类型,以下不属于Oracle Database 11g的安装类型是A.企业版B.个人版C.定制D.免费版参考答案:D 三、简做题1、简述 Oracle Database 11g 在 Windows系统下的安装步骤.参考答案:选择安装方法、选择安装类型、指定主目录详细信息、产品特定的先决条件检查、选择配置选项、安装、安装结束.2、简述Oracle中用户和模式的关系.参考答案:用户是用连接数据库和访问数据库对象的.模式是数据库对象的集合.模式对象是数据库数据的逻辑结构.通俗地说,模式是用来创立 oracle中各种对象,而用户用 来连接数据库并访问模式中对象,在oracle中模式与用

8、户是一一对应关系.四、上机练习1、根据书中步骤,正确安装Oracle Database 11g ,创立数据库,并且创立用户.2、从操作系统提示符界面,采用上题创立的用户登录数据库,并创立EMPLOYEES进行测试.表结构如以下图3、客户端连接 Oracle数据库时,默认端口为1521.创立一个新的监听程序,其端口为1522.然后将ORCLL1册于该监听程序.3.5习题一、填空题1 .查看表结构时,所使用的命令是 ,该命令可以简写为 .参考答案:DESCRIBE DESC2 .使用SQL*Plus语句快速编辑 SQL语句时,可以使用的命令有 APPEND可以简写为 A 命令、 可以简写为 C命令

9、、 可以简写为 I、可简写为L命令,以及RUN可以简写为R命令.参考答案:CHANGE INPUT; LIST完美整理Word格式3 .在SQL*Plus工具中,可以使用SAVE命令将缓冲区内容保存到文件;可以使用命令读取并运行文件内容; 可以使用 命令编辑缓冲区内容或文件内 SPOO蹄令复制输出结果到文件.参考答案:START EDIT4 .在SQL语句中,如果在某个变量前面使用了&符号,那么就表示该变量是一个临时变量.定义变量,可以使用 或ACCEP命令;删除变量,可以使用 UNDEFIN却令.参考答案:DEFINE5 .在SQL*Plus中格式化查询结果时,COLUMN令可以对列格式化显

10、示效果,PAGESIZE命令可以 , LINESIZE命令可以 .参考答案:设置页的大小、设置行宽度6 .创立简单报表时,使用 命令和 命令,分别为报表设置页眉参考答案:Ttitle 、Btitle二、选择题1 .在SQL*Plus中连接数据库时,可以使用 CONNEC命令.下面的4个选项中,哪个命 令是正确的?其中,用户名为 scott ,密码为tiger ,数据库名为orcl.A CONNECT scott/tiger ;B. CONNECT tiger/scott ;C. CONN scott/tiger as sysdba ;D. CONN scott/tigerorcl as sys

11、dba ;参考答案:D2 .执行语句 SAVE scott_emp_query.sql APPEND ,执行结果表示.A 如果 scott emp_query.sql文件不存在,那么出现错误文件已经存在,那么出现错误scott_emp_query.sql 文件中.如果该文件不存在,scott_emp_query.sql 文件的内容.如果该文件不存8. 如果 scott emp_query.sqlC.将缓冲区中的内容追加到 会创立该文件D.将缓冲区中的内容替换掉 在,会创立该文件参考答案:C3 .使用SQL*Plus中的,可以将文件中的内容检索到缓冲区,并且不执行.A SAV,令B. GET命令

12、C. STAR偷令D. SPOOLS参考答案:B4.下面是有关变量的描述,请问哪些描述是正确的?A临时变量是指仅在某个 SQL语句中有效的变量B.临时变量是在某个会话期间有效的变量C.已定义变量是指明确定义,其生命期至显式地删除、重新定义或退出SQL*Plus为止D.已定义的变量是不能被删除的参考答案:B、C5.如果希望限制列的显式格式,那么可以使用下面的 命令完美整理Word格式A.SHOW B.DEFINE C. SPOOL D. COLUMN 参考答案:D 三、简做题1 .使用DESCRIB却令,查看scott用户的dept表的结构信息.参考答案:descscott. dept2 .使用

13、SAV瑜令将缓冲区内容写入到e:test.sql文件中;然后使用STAR饰令将文件中的内容读入到缓冲区,并且进行执行.参考答案:savee:test.sqlStart e:test.sql3 .执行以下语句,观察输出结果:DEFINE temp = 5000SELECT empno , ename , mgrFROM scott.empWHERE sal = &temp ;参考答案:略4 .对scott用户的emp表的输出信息进行格式设置.其中,empno列设置标题为“员工编号,NUMBE格式为9999; ename列设置标题为“员工名称,格式设置为25个字符; hiredate列设置标题为“

14、受雇日期,并且标题居中显示.参考答案:col empno heading员工编号format 9999;col ename heading员工名称for A25;col hiredate heading 受雇日期 justify center;5 .设置一页显示 30行数据,并且设置一行显示130个字符,然后输出scott用户的emp表的全部信息.参考答案:SET PAGESIZE 30SET LINESIZE 130SELECT * FROM SCOTT.EMP四、操作练习下载SQL Developer ,建立Oracle数据库的连接,根据书中所述步骤,操作熟悉SQLDeveloper 的使

15、用.4.5习题一、填空题1 .如果需要在SELEC仃句中包括一个表的所有列,可以使用符号 .参考答案:*2 . WHERE?句可以接收 FROM子句输出的数据;而 HAVING子句可以接收来自 FROIM 或 子句的输出的数据.参考答案: WHER E GROUP完美整理Word格式3 .在SELEC期句中,分组条件的子句是 ,对显示的数据进行排序的子句参考答案:GROUP BY ORDER BY4 .在DML语句中,INSERT语句可以实现插入记录, 语句可以实现更新记 录,语句和 语句可以实现删除记录.参考答案:UPDATE DELETE TURNCATE5 . 函数可以返回某个数值的AS

16、CII值,函数可以返回某个ASCII值对应的十进制数.参考答案:ASCII、CHR6 .使用 函数,可以把数字或日期类型的数据转换成字符串;使用 TO_DATE函数,可以把 转换成,默认的日期格式为 .参考答案:TO_CHAR字符串、日期型、 yyyy-MM-dd HH:mm:ss 二、选择题1 .查询scott用户的emp表中的总记录数,可以使用以下哪个语句?A SELECT MAXempno FROM scott.emp;B. SELECT COUNTempno FROM scott.emp;C. SELECT COUNTcomm FROM scott.emp;D. SELECT COUN

17、T* FROM scott.emp; 参考答案:D2 .为了去除结果集中的重复行,可以在SELEC珅使用以下哪个关键字?A ALLB. DISTINCT C. UPDATA D. MERGE参考答案:B3 .在SELECT吾句中,HAVING子句的作用是A查询结果的分组条件B.组的筛选条件C.限定返回的行的判断条件D.对结果集进行排序参考答案:B 4.以下哪个聚合函数可以把一个列中的所有值相加求和?A MAX数B. MIN 函数C. COUNT1数D. SUMS数参考答案:A5 .如果要统计表中有多少行记录,应该使用以下哪个聚合函数?A SUM数B. AVG函数C. COUNT1数D. MAX

18、S数参考答案:C 三、简做题1 .标准SQL语言的语句类型可以分为哪三大类,每种语句类型分别用来操纵哪些语句?参考答案:数据操纵语言DML :用来操纵数据库中数据的命令.包括:select、insert、update、delete .数据定义语言DDL :用来建立数据库、数据库对象和定义列的命令.包括: create、 alter、drop.数据限制语言DCD :用来限制数据库组件的存取许可、权限等的命令.包括:grant、deny、 revoke .2 .列举几个在WHER窿件中可以使用的操作符.参考答案:使用=、=、=、符号和 BETWEENo.AND. .、INset、 LIKE、IS

19、NULL .3 .如果要根据降序对数据进行排序,应该在ORDER BYF句中使用哪个关键字?完美整理Word格式参考答案:DESC4 .下面这个SELEC砒句能否输出查询结果?如果不能,该如何修改?SELECT empno , ename , deptno , COUNT (*)FROM scott .empGROUP BY deptno参考答案:不能.SELECT deptno , COUNT (*)FROM scott .empGROUP BY deptno5 .指定一个日期值,例如 08-8月-2022 ,获得这个日期与系统当前日期之间相隔的月 份数和天数.参考答案:select mon

20、ths_between(08-8 月-2022, sysdate) mon_betw from dual;5.8习题一、填空题1 .根据约束的用途,主要可以将表的完整性约束分为NOT NULL约束、-、和.参考答案: Check、Unique Index、Primary key、Foreign key2 .使用 关键字,可以快速删除表中的所有记录,并且不在撤消表空间中记录撤消数据.参考答案:truncate3 . 约束用于定义列中不能出现 NULL值,约束用于定义列中不 能出现重复值,而 PRIMARY KEY勺束那么可以定义列中既不允许出现 NULL值,也不允许出现 重复值.参考答案:NOT

21、 null unique二、选择题1 .存储数据123.45 ,可以使用下面哪种数据类型?()A. NUMBER B . NUMBER(5) C. NUMBER(5,3) D. NUMBER(5,2)参考答案:D2 .如果某列定义了 UNIQUE勺束,那么()A.该列不允许出现重复值.B.该列不允许出现 NULL值.C.该列内允许出现一个 NULL值.D.该列允许出现多个 NULL值.参考答案:A3 .为列定义一个 CHECK勺束,希望该约束能对表中已存储的数据,以及以后向表中添 加或修改的数据都进行检查,那么应该将该约束设置为如下哪种状态?()A. ENABLE VALIDATEB . EN

22、ABLE NOVALIDATEC. DISABLE VALIDATED. DISABLE NOVALIDATE参考答案:A4.使用如下语句创立一个临时表空间temp :CREAT TABLESPACE temp F: oraclefoletemp.dbf SIZE 10MAUTOEXTENT ON完美整理Word格式NEXT2MMAXSIZE 20M ;请从以下选项中选择正确的关键字补充上面的语句.()A.(不填)、DATAFILEB. TEMR TEMPFILEC. TEMPORARYTEMPFILED . TEMP DATAFILE参考答案:C5.以下关于约束与索引的说法中哪一项为哪一项不

23、正确的?()A.在字段上定义 PRIMARY KEY约束时会自动创立 B树惟一索引B.在字段上定义 UNIQUE勺束时会自动创立 B树惟一索引C.在默认的情况下,禁用约束会删除对应的索引,而激活约束会自动重建相应的 索引D.在定义FOREIGN KEY勺束时会创立 B树唯一索引参考答案:D三、简做题1 .比拟VARCHAR2T CHAFW种数据类型的区另L并举例说明分别在什么情况下使用这 两种数据类型.参考答案:CHAR勺长度是固定的,VARCHAR2长度是可以变化的,存储字符串“ ABC,对于CHAR10),表示存储的字符将占10个字节(包才7个空字符),而同样的VARCHAR2 (10)那

24、么只占用3个字节的长度,10只是最大值,当你存储的字符小于10时,按实际长度存储.VARCHAR比CHA珅省空间,在效率上比CHA也稍微差一些.2 .创立一个表后,为表中的某列添加CHECK勺束,并分别设置该约束的状态为4种不同的状态,比拟这 4种状态下的约束检查效果.参考答案:略3 .建立一个学生表,表结构如下stu_info ( stuid number , name varchar(20) ,age number (2), sex char(2) , birthday date)(1)在数据库中建立 stu_info 表.(2)添加主键约束(stuid)(3)添加 check约束(插入的

25、年龄必须大于19岁)(4)添加非空约束(要求姓名不能为空值)(5)给上面的表添加唯一约束(要求姓名不可重复)参考答案:(1) create table stu_info( stuid number, name varchar(20), age number(2), sex char(2), birthday date);(2) ALTER TABLE stu_infoADD CONSTRAINT stu_info _pk PRIMARY KEY (stuid);(3) ALTER TABLE stu_infoADD CONSTRAINT age_checkcheck(age19);(4) al

26、ter table stu_info modify name not null;(5) ALTER TABLE stu_infoADD CONSTRAINT name_uniunique(name);完美整理Word格式6.8习题一、填空题1 .为了保证在 SQL汾式下进行INSERT DELETE UPDAT噪作到达平安的目的,一般 在SQL吓进行操作前,建议将环境设置成为非自动提交的方式,采用的命令是 ,假设 想取消操作,采取的命令是 .参考答案: set autocommit off 、 rollback2 .对某步操作设置相应保存点的命令是 ,当根据需要用命令 来实现撤 消到这一步.参

27、考答案:SAVEPOINT ROLLBACK TO3 .关系数据库中比拟常用的SQL中,采用命令数据更新,而同时具有更新和插入功能的命令式参考答案:INSERT UPDATA MERGE 二、选择题1 . PL/SQL块中不能直接使用的 SQL命令是A. SELECT B . INSERT C . UPDATE D参考答案:D2 .以零作除数时会引发异常.A. VALUE_ERRORB. ZERO_DIVIDEC. STORAGE_ERRORD. SELF_IS_NULL参考答案:B3.要更新游标结果集中的当前行,应使用子句.A. WHERE CURRENT OFB. FOR UPDATEC.

28、 FOR DELETED. FOR MODIFY参考答案:A进行插入,采用 来进行DROP4 .下面不是常用的数据对象权限的是A. DELETEB. REVOKE参考答案:B5 .用于修改表中数据的语句是A. EDITB. MODIFY参考答案:D6 .在只读表空间上可以执行以下哪些操作?C. INSERTD. UPDATEC. UPDATE D. ALTER0A. CREATE TABLEB. ALTER TABLEC. DROP TABLED. INSERT参考答案:C三、简做题1 .简述 DETELEt作与TRUNCAT麋作的异同.参考答案:truncate ,可以删除表中的所有记录,释

29、放表空间,只保存表结构. delete ,如果没有 where条件,也是删除表中的所有记录,但是它不释放空间.TRUNCATEE各种表上无论是大的还是小的都非常快.如果有ROLLBACK令DELETE被撤销,而TRUNCATED不会被撤销.RUNCAT爵重新设置高水平线和所有的索引.在 对整个表和索引进行完全浏览时,经过TRUNCAT麋作后白表比DELETED作后的表要快 得多.完美整理Word格式2 .已有表文件teacher(教师代码(C),姓名(C),学院(C),职称(C),年龄(N), 根据要求写出SQL语句.1 .查询职称为“副教授的教师代码,姓名,学院,职称信息;2 .查询学院为“

30、电信学院并且职称为“讲师的所有教师的信息,并将查询结 果按年龄字段的降序排序.3 .将所有教师的年龄加1;4 .将表中年龄小于 15岁的教师记录加上删除标记;参考答案:(1) select 教师代码,姓名,学院.职称from teacher where职称=副教授;(2)select * from teacher where 学院=电信学院and 职称=讲师order by 年龄 desc;(3)update teacher set年龄=年龄 +1;(4) delete from teacher where 年龄 作,通过数据字典 可以了解视图中哪些列是可更新的.参考答案: user_upda

31、table_columns4 .使用 可以获取序列的当前值,使用 可以获取下一个值.参考答案:currval 、nextval5 .如果要去除索引中的存储碎片,可以对索引进行合并或 .参考答案:重建完美整理Word格式选择题1 .以下哪个视图可以查到用户具有使用权限的表的信息A. USER_VIEWSB. USER_TABLESC. ALL_OBJECTSD. USER_OBJECTS参考答案:C2.要查看当前用户下有哪些数据表格,适用以下哪个视图A. USER_TABLEB. TABC. USER_ALL_TABLESD. TABLES_USER参考答案:C3.可以使用伪列来访问序列.A.

32、CURRVA和 NEXTVALC. CACHED NOCACHE参考答案:A4.带有错误的视图可使用A. FORCEC. CREATE VIEW WITH ERROR 参考答案:A5.在联接视图中,当A.基表的主键不是结果集的主键B.基表的主键是结果集的主键C.基表的主键是结果集的外键D.基表的主键不是结果集的外键 参考答案:B6.使用如下语句创立一个视图:CREATE VIEW test view ASB. NEXTVA即 PREVALD. MAXVALU和 MINVALUE选项来创立.B. WITH CHECK OPTIOND. CREATE ERROR VIEW时,该基表被称为键保存表.

33、SELECT stu.stuname , stu.stuage + 1 newage , cla.clanameFROM student stu LEFT JOIN class cla ON stu.claid = cla.claid;请问test view 视图中哪些列是可更新的?A. stunameB. stuname, newageC. stuname, clanameD. stuname, newage, claname参考答案:A7.如果创立一个序列,用于为表的主键列生成主键值,那么创立该序列时不应该指定以 下哪种参数?A. MAXVALUE 1000B. MINVALUE 10C.

34、 CACHE 10D. CYCLE参考答案:D8 .如果在创立序列时指定其CACHED数彳1为10,当序列的当前值为 5时,数据库忽然关闭,再次运行数据库后,序列将从以下哪个值开始?A. 5B. 6C. 11 D. 16参考答案:C9 .以下关于索引的描述哪一项为哪一项不正确的?A.表是否具有索引不会影响到所使用的sql的编写形式10 为表创立索引后,所有的查询操作都会使用索引C.为表创立索引后,可以提升查询的执行速度完美整理Word格式D.为表创立索引后,Oracle优化器将根据具体情况决定是否采用索引参考答案:B三、简做题1 .简述表与视图的关系.参考答案:联系:视图(view)是在根本表

35、之上建立的表,它的结构(即所定义的列) 和内容(即所有数据行) 都来自根本表,它依据根本表存在而存在.一个视图可以对应 一个根本表,也可以对应多个根本表.视图是根本表的抽象和在逻辑意义上建立的新关系.2 .表结构说明: create table employee( id number(10) not null, 一员工工号 salary number(10,2) default 0 not null,一薪水name varchar2(24) not null 姓名);1 1).创立序列seq_employee ,该序列每次取的时候它会自动增加,从 1开始计数, 不设最大值,并且一直累加,不循环

36、.参考答案: create sequence seq_employee2 increment by 13 start with 14 nomaxvalue5 nocycle6 /2 2).写一个PL/SQL块,插入表 user.employee 中100条数据.插入该表中字段id用序列seq_employee实现,薪水和姓名字段可以任意填写.参考答案:略3 .如果对视图的基表进行结构上的改动,将会影响视图的可用性.请基于一个表创立 一个视图,在视图的子查询语句中使用*查询基表中的所有列,然后对该表进行结构修改,例如增加列、删除列,修改列名等,测试不同情况下视图的可用性,并思考其中的原因.参考答

37、案:视图依赖于根底表的存在而存在,当根底表进行了结构上的修改后,有可能会对视图产生印象,如果要再次使用此试图,需要进行编译.4 .如果经常需要使用如下语句查询employee表中的员工信息:SELECT * FROM employee WHERE SUBSTRB(ename , 0,2)= 李;那么应该为ename创立什么索引,如何创立?参考答案:创立基于函数的索引CREATE INDEX EANME_INDEXON employee (SUBSTRB(ename , 0,2)TABLESPACE myspace8.6习题.填空题1. PL/SQL程序由三个块组成,即 、参考答案:声明局部、执

38、行局部、异常处理局部2. Oracle块根据应用模块功能,可以分为四种类型,分别是:、O完美整理Word格式参考答案:匿名块、命名块、子程序、触发器3 . Oracle 的游标分为、.参考答案:显示游标、隐式游标4. Oracle 游标有4个属性,判断游标是否被翻开,如果翻开等于 true,否那么 等于false ; 判断游标所在的行是否有效,如果有效,那么等于 true ,否那么等于 false ,属性与之相反; 返回当前位置为止游标读取的记录行数. 参考答案:ISOPEN %FOUND %NOTFOUND%ROWCOUNT 二、选择题1 .关于存储过程参数,正确的说法是A.存储过程的输出参

39、数可以是标量类型,也可以是表类型B.存储过程输入参数可以不输入信息而调用过程C.可以指定字符参数的字符长度函数的或者过程的number/varchar2D.以上说法都不对 参考答案:B2 .以下说法,正确的说法是A.只要在存储过程中有增删改语句,一定加自治事务B.在函数内可以修改表数据C.函数不能递归调用D.以上说法都不对参考答案:B3 .利用游标来修改数据时,FOR UPDAT质分利用了事务的哪个特性?A.原子性B. 一致性C.永久性D.隔离性参考答案:D4 .以下哪个语句无需 COMMIT自动提交A. CREATE TABLE tt1 NUMBER,t2 NUMBERB. UPDATE t

40、 SET t1=123C. DELETE FROM tD. INSERT INTO t VALUES1,3参考答案:A5 .以下说法不正确的选项是A.在PLSQL自定义函数中如果包含 UPDATE DELETE INSERT语句,不必在函数体内给出COMMIT;B.自定义函数可以在 SQL语句中调用、也可以在PLSQL中调用C.自定义函数可以返回表类型D.自定义函数中白参数可以是OU镁型参考答案:D6.下面定义 PL/SQL记录的语法正确的选项是A. TYPE 6己录类型名 IS RECORDB. TYPE 6己录类型名 RECORDC. RECORD记录类型名 D. TYPE RECORDS

41、类型名参考答案:A7.在SQL*PLU斫境中可以利用 DBMS_OUTPUT中的PUT_LINE方法往返显效劳器端变 量的值,但在此之前要利用一个命令翻开效劳器的回显功能,这一命令是A. set server onB. set serverecho on完美整理Word格式C. set servershow onD. set serveroutput on参考答案:D三、简做题1 .简述NO_DATA_FOUND%NOTFOUND)保存字的用法.参考答案:SELECT . INTO语句触发NO_DATA_FOUND当一个显示光标的 where子句未找到时触发 %NOTFOUND当UPDATE

42、DELETE语句的where子句未找至U时触发 SQL%NOTFOUND在光标白提取(Fetch)循环中要用 NOTFOUN或FOUNDe确定循环的退出条件,不要 用 NO_DATA_FOUN D2 .简述PL/SQL的异常处理机制.参考答案:当发生错误时,程序无条件转到异常处理局部,这就要求代码要非常干净并把错误处理局部和程序的其它局部分开.oracle允许声明其他异常条件类型以扩展错误/异常处理.这种扩展使 PL/SQL的异常处理非常灵活.当一个运行时错误发生时,称为一个异常被抛出.PL/SQL程序编译时的错误不是能被处理得异常,只有在运行时的异常能被处理.在PL/SQL程序设计中异常的抛

43、出和处理是非常重要的内容.3 .查找出当前用户模式下,每张表的记录数,以 scott用户为例,结果应如下:DEPT4EMP14BONUS0SALGRADE5请编写PL/SQL程序块实现.参考答案:DECLAREtype tab_names is table of varchar2(20) index by binary_integer; tab_name tab_names;coun number;str varchar2(100);BEGINselect table_name bulk collect into tab_name from user_tables;for i in tab_n

44、ame.first.tab_name.last LOOP str:=select count(*) from |tab_name(i);execute immediate str into coun;dbms_output.put_line(tab_name(i)|coun);ENDLOOP;END;9.6习题一、填空题1. 关键字标志着PL/SQL程序中声明段的开始.参考答案:DECLARE2. PL/SQL的异常处理代码在 块中实现.完美整理Word格式参考答案:EXCEPTION3. 触发器可以分为三类,分别是: 、.参考答案:DMLj发器、替代触发器、系统及触发器4. 包中包含 和,它

45、们共享公共的变量,公共的局部函数和过程. 参考答案:过程、函数5. 一个包由两个分开的局部组成 和.参考答案: 包说明 (package soecification) 、包主体(package body )、选择题1 .关于触发器,以下说法正确的选项是()A可以在表上创立 INSTEAD OF触发器B.语句级触发器不能使用“: old 和“:newC.行级触发器不能用于审计功能D.触发器可以显式调用参考答案:B2 .分析下面的 PL/SQL代码块:BEGINFOR I IN 1.5 LOOPIF I=1 THEN NULL;ELSEIF I=3 THEN COMMIT;ELSEIF 1=5 T

46、HEN ROLLBACK;ELSE INSERT INTO test(results) values(i);END IF;END LOOP;COMMIT;END;有多少个值,被永久地插入到TEST表中?A 0B. 1C. 2参考答案是:B3.在PL/SQL循环中,需要测试当前的 属性是以下哪个().A SQL%ISOPENC. SQL%FOUND 参考答案是:D4.检查下面的 PL / SQL块:DECLARE0D. 3FETCH是否成功,可以完成这个要求的游标B. SQL%ROWCOUNTD.这一要求无法使用 SQL游标属性完成.TYPE EmpListIS VARRAY(2) OF emp

47、loyees.employee_id%TYPE NOT NULL; v_employees EmpList := EmpList();BEGINDBMS_OUTPUT.PUT_LINE(v_employees.COUNT);v_employees.EXTEND; v_employees(1) := 30; END;卜列关于上述 PL / SQL块的结果的说法,正确的一项为哪一项:().完美整理Word格式A它执行成功,并显示值为2B.它执行成功,并显示值为0C.它生成一个错误,由于数组不能扩展D.它生成一个错误,由于该变长数组的声明是无效的. 参考答案是:B 三、简做题1 .简述PL/SQL程

48、序包的作用.参考答案:把相关的过程和函数归类,根据功能的相关性存放在一起,并赋予一定的管理功能和使用的一组对象就叫做包.Oracle系统把相关的模块归类成为包,可使开发人员利用面向对象的方法进行内嵌过程的开发,从而提升系统性能.2 .简述存储过程和函数的区别.参考答案:本质上没区别.只是函数有如:只能返回一个变量的限制.而存储过程可以返回多个.而函数是可以嵌入在 sql中使用的,可以在select中调用,而存储过程不行. 执 行的本质都一样.函数限制比拟多,比方不能用临时表,只能用表变量.还有一些函数都不可用 等等.而存储过程的限制相对就比拟少.3 .思考如何在PL/SQL里预防重复编码的问题

49、,请举例说明.参考答案:使用存储过程或函数,举例略.4 .在PL/SQL里如何使用绑定变量,为何使用绑定变量,请举例说明.参考答案:这是解决 Oracle应用程序可伸缩性的一个关键环节;而Oracle的共享池就 决定了开发人员必须使用绑定变量;如果想要Oracle运行减慢,甚至完全终止,那就可以不用绑定变量; 这里举例说明上述问题; 为了查询一个员工代号是123,你可以这样查询:select * from emp where empno= 123; 你也可以这样查询:select * from emp where empno=:empno;第一个查询使用的频率越高,所消耗的系统硬件资源越大,从

50、而降低了用户的使用数量; 它也会把优化好的其它查询语句从共享池中踢出,系统的整体性能降低;而执行绑定变量,提交相同对象的完全相同的查询的用户,一次性使用就可重复使用,提升效率.四、应用题5 .用PL/SQL编写函数计算一个给定的正整数的阶乘,并编写调用程序对该函数进行调用.参考答案:FUNCTION fac(n POSITIVE)RETURN INTEGER ISBEGINIF n = 1 THENRETURN 1;ELSERETURN n * fac(n -1);END IF;END fac;BEGIN完美整理Word格式dbms_output.put_line(fac(5); END;6

51、.给 teacher_info表编写一个(before-delete)触发器,当要在 teacher_info 表中删除一个记录,将触发该触发器.在触发器中将判断老师是否已经授课?如果已经安排某位 教师授课,它将激发一个例外,把无法删除的信息返回用户.参考答案: create trigger teacher_cancelon teacher_infoinstead of deleteasdeclare sk int,ID intbeginselect ID=course_id FROM deletedselect sk=SKJL from teacher_info where course_i

52、d=IDif(sk=0)delete from teacher_info where course_id=IDelsebeginraiserror( 无法删除,10,1) endend7 .根据下面的要求编写相应存储过程,并调用执行.具体要求如下:1)编写一个存储过程,向表中随机插入 1000条记录SerialNo :使用序列方式,自增长.Filepath :使用随机插入6个字母Partid :使用随机4位数字StaffNo :从 YTCZ060001 .YTCZ060020 中随机抽取RecordTime :从2022年8月1日之前的6个月中随机抽取.2)写一个程序块,循环调用500次此存储过程,保证数据表中存储 50万条记录.参考答案:(1) create table RecordFile (SerialNoVARCHAR2(20),FilePathVARCHAR2(200),Partid Varchar2(4),StaffNoVARCHAR2(10),RecordTime DATE)Create index Ix_RecordFile_SerialNo on recordfile(SerialNo) pctfree 30 tablespace mytbscreate sequence seq_Record

温馨提示

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

评论

0/150

提交评论