ORACLE 11g教程 数据库应用简明教程.doc_第1页
ORACLE 11g教程 数据库应用简明教程.doc_第2页
ORACLE 11g教程 数据库应用简明教程.doc_第3页
ORACLE 11g教程 数据库应用简明教程.doc_第4页
ORACLE 11g教程 数据库应用简明教程.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

第二章填空题1. oracle数据库从存储结构上可以分为_物理存储结构_和_逻辑存储结构_.2. 在oracle数据库中,_数据文件_是指存储数据库的文件,数据库中的所有数据最终都保存在_数据文件_中。3. Oracle数据库从逻辑存储结构上可以分为表空间、_段_、区、_块_。一个数据库实例由多个表空间组成,一个表空间由多个_段_组成,一个_段_有多个区组成,一个区由多个_块_组成。4. 将日志缓冲区的日志信息写入日志文件的后台进程是_LGWR_,如果数据库实例运行在归档模式下,则日志文件中的内容将会被_ARCn_进程写入归档日志。5. oracle数据库的物理存储结构主要有数据库文件、_控制文件_和_日志文件_这3种类型的文件组成。6. 如果一个服务器进程非正常终止,由oracle系统会使用_PMON_进程来释放他所占用的资源。7. oracle数据库中,段主要可以分为数据段、_索引段_、_临时段_和_回退段_。二、选择题1.下面对数据库文件的叙述中,正确的是CA、一个表空间只能对应一个人数据库文件B、一个数据文件可以对应多个表空间C、一个表空间可以对应多个数据库文件D、数据库文件存储了数据库中的所的日志信息2.下面对数据库逻辑存储结构叙述中,正确的是_AB_A、一个数据库实例由多个表空间组成B、一个人段由多个区组成C、一个人区由多个段组成D、一个人块由多个区组成3.下面哪种后台进程用于将数据缓冲区中的数据写入数据文件?_B_A、LGWRB、DBWnC、CKPTD、ARCn4.系统全局区包括下面那些区域?_ACD_A、java池B、软件代码区C、数据缓冲区D、日志缓冲区5.解析后的sql语句会缓存到下面的SGA哪个区域中?_C_A、java池B、大型池C、共享池D、数据缓冲区三、简答题1.简述oracle物理存储结构中的数据文件、控制文件与重做日志文件的作用。答:数据文件(Data File)是指存储数据库数据的文件控制文件(Control File)是一个很小的二进制文件,用于描述和维护数据库的物理结构重做日志文件(Redo Log File)是记录数据库中所有修改信息的文件,简称日志文件2.简述oracle逻辑存储结构中的表空间、段、区、块之间的关系。答:表空间是Oracle中最大的逻辑存储结构,它与物理上的一个或多个数据文件相对应,每个Oracle数据库都至少拥有一个表空间,表空间的大小等于构成该表空间的所有数据文件大小的总和。一个或多个区组成一个段,所以段的大小由区的个数决定。不过,一个数据段可以包含的区的个数并不是无限制的,它由如下两个参数决定3.简单介绍LGWR进程与ARCn进程的作用。答:LGWR(Log Writer,日志写入)进程,是负责管理日志缓冲区的一个后台进程,用于将日志缓冲区中的日志数据写入磁盘的日志文件中ARCn(Archive Process,归档)进程,用于将写满的日志文件复制到归档日志文件中,防止日志文件组中的日志信息由于日志文件组的循环使用而被覆盖。 4.如果想要了解数据库中所有的表的信息,应使用那种数据字典?答:dba_tables数据字典5.DBWn进程所采用的LRU算法应该怎样理解LRU算法是数据缓冲区的一种管理机制,只保留最近的数据,不保留旧数据,所以DBWn进程可以使用LRU算法将最近使用的数据块保留在内存中。3.5习题一、填空题1查看表结构时,所使用的命令是_ DESCRIBE _,该命令可以简写为_ DESC _。2使用SQL*Plus语句块编辑SQL语句时,可以使用的命令有APPEND(可以简写为A)命令、_ CHANGE _(可以简写为C)命令、_ INPUT _(可以简写为I)命令、_ LIST _(可以简写为L)命令 ,以及RUN(可以简写为R)命令。3.在SQL*Plus工具中,可以使用SAVE命令将缓冲区内容保存到文件;可以使用_ START _命令读取并运行文件内容;可以使用_ EDIT _命令编辑缓冲区内容或文件内容;还可以使用SPOOL命令复制输出结果到文件。4.在SQL语句中,如果在某个变量前面使用了&符号,那么就表示该变量是一个临时变量,定义变量,可以使用_ DEFINE _或ACCEPT命令;删除变量,可以使用UNDEFINE命令。5. 在SQL*Plus中格式化查询结果时,COLUMN命令可以格式化对列的显示效果,PAGESIZE命令可以_设置一页显示多行数据_,LINESIZE命令可以_设置一行显示多少个字符_。6.创建简单报表时,使用_ TTITLE _命令和_ BTITLE _命令,分别为报表设置页眉和页脚信息。二、选择题1. 在SQL*Plus中链接数据库时,可以使用CONNECT命令。下面的4个选项中,哪几个命令是正确的?其中,用户名为scott,密码为tiger,数据库名为orcl。_D_A.CONNECT scott/tiger;B.CONNECT tiger /scott;C.CONN scott/tiger as sysdba;D.CONN scott/tigerorcl as sysdba;2.执行语句SAVE scott_emp_query.sql APPEND,执行结果表示_C_。A.如果scott_emp_query.sql文件不存在,则出现错误B.如果scott_emp_query.sql文件已经存在,则出现错误C.将缓冲区中的内容追加到scott_emp_query.sql文件中,如果该文件不存在,会创建该文件D.将缓冲区中的内容替换掉 scott_emp_query.sql文件的内容,如果该文件不存在,会创建该文件3.使用SQL*Plus中的_B_,可以将文件中的内容检索到缓冲区,并且不执行。A.SAVE命令B.GET命令C.START命令D.SPOOL命令4.下面是有关变量的描述,请问哪些描述是正确的?_C_A.临时变量是指仅在某个SQL语句中有效的变量B.临时变量实在某个会话期间有效的变量C.已定义变量是指明确定义,其生命期至显式地删除、重新定义或退出SQL*Plus为止D.已定义的变量是不能被删除的5如果希望控制列的显式格式,那么可以使用下面的_D_命令A.SHOWB.DEFINEC.SPOOLD.COLUMN三、简答题1.使用DESCRIBE命令,查看scott用户的dept表的结构信息。答:DESCRIBE scott.dept;2.使用SAVE命令将缓冲区内容写入到e:test.sql文件中;然后使用START命令将文件中的内容读入到缓冲区,并且进行执行。答:SAVE e:test.sql;START e:test.sql;3.执行下列语句,观察输出结果;DEFINE temp=5000SELECT empno ,ename,mgrFROM scott.empWHERE sa1=&temp;答:输出结果为:员工编号 员工姓名 上级编号 7839KING 4.对 scott用户的emp表的输出信息进行格式设置,其中,empno列设置标题为“员工编号”,NUMBER格式为9999;ename列设置标题为“员工名称”,格式设置为25个;hiredate列设置标题为“受雇日期”,并且标题居中显示。答:COLUMN empno HEADING 员工编号 FORMAT 9999COLUMN ename HEADING 员工姓名 FORMAT A25COLUMN hiredate HEADING 受顾日期 JUSTIFY GENTERSELECT empno , ename , hiredateFROM scott.emp ;5.设置一页显示30行数据,并且设置一行显示130个字符,然后输出scott用户的emp表的全部信息。答:SET PAGESIZE 30SET LINESIZE 130SELECT * FROM scott.emp;Oracle第四章课后习题以及答案一、 填空题1. 在创建永久性性表空间是,需要使用datafile关键字指定其数据文件,而如果是创建临时表空间时,则应该使用_关键字为其指定临时文件。(TEMPFILE)2. 表空间的状态属性主要有ONLINE_ , _和_。(OFFLINE,READ ONLY,.READ WRITE)3. 数据文件的状态属性主要有ONLINE _和_。(OFFLINE,OFFLINE DROP)4. 创建临时表空间需要使用TEMPORARY关键字,创建大文件表空间需要使用_关键字,创建撤销表空间需要使用_关键字。(BIGFILE,UNDO)5. oracle中用户默认的永久表空间为_,默认的临时表空间为temp。(users)6. oracle中管理撤销表空间的方式有回退段撤销管理和_。(自动撤销管理)二、1、下面那些不属于表空间的状态属性(CD)A.ONLINEB.OFFLINEC.OFFLINE DROPD.READ2.将表空间的状态切换为OFFLINE时,可指定下面那种切换方式(ABD)A.NORMALB.IMMEDIATEC.TEMPD.FOR RECOVER3.在表空间space中没有存储任何数据,现在删除该表,并同属删除其对应的数据文件,可使用下面哪条语句(C)A.DROP TABLESPACE space;B.DROP TABLESPACE space INCLUDING DATAFILE;C. .DROP TABLESPACE space INCLUDING CONTENTS AND DATAFILE;D. DROP TABLESPACE space AND DATAFILE;4.使用下列语句创建一个临时空间表tempCREATE_TABLESPACE space _F:oraclefiletemp.dbfSIZE 10MB AUTOEXTEND ONNEXT 2MMAXSIZE 20M;从下面的选项中中选择正确的关键字补充上面的语句(C)A.(不填)、DATAFILEB.TEMP、TEMPFILEC.TEMPORARY、DATAFILED. .TEMP、DATAFILE5.将临时表空间设置temp设置为临时表空间的正确语句为(B)A.ALTER DATASPACE DEFAULT TABLESAPCE temp;B.ALTER DATASPACE DEFAULT TEMPORARY TABLESAPCE temp;C. ALTER DEFAULT TEMPORARY TABLESAPCE TO temp;D. ALTER DEFAULT TABLESAPCE TO temp;6.如果当前数据库实例中有一个临时表空间里组group1,该组中有一个临时表空间temp1,先使用下列语句修改temp1表空间所在组为 group2:ALTER TABLESPACE temp1 TABLESPACE GROUP group2;对执行上述语句说法正确的是(BD)A.由于数据中不存在group2组,因此执行将失败B.上属语句执行成功,temp2表空间将被移动到group2组中C.执行上述语句后,数据库实例中将存在两个临时表空间组:group1和group2D. .执行上述语句后,数据库实例中将只存在一个临时表空间组:group2三、简答题1.表空间的状态有哪几种,它们分别表示什么意思?答:表空间的状态分别有如下几种: 1) 在线(ONLINE):当表空间的状态为ONLINE时,才允许访问该表空间中的数据。 2) 离线(OFFLINE):当表空间状态为OFFLINE时,不允许访问该表空间中的数据。 3) 只读(READ ONLY):当表空间的状态为READ ONLY时,虽然可以访问表空间中的数据,但访问仅仅限于阅读,而不能进行任何更新或删除操作。 4) 读写(READ WRITE):当表空间的状态为READ WRITE时,可以对表空间进行正常访问,包括对表空间中的数据进行查询、更新和删除等操作。2.如果初始化参数为db_block_size的值为16KB,那么还能设置db_16k_cache_size的参数的值么?请结合本章的学习内容,创建一个非标准数据块表空间,并简述其步骤。答:不能。(1) 使用SHOW PARAMWTER 语句查看数据缓冲区参数db_16k_cache_size的值: SHOW PARAMWTER db_16k_cache_size(2) 使用ALTER SYSTEM 语句修改参数db_16k_cache_size 的值: ALTER SYSTEM SET db_16k_cache_size=20M;(3) 创建表空间 non,指定其数据块大小为16KB:CREATE TABLESPACE nonDATAFILE F:ORACLEnon.dbfSIZE 5MBLOCKSIZE 16K;3在实际应用中,需要临时创建一个表来使用,那么是否可以将该表创建在临时表空间中?答:不需要,如果是创建临时表的话,一般如果内容部是很大不会有很明显的影响,而且使用完之后系统会自动删除临时表。4在oracle中,对表空间的使用与管理非常重要。请创建一个表空间,然后对表空间的数据文件进行增加,删除和移动等管理,巩固本章所学的知识。答:创建表空间:(创建永久性表空间 myspace)CREATE TABLESPACE myspace DATAFILE E:myspace.dbfSIZE 20MAUTOEXTEND ON NEXT 50MMAXSIZE 100M;在表空间中增加数文件:(myspace表空间中在增加E:目录下增加一个数据文件,名为myspace01.dbf)ALTER TABLESPACE myspaceADD DATAFILEE:myspace01.dbfSIZE 10MAUTOEXTEND ON NEXT 5MMAXSIZE 70;删除表空间中数据文件:(删除myspace表空间数据文件E:myspace01.dbf)ALTER TABLESPACE myspaceDROP DATAFILE E:myspace01.dbf;移动表空间中数据文件:(将myspace01.dbf从目录E:移到目录F:)ALTER TABLESPACE myspaceRENAME DATAFILE E:myspace01.dbfTO F:myspace01.dbf一、 填空题:1. 按照约束的用途,主要可以将表的完整性约束分为NOT NULL约束、_UNIQUE约束_、_PRIMARY KEY约束_、_CHECK约束_和_FOREIGN KEY约束_。2. 使用_TRUNCATE_关键字,可以快速删除表中的所有记录,并且不在撤销表空间中记录撤销数据。3. _NOT NULL_约束用于定义列中不能出现NULL值,_UNIQUE_约束用于定义列中不能出现重复值,而PRIMARY KEY约束则可以定义列中既不予许出现NULL值,也不允许出现重复值。4. 如果要清除索引中的存储碎片,可以对索引进行合并或_重建_。视图中的列并不都支持DML操作,通过数据字典_user_updatable_columns_可以了解视图中那些列是可更新的。5. 使用_currval_可以获取序列的当前值,使用_nextval_可以获取下一个值。二、 选择题:1. 存储数据123.45,可以使用下面哪种数据类型?_AD_A. NUMBERB. NUMBER(5)C. NUMBER(5,3)D. NUMBER(5,2)2. 如果某列定义了UNIQUE约束,则_AD_A. 该列不允许出现重复值。B. 该列不允许出现NULL值。C. 该列内允许出现一个NULL值。D. 该列允许出现多个NULL值。3. 为定义一个CHECK约束,希望该约束能对表中已存储的数据,以及以后向表中添加或修改的数据都进行检查,则应该将该约束设置为如下哪种状态?_A_A ENABLE VALIDATEB ENABLE NOVALIDATEC DISABLE VALIDATED DISABLE NOVALIDATE4. 使用如下语句创建一个视图:CREATE VIEW test_view ASSELECT stu.studname,stu.stuage+1 newage,cla.clanameFROM student stu LEFT JOIN class cla ON stu.claid=cla.claid;请问test_view视图中那些列是可更新的?_A_A.stunameB.stuname、newageC.stuname、clanameD.stuname、newage、claname5.如果创建一个序列,用于为表的主键列生成主键值,则创建该序列时不应该指定以下哪种参数?_D_A.MAXVALUE 1000B.MINVALUE 10C.CACHE 10D.CYCLE6.如果在创建序列时指定其CACHE参数值为10,当序列的当前值为5时,数据库突然关闭,再次运行数据库后,序列将从以下哪个值开始?_C_A.5 B.6 C.11 D.16三、简答题:1.比较VARCHAR2与CHAR两种数据类型的区别,并举例说明分别在什么情况下使用这两种数据类型。答:CHAR的长度是固定的,VARCHAR2的长度是可以变化的, VARCHAR2比CHAR节省空间,在效率上比CHAR会稍微差一些2.创建一个表后,为表中的某列添加CHECK约束,并分别设置该约束的状态为4中不同的状态,比较这4中状态下的约束检查效果。答:3.如果经常需要使用如下语句查询employee表中的员工信息:SELECT * FROM WHERE SUBSTRB(ename,0,2)=李;那么应该为ename创建什么索引,如何创建?答:创建一个带有SUBSTRB函数的基于函数的索引create index emp_ename_SUBSTRB on eemp ( SUBSTRB(ename,0,2) );这样在执行上面的查询语句时,这个基于函数的索引将排上用场,执行计划将是(INDEX RANGE SCAN)。4.如果对视图的基表进行结构上的改动,将会影响视图的可用性。请基于一个表创建一个视图,在视图的子查询语句中使用*查询基表的所有列,然后对该表进行结构修改,例如增加列、删除列、修改列名等,测试不同情况下视图的可用性,并思考其中的原因。答:5. 思考在实际应用中使用同义词的好处:答:一:应用程序开发可以不管数据库的具体对象名二:避免应用程序直接访问数据库对象,提高数据库安全性三:简化数据库对象的访问。一、 填空题1.备份控制文件主要有两种方式: 和备份成脚本文件。2.通过数据字典v$datafile可以产看数据文件信息,通过数据字典 可以查看控制文件信息,通过数据字典 可以产看日志文件信息。3.Oracle数据库的运行模式有归档模式和 模式两种,Oracle数据库默认为非归档模式,数据库管理员可以执行 语句,将数据库的运行模式的运行模式设置为归档模式。4.如果在创建控制文件时使用了RESRTLOGS选项,则应该执行 语句打开数据库。5.使用ALTER SYSTEM语句修改参数值时,可以使用SCPOE选项, 该选项有MEMORY、 和 3个可选值。二、选择题1.下面对日志文件及其成员叙述正确的是 。A.日志文件组中可以没有日志成员B.日志文件组中的日志成员大小一致C.在创建日志文件组时,其日志成员可以是已经存在的日志文件D.在创建日志文件组时,如果日志成员已经存在,则使用REUSE关键字就一定可以成功替换该文件2.当日志文件组处于哪种情况时,无法清空该日志文件组? A.ACTIVE B.INACTIVEC.CURRENT D.UNUSED3.下面哪条语句用于切换日志文件组? A.ALTER DATABASE SWITCH LOGFILE;B.ALTER SYSTEM SWITCH LOGFILE;C.ALTER STSTEM ARCHIVELOG;D.ALTER DATABASE ARCHIVELOG;4.删除日志文件组5种的日志文件E:orcldatafileredo05.log,其中正确的语句是 。A.ALTER DATABASE DROP LOGFILE:orcldatafileredo05.log;B.ALTER DATABASE DROP LOGFILE GROUP 5E:orcldatafileredo05.log;C.ALTER DATABASE DROP KOGFILE MEMBERE:orcldatafileredo05.log;D.ALTER GROUP 5DROP LOGFILEE:orcldatafileredo05.log;5.修改系统中的参数值时,如果只修改服务器参数文件中的设置,则SCOPE选项的值应该为 。A.SPFILE B.MEMORYC.BOTH D.以上都不对三、简答题1.控制文件在数据库中有什么作用?在创建控制文件时应该注意哪些问题?2.日志文件组中的日志成员大小应该一致吗?为什么?3.日志文件组有哪几种状态,它们分别表示什么含义?4.简述清空日志文件组以及删除日志文件组或日志成员时应该注意哪些问题。5.件数归档模式与非归档模式的区别。 答案:一、填空题1.备份为二进制文件2.v$controlfile、v$logfile3.ALTER DATABASE ARCHIVELOG4.ALTER DATABASE OPEN RSEETLOGS5.SPFILE、BOTH二、选择题1.B 2.C 3.B 4.C 5.A1. 如果需要在SELECT 子句包括一个表的所有列, 可以使用符号 * 。2.WHERE子句可以接收FROM子句输出的数据;而HAVINGZ子句可以接收来FROM,WHERE或ORDER BY子句的输出的数据。3.在SELECT语句中,分组条件的子句是GROUP BY,对显示的数据进行排序的子句ORDER BY。4.在DML语句中,INSERT语句可以实现插入记录,UPDATE语句可以实现更新记录,DELETE语句和TRUNCATE语句可以实现删除记录。5.CHR函数可以返回某个数值的ASCII值,ASCII函数可以反悔某个ASCII值对应的十进制数。6.使用TO_CHAR函数,可以把数字或日期类型的数据转换成字符串;使用TO_DATE函数,可以把字符串转换成日期数据,默认的日期格式为DD-MON-YY。二、选择题1.查询scott用户的emp表中的总记录数,可以使用下列哪个语句?BDA.SELECT MAX(empno) FROM scott.emp;B.SELECT COUNT(empno) FROM scott.emp;C.SELECT COUNT(comm) FROM scott.emp;D.SELECT COUNT(*) FROM scott.emp;2.为了取出结果集中的重复行,可以再SELECT语句中使用下列哪个关键字?BA.ALLB.DISTINCTC.UPDATED.MERGE3.在SELECT语句中,HAVING子句的作用是。BA.查询结果的分组条件B.组的筛选条件C.限定返回的行的判断条件D.对结果集进行排序4.下列哪个聚合函数可以把一个列中的所有值相加求和?DA.MAX函数B.MIN函数C.COUNT函数D.SUM函数5.如果要统计表中有多少行记录,应该使用下列哪个聚合函数?CA.SUM函数B.AVG函数C.COUNT函数D.MAX函数三、简答题1.标准SQL语言的语句类型可以分为哪三大类,每种语句类型分别用来操纵哪些语句?2.列举几个在WHERE条件中可以使用的操作符。3.如果要按照降序对数据进行排序,应该在ORDER BY子句中使用哪个关键字?4.下面这个SELECT语句能否输出查询结果?如果不能,该如何修改?SELECT empno , ename . deptno , COUNT(*)FROM scott.emp0GROUP BY deptno ;5.指定一个日期值,例如 08-8 月 -2008,获得这个日期与系统当前日期之间相隔的月份数和天数。8.5习题1 填空题1. 在SELECT语句的WHERE子句中可以使用子查询,表示将 子查询返回的结果 作为外部的WHERE条件。2. 在子查询的SELECT语句中,可以指定FROM子句、 WHERE 子句、 GROUP BY 子句和HAVING子句等,但是有些情况下不能指定 ORDER BY 子句。3. 使用IN操作符实现指定匹配查询;使用 ANY 操作符实现任意匹配查询;使用 ALL 操作符实现全部匹配查询。4. 在关联子查询中可以使用 EXISTS 或 NOT EXISTS 关键字。5. 常用的表的链接类型有 INNER JOIN (内连接)、 OUTER JOIN (外连接) CROSS JOIN (交叉连接)。6. 集合运算符 UNION 实现了集合的并运算;集合运算符INTERSECT实现了对集合的交运算;而集合运算符 MINUS 则实现了集合的减运算。2 选择题1. 下面哪些语句在执行时不会返回错误信息,而显示检索结果? BD A. SELECT empno , ename FROM scott.emp WHERE deptno = ( SELECT deptno FROM scott.dept WHERE dname NOT IN (SALES) );B. SELECT empno , ename FROM scott.emp WHERE deptno = ( SELECT deptno FROM scott.dept WHERE dname IN (SALES) ) ;C. SELECT empno , e.deptno , dname FROM scott.emp e , scott.dept d ;D. SELECT empno , deptno, dname FROM scott.emp , scott.dept ;2. 使用关键字进行子查询时, D 关键字只注重子查询是否返回行。如果子查询返回一个或多个行,那么将返回真,否则为假。A. IN B. ANY C. ALL D. EXISTS3.使用简单链接查询两个表,其中一个表有5行记录,另一个表有28行记录。如果未使用WHERE子句,则将返回多少行? D A. 33 B. 23 C. 28 D. 1404. C 为具有相同名称的列字段进行记录匹配,不必指定任何同等链接条件。A. 等值连接 B. 不等连接 C. 自然连接 D. 交叉连接 5. SQL/92标准可以使用USING关键字来简化连接查询,但是 只有在查询满足下面的 AB 条件时,才能使用USING关键字来简化。A. 查询必须是等值连接B. 等值连接中的列必须具有相同的名称和数据类型C. FROM子句应当包括所有的表名D. 如果在连接查询时使用了两个表中相同的多个列,那么就可以再USING子句中指定多个列名3 简答题1. 子查询有哪3种子类型?答:子查询有下面3种子类型:多列子查询:向外部的SQL语句返回多列。关联子查询:引用外部的SQL语句中的一列或多列。嵌套子查询:在子查询中包含有子查询。2.对scott用户的emp进行操作,在SELECT语句中使用子查询,获得每个部门中工资最高的员工信息。答:SQLSELECT empno , ename , sal , deptno , dname FROM scott.emp outer 2 WHERE sal = (SELECT MAX(sal) FROM scott.emp inner 3 WHERE inner.deptno = outer.deptno);3.外连接(OUTER JOIN)可以分为哪3种类型?左外连接右外连接全外连接4对scott用户的emp表和dept表进行操作,使用内连接(INNER JOIN)方式,检索sales部门的员工信息。答:SQLSELECT empno , ename , sal , d.deptno , dname 2 FROM scott.emp e INNER JOIN scott.dept d ON e.deptno = d.deptno 3 WHERE dname = sales;5.在进行集合操作时,使用哪些操作符,分别获取两个结果集的并集、交集和差集?答:分别是UNION,INTERSECT,MINUS.9.8 习 题一、 填空题1. PL/SQL程序块一般包括DECLARE部分、BEGINEND部分和 部分。2. PL/SQL程序块中的赋值符号位 。3. 在声明常量时需要使用 关键字,并且必须为常量赋初始值。4. 使用游标一般分为声明游标、 、 和关闭游标这几个步骤。5. 如果程序的执行部分出现异常,那么程序将跳转到 部分对异常进行处理。二、选择题1. 下面哪些是合法的变量名? A. _number01 B. number01 C. number-01 D. number2. 使用下列哪条语句可以正确地声明一个常量? A. name CONSTANT VARCHAR2(8);B. name VARCHAR2(8) :=CANDY;C. name VARCHAR2(8) DEFAULT CANDY;D. name CONSTANT VARCHAR2(8) :=CANDY;3. 有如下PL/SQL程序块:SQL DECLARE 2 a NUMBER := 10 ; 3 b NUMBER := 0 ; 4 BEGIN 5 IF a 2 THEN 6 b :=1; 7 ELSIF a 4 THEN 8 b := 2 ; 9 ELSE 10 b := 3 ; 11 END IF ; 12 DBMS_OUTPUT.PUT_LINE (b) ; 13 END ; 执行上述PL/SQL块后的输出结果为 A. 0 B. 1 C. 2 D. 34. 有如下PL/SQL程序块:SQL DECLARE 2 i BINARY_INTEGER := 1 ; 3 BEGIN ; 4 WHILE i = 1 ; 5 LOOP 6 i := i + 1 ; 7 DBMS_OUTPUT.PUT_LINE (i) ; 8 END LOOP ; 9 END ;执行上述PL/SQL 块,结果为 A. 输出从1开始,每次递增1的数B. 输出从2开始,每次递增1的数C. 输出2D. 该循环将陷入死循环5. 使用游标的什么属性可以获取SELECT语句当前检索到的行数? A. %FOUND B. %NOTFOUND C. %ISOPEN D. %ROWCOUNT6. 下列不属于IF条件语句中的关键字是 A. ELSEIF B. ELSE IF C. OTHERS D. THEN三、简答题1. 简述常量与变量在创建与使用时的区别。2. 假设 student表中有如下字段:sid(主键列)、sname(姓名)和sscore(成绩),请问使用SELECT语句查询student 表中的学生信息时,如何显示每个学生的成绩所属的级别?示例查询结果如下: Sid sname sscore 级别- - - -1 李云 91 优秀2 王小静 87 良好3. 使用%ROWTYPE与自定义记录类型,都可以定义存储一行数据的变量,请比较它们的区别。4. 条件语句与循环语句都可以多层嵌套,请编写一段PL/SQL程序,实现如下输出效果: * * * * *5. 假设表test中只有一个id 列,其数据如下:SQL SELECT * FROM test ; ID- 800 800 1000 1000 500 现在需要将id 列中800的值修改为1000,1000的值修改为800。请问,使用普通的UPDATE语句能实现吗(提示:使用rowid列,它是Oracle提供的唯一标识数据行的列)?如果使用游标,又应该怎样实现?6. 自定义异常主要用于实现业务逻辑规范,请列举部分在实际应用中需要创建自定义异常的情况,并思考如何在PL/SQL中处理该异常。答案一、填空题1.EXCEPTION2.:=3.CONSTANT4.打开游标、检索游标5.EXCEPTION二、选择题1. B 2. D 3. B 4. D 5. D 6. ABC三、简答题略。 第十章习题一、填空题1创建存储过程需要使用CREATEPROCEDURE语句,使用存储过程可以使用_或者EXECUTE命令。2存储过程中有3种参数模式,分别为IN、_和_。3下面是创建存储过程的语句,该过程用于根据某学生ID(studentid)返回学生姓名(studentname):CREATE PROCEDURE stu_pro( stu_id IN NUMBER,stu_name OUT VARCHAR2) ASBEGIN SELECT studentname INTO_ FROM student WHERE studentid =_; END stu_pro;请将上述的语句补充完整,并完成下面的过程调用等语句:VARIABLE stu_name VARCHAR2(10); EXEC stu_pro(1003,_); SELECT _FROM student; 4Oracle 中触发器主要有_、_、系统触发器和_。5如果要创建行级触发器,则应该在创建触发器的语句中使用_子句。6创建包规范需要使用CREATEPACKAGE 语句,创建包体需要使用_语句。二、选择题1.假设有存储过程add_student,其创建语句的头部内容如下:CREATE POCEDURE add_student(stu_id IN BUMBER,stu_name IN VARCHAR2)请问下列调用该存储过程的语句中,正确的是_。A EXEC add_student(1001,CANDY);B EXEC add_student(CANDY,1001);C EXEC add_student(stu_id=1001,stu_name=CANDY);D EXEC add_student(stu_name=CANDY, stu_id=1001);2下面对BEFORE触发器与INSTEAD OF 触发器叙述正确的是_。ABEFORE 触发器在触发事件执行之前被触发,触发器事件本事将不会被执行BBEFORE 触发器在触发事件执行之前被触发,触发器本身仍然执行。CINSTEAD OF触发器在触发事件发生时被触发,触发器事件本事将不会被执行DINSTEAD OF触发器在触发事件发生时被触发,触发器本身仍然执行。3.下面关于 :NEW与:OLD的理解正确的是_.A:NEW与:OLD可发分别用于捕获新的数据与旧的数据。B:NEW与:OLD可以分别用于INSERT触发器、UPDATE触发器和DELETE触发器中CINSERT 触发器中只能使用:NEWDUPDATE触发器中只能使用:NEW4修改触发器应该使用下列那种语句_.AALTER TRIGGER语句BDROP TRIGGER语句CCREATE TRIGGER语句DCREATE OF REPLACE TRIGGER语句5如果在包规范mypackage中没有申明某个过程myprocedure,而在创建包体时包含了该过程,那么对该过程叙述正确的是_。A包体将无法创建成功,因为在包体中包含有包规范中没有申明的元素。B该过程不影响包体的创建,它属于包的私有元素。C可以通过mypackage.myproduce调用该过程。D无法在包体外使用该过程三、简答题1简述带参数的存储过程的使用,并概括说明在创建与调用时都应该主意哪些问题。2简述存储过程与函数的区别。3.在表中使用CHECK约束也是为了保证数据的完整性,请举例说明使用触发器与使用CHECK约束的优缺点。4.在调用存储过程时,如果存储过程中有多个输入参数,则在调用该过程时需要为这些参数赋值,本书介绍了两种为多个参数赋值的形式,一种是指定参数名,另一种是不指定参数名。在实际应用中,有些用户喜欢将上述两种形式混在一起用,如下:SQLEXEC test(nam

温馨提示

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

评论

0/150

提交评论