• 356.17 KB
  • 2022-04-22 11:27:23 发布

《数据库管理 应用与开发》 课后习题答案~首发!.pdf

  • 19页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'填空题第二章1.Oracle数据库系统的物理存储结构主要由3类文件组成,分别为数据文件、日志文件、控制文件。2.用户对数据库的操作如果产生日志信息、则该日志信息首先被存储在日志缓冲区中,随后由LGWR进程保存到日志文件。3.一个表空间物理上对应一个或多个数据文件。4.在Oracle的逻辑存储结构中,根据存储数据的类型,可以将段分为数据段、索引段、回退段、LOB段和临时段。5.在Oracle的逻辑存储结构中,数据块是最小的I/O单元。6.在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务器进程。当一个用户运行应用程序,如PRO*C程序或一个Oracle工具(如SQL*Plus),系统将为用户运行的应用程序建立一个用户进程。第三章1.标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵语句(DML)和数据控制语句(DCL)。2.在需要滤除查询结果中重复的行时,必须使用关键字Distinct;在需要返回查询结果中的所有行时,可以使用关键字ALL。3.如果需要在SELECT子句中包括一个表的所有列,可使用符号*。4.如果定义与组有关的搜索条件,可以把groupby子句添加到SELECT语句中。5.当进行模糊查询时,就使用关键字LIKE和通配符"_"或百分号"%"。6.WHERE子句可以接收FROM子句输出的数据,而HAVING子句则可以接收来自groupby、FROM或where子句的输入。7.使下列SQL语句中添加适当的表达式或子句,使语句可以正常运行。SELECT供应商所在城市,COUNT(供应商编号)FROM供应商信息GROUPBY供应商所在城市ORDERBY2DESC;第四章1.在SQL语句中,用于向表中插入数据的语句是Insert。2.如果需要向表中插入一批已经存在的数据,可以在INSERT语句中使用select语句。3.创建一个UPDATE语句来修改ARTISTS表中的数据,并且把每一行的T_ID值都改成15,应该使用的SQL语句是updateartistssett_id=15;。4.使用describe命令可以显示表的结构信息。 5.使用SQL*Plus的get命令可以将文件检索到缓冲区,并且不执行。6.当设置了多个列的显示属性后,如果清除设置的显示属性,可以使用命令clear,而当要清除某列具体的显示属性时,需要使用命令OFF。7.使用SAVE命令可以将缓冲区中的SQL命令保存到一个文件中,并且可以使用Start命令运行该文件。8.要设置SQL*Plus显示数字时的格式可以使用NumFormat命令,而要设置某个数字列的显示格式要使用Column命令。第五章1.在Oracle系统中,为了实现对表、视图和索引等数据库对象进行管理,Oracle采用模式实现。2.一个模式只能够被一个数据库用户所拥有,其创建的所有模式对象都保存在自己的模式中。3.Char数据类型与Varchar2类型都用于存储字符串。如果定义了Char类型的字段,并且向其赋值时,字符串的长度小于定义的长度,则使用空格填充;而Varchar2类型的字段用于存储变长的字符串,即如果向该列赋值的字符长度小于定义时的长度,该列的字符长度只会是实际字符数据的长度,系统不会使用空格填充。4.ROWID实际上保存的是记录的物理地址,因此通过ROWID来访问记录右以获得最快的访问速度。5.在STORAGE子句中可以设置6个存储参数。其中,Initial指定为表中的数据分配的第一个盘区的大小;Next指定为存储表中的数据分配的第二个盘区大小;Pctincrease指定从第二个盘区之后,每个盘区相对于上一个盘区的增长百分比;Minextents指定允许为表中的数据所分配的最小盘区数目;Maxextents指定允许为表中的数据所分配的最大盘区数目。6.通过数据块空间管理参数可以控制数据块中空闲空间的使用方法,其中Pctfree用于控制数据块的更新预留的空间,而Pctused用于控制数据块在删除时释放空间的门槛。7.为Student表手动分配存储空间,并且大小由NEXT参数设置,则应使用的语句为AltertableStudentallocateextent;;如果为Student表手动分配了一个大小为128KB的新盘区,则应使用的语句为AltertableStudentallocateextent(size128k);。8.填写下面语句,使其可以将Class表移动到表空间SYSTEM中的数据段,并且其初始化盘区为30KB,第二个盘区为20KB,随后分配的盘区不会增长。ALTERTABLEClassmoveTABLESPACESYSTEMSTORAGE(Initial30kNext20kPctincrease0MAXEXTENTSUNLIMITED);9.根据约束的作用域,约束可以分为表级约束和列级约束两种。列级约束是字段定义的一部分,只能够应用在一个列上;而表级约束的定义独立于列的定义,它可以应用于一个表中的多个列。10.填写下面的语句,使其可以为Class表的ID列添加一个名为PK_CLASS_ID的主键约束。ALTERTABLEClassAddconstraintPK_CLASS_IDPRIMARYKEY(ID) 11.假设已经创建了CHAINED_ROWS表,填写下面的语句,以便对“业务员信息”表进行链接记录分析:ANALYZETABLE业务员信息Listchainedrowsintochained_rows第六章1.在使用逗号连接的多表查询中,为了防止出现笛卡儿积,需要SELECT语句的Where子句中提供连接条件。2.使用逗号连接的多表查询中,用户可以根据下述基本原则创建需要的各种查询:From子句应当包括所有的表名,在Where子句中应定义一个连接条件,当列名为多个表共有时,列名必须被限制。3.自然连接为具有相同名称的列自动进行记录匹配,它不必指定任何同等连接条件。4.集合运算符UNION实现了集合的并运算,操作INTERSECT实现了对集合的交运算,而MINUS则实现了减运算。5.使用关键字连接子查询时,EXISTS关键只注重子查询是否返回行,如果子查询返回一个或多个行,那么便返回为真,否则为假。第七章1.PL/SQL程序块主要包含3个主要部分:声明部分、可执行部分和异常处理部分。2.使用显式游标主要有4个步骤:声明游标、打开游标、检索数据、关闭游标。3.在PL/SQL中,如果SELECT语句没有返回列,则会引发ORACLE错误,并引发no_data_found异常。4.自定义异常必须使用raise语句引发。5.查看操作在数据表中所影响的行数,可通过游标的%RowCount属性实现。6.查看下面的程序块,DBMS_OUTPUT将显示什么结果?NDECLAREvar_aCHAR(1):="N";BEGINDECLAREvar_aCHAR(2);BEGINvar_a:="Y";END;DBMS_OUTPUT.put_line(var_a);END;7.查看下面的程序块,其中变量var_b的结果为5。DECLAREVar_anumber:=1200;Var_bnumber;BEGINIFvar_a>500THEN var_b:=5;ELSIFvar_a>1000THENvar_b:=10;ELSEvar_b:=8;ENDIF;END;8.下列程序计算由0~9之间的任意3个不相同的数字组成的三位数,共有多少种不同的组合方式?完成下列程序使其能够正确运行。DECLAREcounternumber:=0;BEGINFORiIN1..9LOOPFORjIN0..9LOOPIFi!=jTHENFORkIN0..9LOOPIFk!=iandk!=jcounter:=counter+1;ENDIF;ENDLOOP;ENDIF;ENDLOOP;ENDLOOP;DBMS_OUTPUT.put_line(counter);END;第八章1.在下面程序的空白处填写一定的代码,使该函数可以获取指定编号的商品价格。CREATEORREPLACEFUNCTIONget_price(P_IDvarchar2)returnnumberisISv_priceNUMBER;BEGINSELECT单价intov_priceFROM商品信息WHERE商品编号=P_ID;RETURNv_price;EXCEPTIONWHENNO_DATA_FOUNDTHENDBMS_OUTPUT.PUT_LINE("查找的商品不存在!");WHENTOO_MANY_ROWSTHENDBMS_OUTPUT.PUT_LINE("程序运行错误!请使用游标");WHENOTHERSTHENDBMS_OUTPUT.PUT_LINE("发生其他错误!"); ENDget_price;2.假设有一个程序包,其中包含了两个重载的函数max。写出下面程序调用max函数后的运行结果。程序包主体:CreateorreplacepackagebodyTESTisFunctionmax(xinnumber,yinnumber)returnnumberisResultnumber;BeginIfx>ythenResult:=x;ElseResult:=y;Endif;Return(result)"Endmax;Functionmax(xinnumber,yinnumber,zinnumber)returnnumberisresultnumber;BeginResult:=test.max(x,y);Result:=test.max(result,z);Return(result);Endmax;End;运行结果:213.在下面程序的空白处填写适当的代码,使得调用该过程时可以统计某产地的商品数量和总价。CREATEORREPLACEPROCEDUREproc_demo(Merch_placeINvarchar2,Price_sumoutNUMBER,Merch_countoutNUMBER)ISBEGINSELECTSUM(单价),COUNT(*)INTOPrice_sum,Merch_countFROM商品信息WHERE产地=Merch_place;EXCEPTIONWHENNO_DATA_FOUNDTHENDBMS_OUTPUT.PUT_LINE("所需数据不存在!");WHENOTHERSTHENDBMS_OUTPUT.PUT_LINE("发生其他错误!");ENDproc_demo;第九章1.为了建立外部表,首先需要指示数据文件在操作系统上的位置。现在假设在操作系统的 F:DATAFILE文件夹中存有一个数据文件,使用createdirectoryexterior_dataas"F:DATAFILE";语句使Oracle可以访问数据文件。2.在使用CREATETABLE语句创建索引组织表时,必须使用organizationindex子句指示创建的表为索引组织表,并且为索引组织表指定主键。3.PCTTHRESHOLD指定一个数据块的百分比,当一行中的数据占用空间大于这个百分比时,该行将被分隔到两个位置存储:主键列被存储在基本索引段中,所有其他列被存储在溢出段中。4.Oracle中的临时表可以分为事务级临时表和会话级临时表,创建事务级别的临时表,需要使用oncommitdeleterows子句;创建一个会话级别的临时表,则需要使用oncommitpreserverrows子句。5.在创建对象类型时,用户不必特意创建构造函数,它由系统隐式创建,名称与对象类型的名称相同,并且它会接收对象类型的所有属性作为它的参数。6.如果用户想要对对象类型的实例进行比较排序,则需要使用映射方法Map,它最重要的一个特点是:当在WHERE或ORDERBY等比较关系子句中使用对象时会被间接地使用。7.有两种方法向对象表添加数据:一种是像关系表一样在INSERT的VALUES子句中,为对象的每个属性提供值,隐式地创建对象类型实例,向对象表添加数据;另一种方式是显式地创建对象实例,然后再将它添加到对象表。8.Oracle数据库提供对表或索引的分区方法有5种:范围分区、散列分区、列表分区、组合范围散列分区和组合范围列表分区。9.簇是一种用于存储数据表中数据的方法。簇实际是一组表,由一组共享相同数据块的多个表组成。第十章1.B树索引可以是唯一的或者不唯一的,唯一的B树索引可以保证索引列上不会有重复的值。2.在为表中某个列定义PRIMARTKEY约束PK_ID后,则系统默认创建的索引名为PK_ID。3.在B树索引中,通过在索引中保存排过序的索引列的值与相对应的RowID来实现快速查找。4.如果表中某列的基数比较低,则应该在该列上创建位图索引。5.如果要获知索引的使用情况,可以通过查询V$OBJECT_USAGE视图;而要获知索引的当前状态,可以查询Index_Stats视图。第十一章1.在不为视图指定列名的情况下,视图列的名称将使用表列的名称。2.视图与数据库中的表非常相似,用户也可以在视图进行INSERT、UPDATE、和DELETE操作。通过视图修改数据时,实际上是在修改基本表中的数据;相应地,改变基本表中的数据也会反映到该表产生的视图中。3.视图是否可以更新,这取决于定义视图的SELECT语句,通常情况下,该语句越复杂,创建的视图可以更新的可能性也就越小。4.下面的语句创建了一个序列对象,该序列对象的开始数为2,每次递增2,当大于1000后,序列值重新返回到2.在空白处填写适当的代码,完成上述要求。 Createsequenceseg_testStartwith2Incrementby2Maxvalue1000Cycle;第十二章1.假设有一个表TEST,它仅包含一个字段DATA。现在创建一个触发器,实现将添加的数据变大写。在下面的空白处填写适当的语句,使之可以正常运行。Createorreplacetriggertest_triggerAfterinsertonTESTforeachrowBegin:new.data:=upper(:new.data);End;2.BEFORE和AFTER指定了触发器的触发时间。当为一个表配置了约束时,它们将会特别有用,BEFORE可以规定Oracle在应用约束前调用触发器,而AFTER规定在应用约束后调用触发器。3.假设有一个名为ACTION_TYPE的表,它记录了对STUDENT表的操作。在空白处填写适当的代码,完成上述功能。Createorreplacetriggerbiud_student_triggerBeforeinsertorupdateordeleteonstudentDeclareActionaction_type.type%type;Beginifinsertingthenaction:="INSERT";elsifupdatingthenaction:="UPDATE";elsifdeletingthenaction:="DELETE";endif;insertintoaction_typevalue(user,action);End;第十三章1.事务的ACID特性包括原子性、一致性,隔离性和永久性。2.在设置事务隔离层时,需要使用关键字settransaction。3.可以用SETCONSTRAINTconstraint_nameDEFERRED语句,启用某个约束的延期应用,而使用SETCONSTRAINTALLDEFERRED语句可以设置本事务中所有约束的延期应用;语句SETCONSTRAINTALLIMMEDIATE可以设置约束的应用。4.在众多的事务控制语句中,用来撤销事务的操作的语句为ROLLBACK,用于持久化事务对数据库操作的语句是COMMIT。5.当Oracle检测到死锁后,它会选择一个事务退出。选择退出事务的原则是执行修改数目最小的事务。 6.锁粒度与数据库系统的并发度和并发控制的开销密切相关。锁粒度越大,数据库中所能够使用的资源也就越少,并发度也就越小,系统开销也就越小。7.当对某个表加SRX锁时,则表中行的锁类型为DML锁。第十四章1.如果要获取数据库中创建的配置文件的信息,可以通过查询数据字典视图DBA_profiles。2.在Oracle数据库中将权限分为两类,即系统权限和对象权限。系统权限是指在系统级控制数据库的存取和使用机制,对象权限是指在模式对象上控制存取和使用的机制。3.角色是具有名称的一组相关权限的组合。4.连接到数据库的最低系统预定义角色是connect。5.在用户连接到数据库后,可以查询数据字典role_sys_privs了解用户所具有的系统权限。第十五章1.表空间的管理类型可以分为数据字典管理和本地化管理。2.在Oracle的早期版本中,对撤销信息的管理采用手动管理撤销,从Oracle9i后采用自动撤销管理方式管理撤销信息。3.一个表空间具有离线(OFFLINE)、在线(ONLINE)、只读(READONLY)、读写(READWRITE)状态。4.在创建UNDO表空间时,所使用的表空间管理方式为本地化管理,并且盘区的管理方式只允许使用AutoAllOcate方式。5.在创建本地化管理临时表空间时,不得指定盘区的管理方式为数据字典管理,临时表空间的盘区管理统一使用本地化管理方式。选择题第二章1.下列选项中,哪一部分不是Oracle实例的组成部分?CA.系统全局区SGAB.PMON后台进程C.控制文件D.Dnnn调度进程2.在全局存储区SGA中,哪部分内存区域是循环使用的?BA.数据缓冲区B.日志缓冲区C.共享池D.大池3.解析后的SQL语句在SGA的哪个区域中进行缓存?CA.数据缓冲区B.日志缓冲区C.共享池D.大池4.如果一个服务进程非正常终止,Oracle系统将使用下列哪一个进程来释放它所占用的资源?DA.DBWRB.LGWRC.SMOND.PMON5.如果服务器进程无法在数据缓冲区中找到空闲缓存块,以添加从数据文件中读取的数据块,则将启动如下哪一个进程?DA.CKPTB.SMONC.LGWRD.DBWR 6.下列关于共享服务器模式的叙述哪一项不正确?AA.在共享服务器操作模式下,每一个用户进程必须对应一个服务器进程B.一个数据库实例可以启动多个调度进程C.在共享服务器操作模式下,Oracle实例将启动调度进程Dnnn为用户进程分配服务进程D.共享服务器操作模式可以实现少量服务器进程为大量用户进程提供服务7.当数据库运行在归档模式下时,如果发生日志切换,为了保证不覆盖旧的日志信息,系统将启动如下哪一个进程?DA.DBWRB.LGWRC.SMOND.ARCH8.下列哪一个进程和数据库部件可以保证用户对数据库所做的修改在没有保存的情况下,不会发生丢失修改数据?CA.DBWR和数据文件B.LGWR和日志文件组C.CKPT和控制文件D.ARCH和归档日志文件9.下列哪一个进程用于将修改过的数据从内存保存到磁盘数据文件中?AA.DBWRB.LGWRC.RECOD.ARCH10.如果要查询数据库中所有表的信息,应当使用下列哪种数据字典视图?AA.DBA视图B.ALL视图C.USER视图D.动态性能视图11.下列哪一项是Oracle数据库中最小的存储分配单元?DA.表空间B.段C.盘区D.数据块12.下面的各项中哪一个正确描述了Oracle数据库的逻辑存储结构?AA.表空间由段组成,段由盘区组成,盘区由数据块组成B.段由表空间组成,表空间由盘区组成,盘区由数据块组成C.盘区由数据块组成,数据块由段组成,段由表空间组成D.数据块由段组成,段由盘区组成,盘区由表空间组成第三章1.下列的哪个子句在SELECT语句中用于排序结果集?DA.HAVING子句B.WHERE子句C.FROM子句D.ORDERBY子句2.为了去除结果集中重复的行,可在SELECT语句中使用下列哪个关键字?BA.ALLB.DISTINCTC.SPOOLD.HAVING3.下列哪个关键字或子句用来限定查询结果集中的行?BA.SELECTB.WHEREC.UPDATED.INSERT4.GROUPBY子句的作用是什么?AA.查询结果的分组条件B.组的筛选条件C.限定返回的行的判断条件D.对结果集进行排序5.HAVING子句的作用是BA.查询结果的分组条件B.组的筛选条件C.限定返回的行的判断条件D.对结果集进行排序6.下列哪个函数可以把一个列中的所有值相加求和?BA.MAXB.SUMC.COUNTD.AVG7.下列哪个子句是SELECT语句中必选项?AA.FROMB.WHEREC.HAVINGD.ORDERBY8.当使用三角函数COS求余弦时,应以B为单位传递参数。A.角度B.弧度C.角度和弧度均可D.上述都不对9.下列哪个子句实现对一个结果集进行分组和汇总?DA.HAVINGB.ORDERBYC.WHERED.GROUPBY 10.查询一个表的总记录数,可以采用C统计函数。A.AVG(*)B.SUM(*)C.COUNT(*)D.MAX(*)第四章1.要建立一个语句向Types表中插入数据,这个表只有两列,T_ID和T_Name列。如果要插入一行数据,这一行的T_ID值是100,T_Name值是FRUIT。应该使用的SQL语句是A。A.INSERTINTOTypesValues(100,"FRUIT")B.SELECT*FROMTypesWHERET_ID=100ANDT_Name="FRUIT"C.UPDATESETT_ID=100FROMTypesWHERET_Name="FRUIT"D.DELETE*FROMTypesWHERET_ID=100ANDT_Name="FRUIT"2.用A语句修改表的一行或多行数据。A.UPDATEB.SETC.SELECTD.WHERE3.要建立一个UPDATE语句更新表的某一列数据,且更新的数据为表统计的结果。则需要在UPDATE语句中使用什么语句?CA.UPDATEB.SETC.SELECTD.WHERE4.DELETE语句中用B语句或子句来指明表中所要删除的行。A.UPDATEB.WHEREC.SELECTD.INSERT5.使用什么命令可以清除表中所有的内容?DA.INSERTB.UPDATEC.DELETED.TRUNCATE6.如果要设置SQL*Plus每页打印的数量,则可以使用如下的哪个命令?CA.SETPAGEB.PAGESIZEC.SETPAGESIZED.SIZE7.以下的哪个命令可以将SQL命令保存到文件中A。而哪个命令可以将SQL命令的运行结果保存到文件中B。A.SAVEB.SPOOLC.GETD.INPUT第五章1.下列哪个对象属于模式对象?CA.数据段B.盘区C.表D.表空间2.关于模式的描述下列哪一项不正确?CA.表或索引等模式对象一定属于某一个模式B.B.在Oracle数据库中,模式与数据库用户是一一对应的C.一个表可以属于多个模式D.一个模式可以拥有多个表3.如果一个表中某条记录的一个字段暂时不具有任何值,那么在其中将保存什么内容?CA.空格字符B.数字0C.NULLD.该字段数据类型的默认值4.下列哪一项不是伪列ROWID的作用?DA.保存记录的物理地址B.快速查询指定的记录C.标识各条记录D.保存记录的头信息5.下列哪一项错误地描述了默认值的作用?BA.为表中某列定义默认值后,如果向表中添加记录而未为该列提供值,则使用定义的默认值代替B.如果向表中添加记录并且为定义默认值的列提供值,则该列仍然使用定义的默认值 C.如果向表中添加记录并且为定义默认值的列提供值,则该列使用提供的值D.向表中添加记录时,如果定义默认值的列提供值为NULL,则该列使用NULL值6.某用户需要创建一个很小的表,但是该表会被许多查询使用,这时用户应当在创建该表时指定下列哪个子句?BA.PCTFREE和PCTUSEDB.CACHEC.NOLOGGINGD.TABLESPACE7.为了减少表中的链接记录和迁移记录,应当增大表的哪一个存储参数?AA.PCTFREEB.PCTUSEDC.MAXEXTENTSD.PCTINCREASE8.唯一约束与主键约束的一个区别是?DA.唯一约束的列的值不可以有重复值B.唯一约束的列的值可以不是唯一的C.唯一约束的列不可以为空值D.唯一约束的列可以为空值9.如果为表Employee添加一个字段Email,现在规定每个雇员都必须具有唯一的Email地址,则应当为Email字段建立哪种约束?BA.PrimaryKeyB.UNIQUEC.CHECKD.NOTNULL第六章1.下列哪一种连接与逗号分隔连接执行的效果相同?CA.外连接B.交叉连接C.自然连接D.内连接2.如果只需要返回匹配的列,则应当使用哪种连接?AA.内连接B.交叉连接C.左连接D.全连接3.下列SELECT语句中,哪些子句可以包含子查询?CA.SELECTB.GROUPBYC.WHERED.ORDERBY4.如果使用逗号分隔连接查询两个表,其中一表有20行,而另一个表有50行,如果未使用WHERE子句,则将返回多少行?BA.20B.1000C.50D.5005.下列的SELECT语句中哪个不能正常运行?DA.SELECTSTD,SNAME,SCLASS,CNAMEFROMSTUDENTS,CLASSCWHERESCLASS=CID;B.SELECT*FROMSTUDENTS,CLASSCWHERESCLASS=CID;C.SELECTS.SID,S.NAME,SCLASS,C.CNAMEFROMSTUDENTS,CLASSCWHERES.SCLASS=C.CID;D.SELECTS.SID,S.SNAME,SCLASS,C.CNAMEFROMSTUDENTWHERESCLASSSIN(SELECTCIDFROMCLASC);6.下面的ASELECT语句用于查询SCHOOL模式中的STUDENT、CLASS和DEPARTMENT表中的信息。完成该语句,使其可以正常运行。SELECTs.sname,s.saddress,c.cname,D.DNAME,D.DOFFICEFROMSTUDENTS_________CLASSC_________________DEPARTMENTDWHERED.DNAME="法律系";A.JOIN、ONS.SCLASS=C.CID、JOIN、OND.DID=C.DEPARTMENTB.NATURALJOIN、OND.DID=C.DEPARTMENT、JOIN、ONS.SCLASS=C.CID C.CROSSJOIN、ONS.SCLASS=C.CID、JOIN、OND.DID=C.DERPARTMENTD.JOIN、ONS.SCLASS=C.CID、NATURALJOIN、OND.DID=C.DEPARTMENT7.在下面各选项中,B与下面SELECT语句的查询结果相同。SELECTSID,SNAME,SADDRESSFROMSTUDENTWHERESCLASS="C0010545"ORSCLASSIN(SELECTCIDFROMCLASSWHEREDEPARTMENTIN(SELECTDIDFROMDEPARTMENTWHEREDNAME="化工系"));A.SELECTSID,SNAME,SADDRESSFROMSTUDENTWHERESCLASS="C0010545"INTERSECTSELECTSID,SNAME,SADDRESSFROMSTUDENTS,CLASSCWHERES.SCLASS=C.CIDANDC.DEPARTMENTIN(SELECTDIDFROMDEPARTMENTWHEREDNAME="化工系");B.SELECTSID,SNAME,SADDRESSFROMSTUDENTWHERESCLASS="C0010545"UNIONSELECTSID,SNAME,SADDRESSFROMSTUDENTS,CLASSCWHERES.SCLASS=C.CIDANDC.DEPARTMENTIN(SELECTDIDFROMDEPARTMENTWHEREDNAME="化工系");C.SELECT*FROMSTUDENTWHERESCLASS="C0010545"UNIONSELECT*FROMSTUDENTS,CLASSCWHERES.SCLASS=C.CIDANDC.DEPARTMENTIN(SELECTDIDFROMDEPARTMENTWHEREDNAME="化工系");D.SELECTSID,SNAME,SADDRESSFROMSTUDENTWHERESCLASS="C0010545"MINUSSELECTSID,SNAME,SADDRESSFROMSTUDENTS,CLASSCWHERES.SCLASS=C.CIDANDC.DEPARTMENTIN(SELECTDIDFROMDEPARTMENTWHEREDNAME="化工系");第七章1.以下定义的哪个变量是非法的?BA.var_abNUMBER(3);B.var_abNUMBER(3)NOTNULL:="0";C.var_abNUMBER(3)DEFAULT:=1;D.var_abNUMBER(3):=3;2.下列哪一个不是BOOLEAN变量可能的取值?DA.TRUEB.FALSEC.NULLD.BLANK3.只能存储一个值的变量是哪种变量?BA.游标B.标题变量C.游标变量D.记录变量4.声明%TYPE类型的变量时,服务器将会做什么操作?AA.为该变量检索数据库列的数据类型B.复制一个变量 C.检索数据库中的数据D.为该变量检索列的数据类型和值5.下列哪一项可以正确地引用记录变量中的一个值?BA.rec_abc(1);B.rec_abc(1).col;C.rec_abc.col;D.rec_abc.first();6.下列哪个语句允许检查UPDATE语句所影响的行数?BA.SQL%FOUNDB.SQL%ROWCOUNTC.SQL%COUNTDD.SQL%NOTFOUND7.在定义游标时使用的FORUPDATE子句的作用是BA.执行游标B.执行SQL语句的UPDATE语句C.对要更新表的列进行加锁D.都不对8.对于游标FOR循环,以下哪一种说法是不正确的?DA.循环隐含使用FETCH获取数据B.循环隐含使用OPEN打开记录集C.终止循环操作也就关闭了游标D.游标FOR循环不需要定义游标9.下列哪个关键字用来在IF语句中检查多个条件?BCA.ELSEIFB.ELSIFC.ELSIFD.ELSIFS10.如何终止LOOP循环,而不会出现死循环?CA.在LOOP语句中的条件为FALSE时停止B.这种循环限定的循环次数,它会自动终止循环C.EXITWHEN语句中的条件为TRUED.EXITWHEN语句中的条件为FALSE11.下列哪一项可以正确引用记录表变量中的一个值?BA.tab_abc(1);B.tab_abc(1).colC.tab_abc.col;D.tab_abc.first();12.如果PL/SQL程序块的可执行部分引发了一个错误,则程序的执行顺序将发生什么变化?AA.程序将转到EXCEPTION部分运行B.程序将中止运行C.程序仍然正常运行D.以上都不对第八章1.下列哪个语句可以在SQL*Plus中直接调用一个过程?DA.RETURNB.CALLC.SETD.EXEC2.下面哪些不是过程中参数的有效模式?CA.INB.INOUTC.OUTIND.OUT3.如果存在一个名为TEST的过程,它包含3个参数:第一个参数为P_NUM1,第二个参数为P_NUM2,第三个参数为P_NUM3。3个参数的模式都是IN。P_NUM1参数的数据类型是NUMBER,P_NUM2参数的数据类型是VARCHAR2,第三个参数的数据类型是VARCHAR2。下列哪一个是该过程的有效调用?DA.TEST(1010,P_NUM3=>"abc",P_NUM2=>"bcd")B.TEST(P_NUM1=>1010,P_NUM2=>""abc","bcd")C.TEST(P_NUM1=>1010,"abc","bcd")D.上述都对4.函数头部中的RETURN语句的作用是什么?AA.声明返回的数据类型B.声明返回值的大小和数据类型C.调用函数D.函数头部不能使用RETURN语句5.根据下面的匿名程序块,判断CHECK_VALUE程序单元是否为一个函数?DDECLAREV_TESTNUMBER;BEGINIFV_TEST>10THENCHECK_VALUE(V_TEST);ENDIF;END;A.可以为一个函数B.可以,但函数必须不包含任何SQL语句C.可以,但需要初始化变量V_TESTD.不可以 6.如果在程序包的主体中包括了一个过程,但没有在程序包规范中声明这个过程,那么它将会被认为是D。A.非法的B.公有的C.受限的D.私有的7.如果创建了一个名为USERPKG的程序包,并在程序包中包含了名为test的过程。下列哪一个是对这个过程的合法调用?BA.test(10)B.USERPKG.test(10)C.TEST.USERPKG(10)D.TEST(10).USERPKG8.可以引用哪个数据字典视图来查看软件包中包含的代码?CA.USER_OBJECTSB.USER_PACKAGE_TEXTC.USER_SOURCED.USER_TEXT9.对于下面的函数,哪个语句将成功地调用?DCREATEORREPLACEFUNCTIONCalc_Sum(Addend_Xnumber,Addend_Ynumber)ReturnnumberAsSumnumber;BEGINSum:=Addend_X+Addend_Y;ReturnSum;END;A.Calc_SumB.EXECUTECalc_Sum(45)C.EXECUTECalc_Sum(23,12)D.Sum:=Calc_Sum(23,12)10.当满足下列哪种条件时,允许两个过程具有相同的名称?BA.参数的名称或数量不相同时B.参数的数量或数据类型不相同时C.参数的数据类型和名称不相同时C.参数的数量和数据类型不相同时第九章1.假设两个数据文件t1和t2,下面的A选项可以完成外部表的创建。Createtabletest_table(ms_idvarchar(20),Tipvarchar(20),Descvarchar(20))ORGANIZATION______(_____ORACLE_LOADERDEFAULTDIRECTORYtest_dir_______Parameters(badfile"bad_dev.txt"LOGFILE"log_dev.txt"FIELDSTERMINATEDBY",")_________("F1.txt","F2.txt"));A.EXTERNAL、TYPE、ACCESS、LOCATIONB.INDEX、TYPE、ACCESS、LOCATIONC.EXTERNAL、TYPE、ACCEPT、LOADD.INDEX、TYPE、ACCEPT、LOAD2.下列关于索引组织表的说法哪项是错误的?DA.索引组织表所有的数据都是以B树索引的方式存储的B.索引组织表实际是一个表而不是索引C.索引组织表适用于经常需要通过主键字段的值来查询的情况D.索引组织表不能通过查询来创建3.下列关于对象的描述哪项是错误的?BA.为对象表添加数据时,可以在INSERT语句的VALUES子句中直接提供值,隐式创建对象类型实例,然后向表中添加数据;也可以显式创建对象实例后向表中添加数据B.对象表与其他类型的表一样,都是作为列的集合 C.对象表中的每个对象都有一个OID,OID是全局唯一的,表示每一个对象的实例D.查询对象表时,对象表中的数据以关系的形式显示,但也可以通过使用VALUE()函数以对象实例的形式显示4.下列哪一个语句可以用于创建一个多列的分区表?BA.Createtabletext_pt(IDNUMBER(20)notnull,Tipvarchar2(10),Re_datedate)Partitionbyrange(ID,re_date)(partitionp1valueslessthan(2000)orvalueslessthan(date"1988-1-1")Tablespaceusersstorage(initial100knext100kminextents1maxextentsunlimited),Partitionp2valueslessthan(maxvalue)orvalueslessthan(maxvalue)Tablespacesystemstorage(initial100knext100kminextents1maxextentsunlimited));B.Createtabletext_pt(IDNUMBER(20)notnull,Tipvarchar2(10),Re_datedate)Partitionbyrange(ID,re_date)(partitionp1valueslessthan(2000,date"1988-1-1")Tablespaceusersstorage(initial100knext100kminextents1maxextentsunlimited),Partitionp2valueslessthan(maxvalue,maxvalue)Tablespacesystemstorage(initial100knext100kminextents1maxextentsunlimited));C.Createtabletext_pt(IDNUMBER(20)notnull,Tipvarchar2(10),Re_datedate)Partitionbyrange(ID)Subpartitionbyrange(re_date)(partitionp1valueslessthan(2000)orvalueslessthan(date"1988-1-1")Tablespaceusers,Partitionp2valueslessthan(maxvalue)orvalueslessthan(maxvalue)Tablespacesystem);D.Createtabletext_pt(IDNUMBER(20)notnull,Tipvarchar2(10),Re_datedate)Partitionbyrange(ID)Subpartitionbyrange(re_date)(partitionp1valueslessthan(2000,date"1988-1-1")Tablespaceusers,Partitionp2valueslessthan(maxvalue,maxvalue)Tablespacesystem);5.假设要对“商品信息”表进行分区处理,并且根据商品的产地进行分区,则应采用下列哪 一种分区方法?CA.范围分区B.散列分区C.列表分区D.组合范围散列分区6.下列哪一项是关于簇和簇表不正确的描述?DA.簇实际上是一组表B.因为簇将不同表的相关行一起存储到相同的数据块中,所以合理使用簇可以帮助减少查询数据所需的磁盘读取量C.簇表是簇中某一个表D.在创建簇和簇表之后就可以向其中添加数据第十章1.查看下面的语句创建了哪一种索引?CCREATEINDEXtest_indexONstudent(stuno,sname)TABLESPACEusersSTORAGE(INITIAL64k,next32k);A.全局分区索引B.位图索引C.复合索引D.基于函数的索引2.使用ALTERINDEX...REBUILD语句不可以执行下面的哪个任务?DA.将反向键索引重建为普通索引B.将一个索引移动到另一个表空间C.将位图索引更改为普通索引D.将一个索引分区移动到另一个表空间3.下列关于约束与索引的说法中,哪一项是不正确的?DA.在字段上定义PRIMARTKEY约束时会自动创建B树唯一索引B.在字段上定义UNIQUE约束时会自动创建一个B树唯一索引C.默认情况下,禁用约束会删除对应的索引,而激活约束会自动重建相应的索引D.定义FOREIGNKEY约束时会创建一个B树唯一索引4.假设EMPLOYEE表包含一个MARRIAGE列,用于描述职工的婚姻状况,则应该在该字段上创建什么类型的索引?DA.B树唯一索引B.B树不唯一索引C.基于函数的索引D.位图索引5.下列关于索引的描述哪一项是不正确的?BA.表是否具有索引不会影响到所使用的SQL编写形式B.在为表创建索引后,所有的查询操作都会使用索引C.为表创建索引后,可以提高查询的执行速度D.在为表创建索引后,Oracle优化器将根据具体情况决定是否采用索引6.如果经常执行类似于下面的查询语句:SELECT*fromstudentwhereSubstr(sname,0,2)="刘"应当为student表中的sname列创建哪一种类型的索引?DA.B树唯一索引B.位图索引C.B树不唯一索引D.基于函数的索引7.假设在一个表的3个字段NAME、SEX和MONTH_OF_BIRTH中分别保存姓名、性别和出生的月份数据,则应当为这3个字段分别创建何种类型的索引?DA.全部创建B树索引B.全部创建位图索引C.分别创建B树索引、位图索引和位图索引D.分别创建B树索引、位图索引和基于函数的索引8.如果创建的表其主键可以自动编号,则应该为主键创建的索引是哪种类型?AA.反向键索引B.B树索引C.位图索引D.基于函数的索引第十一章1.如果允许用户对视图进行更新和插入操作,但是又要防止用户将不符合视图约束条件的记 录添加到视图,应当在定义视图时指定下列哪一个子句?CA.WITHGRANTOPTIONB.WITHREADONLYC.WITHCHECKOPTIOND.WITHCHECKONLY2.在下列模式对象中,哪个对象不会占用实际的存储空间?AA.视图B.表C.索引D.簇3.如果想查看视图中哪些字段是可以更新的,应当查询哪一个数据字典视图?DA.DBA_VIEWSB.DBA_OBJECTSC.DBA_CLU_COLUMNSD.DBA_UPDATABLE_COLUMNS4.在下列各选项中,关于序列的描述哪一项是不正确的?DA.序列是Oracle提供的用于产生一系列唯一数字的数据库对象B.序列并不占用实际的存储空间C.使用序列时,需要用到序列的两个伪列NEXTVAL与CURRVAL。其中,NEXTVAL将返回序列生成的下一个值,而CURRVAL返回序列的当前值D.在任何时候都可以使用序列的伪列CURRVAL,以返回当前序列值5.在下列各选项中,关于同义词的描述哪一项是不正确的?BA.同义词是数据库对象的一个替代名,在使用同义词时,Oracle会将其翻译为对应的对象名称B.在创建同义词时,所替代的模式对象必须存在C.Oracle中的同义词分为公有同义词和私有同义词D.公有同义词在数据库中所有的用户都可以使用;私有同义词由创建它的用户所拥有第十二章1.下列哪一个动作不会激发一个触发器?BA.更新数据B.查询数据C.删除数据D.插入数据2.在使用CREATETRIGGER语句创建行级触发器时,哪一个语句用来引用旧数据?DA.FOREACHB.ONC.REFERENCINGD.OLD3.在创建触发器时,哪一个语句决定了触发器是针对每一行执行一次,还是针对每一个语句执行一次?AA.FOREACHB.ONC.REFERENCINGD.NEW4.替代触发器可以被附加到哪一类数据库对象上?CA.表B.序列C.视图D.簇5.下列哪个语句用于禁用触发器?CA.ALTERTABLEB.MODIFYTRIGGERC.ALTERTRIGGERD.DROPTRIGGER6.条件谓词在触发器中的作用是D。A.指定对不同事件执行不同的操作B.在UPDATE中引用新值和旧值C.向触发器添加WHEN子句D.在执行触发器前必须满足谓词条件7.可以使用哪个子句来更改相关性标识符的名称?AA.REFERENCINGB.WHENC.INSTEAD-OFD.RENAME8.下列哪个相关性标识符是可用的,并且包括了DELETE触发器中要更新的值?BA.OLDB.NEWC.REFERENCINGD.以上都不是 第十三章1.下列关于提交事务的叙述哪一项是正确的?AA.事务提交后,它对数据库所做的修改将永久保存到数据库中B.在事务提交后,还可以使用回滚语句取消它所做的操作C.提交事务的响应速度与事务的规模有关D.提交事务时,并不意味着事务的结束,它只是对事务以前所做的工作进行保存而已2.下列哪个语句会终止事务?DA.SAVEPOINTB.ROLLBACKTOSAVEPOINGC.ENDTRANSACTIOND.COMMIT3.假如当前数据库有两个并发的事务,其中,第一个事务修改表中的数据,第二个事务在将修改提交约数据库前查看这些数据。如果第一个事务执行回滚操作,则会发生哪种读取现象?CA.假读B.非重复读取C.错读D.重复读4.当一个事务基于某些搜索条件读取一个数据表,第二个事务更新表中的数据,那么,当第一个事务再次读取数据时,返回的结果会因为搜索条件而返回不同的结果。这种现象叫做什么?AA.假读B.非重复读取C.错读D.重复读5.下列选项中,哪个选项用于设置事务的隔离层?AA.READONLYB.UPDATEC.LOCALD.ISOLATIONLEVELREADCOMMITTEDIS6.下列哪一个锁模式不属于Oracle?DA.共享锁B.排他锁C.行级共享锁D.死锁7.下列关于Oracle支持的锁粒度描述正确的是?AA.数据库级、表级、行级和列级B.数据库级、表级、行级C.行级、列级D.列级、表级8.在用SETTRANSACTION语句设置事务的属性时,为了确保事务中不会发生非重复读取和错读,但不考虑是否会发生假读,应使用哪个隔离层?DA.READCOMMITEB.SERIALIZABLEC.READWRITED.REPEATABLEREAD第十四章1.假设用户USER1的默认表空间为USERS,他在该表空间的配额为10MB,则USER1在USERS表空间创建基本表时,他应具有什么权限?AA.CREATETABLEB.CREATEUSERC.UNLIMITEDTABLESPACED.LIMITEDTABLESPACE2.下列哪一项资源不能在用户配置文件中限定?BA.各个会话的用户数B.登录失败的次数C.使用CPU时间D.使用SGA区的大小3.检查下面的SQL语句,哪一项是错误的?BAlterusertempuseridentifiedbyoracledefaulttablespaceusersdefaulttemporarytablespacetempquota100Monusers;A.defaulttablespaceusersB.defaulttemporarytablespacetempC.quota100MonusersD.identifiedbyoracle4.下面哪一个不是系统权限?CA.SELECTTABLEB.ALTERTABLEC.SYSDABD.CREATEINDEX5.想在另一个模式中创建表,用户最少应该具有什么系统权限?B A.CREATETABLEB.CREATEANYTABLEC.RESOURCED.DBA6.用户查询下列哪一个数据字典视图,可以查看他向其他用户授予的对象权限?CA.DBA_SYS_PRIVSB.USER_TAB_PRIVS_MADEC.USER_TAB_PRIVSD.USER_OBJ_PRIVS7.下面哪个系统预定义角色允许一个用户创建其他用户?BA.CONNECTB.DBAC.RESOURCED.SYSDBA8.如果要启用所有角色,则应该使用哪一个命令?AA.SETROLEALLB.SETROLEENABLEALLC.ALTERSESSIONALLD.ALTERUSERROLEALL第十五章1.在创建表空间时,可以指定表空间中存储对象的默认存储参数,其中A参数用于设置分配给每一个对象的初始区大小。A.INITIALB.NEXTC.PCTINCREASED.MINEXTENTS2.把一个表空间切换到OFFLINE状态时,可以使用4个参数,不包括下列哪一个选项?DA.IMMEDIATEB.NORMALC.TEMPORARYD.FORCE3.在设置撤销表空间的自动管理功能时,DBA通过使用相关的初始化参数对自动撤销表空间进行配置。下面的4个参数中,哪一个不是与自动撤销管理功能相关的参数?DA.UNDO_MANAGEMENTB.UNDO_TABLESPACEC.UNDO_RETENTIOND.TRANSACTIONS4.下面哪一个参数不能在STORAGE子句中进行设置?BA.INITIALB.PCTUSEDC.MINEXTENTSD.NEX5.Oracle数据库的最小I/O单位是D,最小磁盘分配单位是C.A.表空间B.段C.盘区D.数据块6.在设置自动撤销管理时,下列B参数用于设置所使用的撤销表空间,C参数用于设置撤销数据的保留时间。A.UNDO_MANAGEMENTB.UNDO_TABLESPACEC.UNDO_RETENTIOND.ROLLBACK_SEGMENTS'