一、单项选择题1.在Windows操作系统中,Oracle的(A)服务监听并接受来自客户端应用程序的连接请求。A.OracleHOME_NAMETNSListenerB.OracleServiceSIDC.OracleHOME_NAMEAgentD.OracleHOME_NAMEHTTPServer2.以下内存区不属于SGA的是(A)A.PGAB.日志缓冲区C.数据缓冲区D.共享池3.下列哪个选项不是物理结构中的对象(C)A.数据文件B.重做日志文件C.表空间D.控制文件4.在创建数据库时,必需的表空间是(B)A.TEMPTABLESPACEB.SYSTEMTABLESPACEC.USERSTABLESPACED.ROLLBACKTABLESPACE5.使用哪一条SHUTDOWN语句关闭数据库时,下次打开数据库是需要做恢复操作(C)A.SHUTDOWNTRANSACTIONALB.SHUTDOWNIMMEDIATEC.SHUTDOWNABORTD.SHUTDOWNNORMAL6.下列哪个进程不是Oracle必须的后台进程(D)A.DBWR数据写入进程B.LGWR日志写入进程C.SMON系统监视进程D.ARCn日志归档进程7.下列选项中,哪一部分不是Oracle实例的组成部分?(C)A.系统全局区SGAB.PMON后台进程C.控制文件D.Mnnn调度进程8.如果服务器进程无法在数据缓冲区中找到空闲块,以添加从数据文件中读出的数据块,则系统会启动如下哪一个进程(D)A.CKPTB.SMONC.LGWRD.DBWR9.在默认情况下,检查点的发生频率至少与下列哪个事件的发生次数一致?(A)A.重做日志切换B.执行UPDATE语句C.执行INSERTD.SMON合并表空间中的碎片10.ORACLE中,用来判断列值是否为空的操作符是(B)A==NULLBISNULLCASNULLDNULLIS11.在CUSTOMER中有一列为单价(PRICE),写一个SELECT命令显示所有单价在500以上的查询语句(D)。ASELECT*FROMCUSTOMERWHEREPRICEMORETHAN500;BSELECT*FROMCUSTOMERWHEREPRICEBETWEEN500AND*;CSELECT*FROMCUSTOMERWHEREPRICELIKE'%500%';DSELECT*FROMCUSTOMERWHEREPRICE=500;12.分析以下SQL命令:SELECTpriceFROMinventoryWHEREpriceBETWEEN1AND50AND(priceIN(55,30,95);命令执行后的最可能的输出结果是:(B)A55B30C95D5113.以下需求中哪个需要用分组函数来实现?(C)A.把ORDER表中的定单时间显示成'DDMONYYYY'格式B.把字符串'JANUARY28,2000'转换成日期格式C.显示PRODUCT表中的COST列值总量D.把PRODUCT表中的DESCRIPTION列用小写形式显示14.在Oracle中,使用HAVING子句也可以进行条件查询,以下选项说法是正确的是(C).A.HAVING子句和WHERE子句相同B.HAVING子句用于行的条件查询C.HAVING子句用于已分组结果的条件查询D.以上皆非15.下列哪个动作不会激发一个触发器?(D)A.更新数据B.查询数据C.删除数据D.插入数据16.公用的子程序和常量在(C)中声明。A.过程B.游标C.包规范D.包主体17.在列的取值重复率比较高的列上,适合创建(A)索引。A.标准B.唯一C.分区D.位图18.Oracle中,当需要使用显式游标更新游标中的行时,声明游标时指定的SELECT语句必须带有(C)子句。A.WHERECURRENTOFB.INTOC.FORUPDATED.ORDERBY19.关于触发器,下列说法正确的是(B)A.可以在表上创建INSTEADOF触发器B.语句级触发器不能使用“:old”和“:new”C.行级触发器不能用于审计功能D.触发器可以显式调用20.当表的重复行数据很多时,应该创建的索引类型应该是(C)A.B树B.reverseC.bitmapD.函数索引21.在建表时如果希望某列的值,在一定的范围内,应建什么样的约束?(C)A.primarykeyB.uniqueC.checkD.notnull22.关于存储过程参数,正确的说法是(B)A.存储过程的输出参数可以是标量类型,也可以是表类型B.存储过程输入参数可以不输入信息而调用过程C.可以指定字符参数的字符长度(函数的()或者过程的(number/varchar2))D.以上说法都不对23.(C)锁用于锁定表,允许其他用户查询表中的行和锁定表,但不允许插入,更新和删除行。A.行共享B.行排他C.共享D.排他24.带有(B)字句的SELECT语句可以在表的一行或者多行上放置排他锁。A.FORINSERTB.FORUPDATEC.FORDELETED.FORREFRESH25.在链接视图中,当(B)时,该基表被称为键保留表。A.基表的主键不是结果集的主键B.基表的主键是结果集的主键C.基表的主键是结果集的外键D.基表的主键不是结果集的外键26.要有自身的模式创建私有同义词,用户必须拥有(C)系统权限。A.CREATEPRIVATESYSNONYMB.CREATEPUBLICSYSNONYMC.CREATESYSNONYMD.CREATEANYSYSNONYM27.PL/SQL块中不能直接使用的SQL命令是(D)。A.selectB.insertC.updateD.drop28.要更新游标结果集中的当前行,应使用(A)字句。A.WHERECURRENTOFB.FORUPDATEC.FORDELETED.FORMODIFY29.用于处理得到单行查询结果的游标为(B)。A.循环游标B.隐式游标C.REF游标D.显示游标30.公用的子程序和常量在(C)中声明。A.过程B.游标C.包规范D.包主体31.(A)触发器允许触发操作中的语句访问列的列值。A.行级B.语句级C.模式D.数据库级32.在非归档日志方式下操作的数据库禁用了(A)A.归档日志B.联机日志C.日志写入程序D.日志文件33.以下哪种备份方式需要在完全关闭数据库进行(A)A.无归档日志模式下的数据库备份B.归档日志模式下的数据库备份C.使用导出实用程序进行逻辑备份D.以上都不对34.Oracle数据库的物理文件不包括(D)A.数据文件(*.dbf)B.重做日志文件(*.log)C.控制文件(*.ctl)D.缓存文件35.下列函数的写法中,可以去掉字符串左侧空格的是()A.LTRIM('ABCD')B.LTRIM('ABCD','A')C.RTRIM('ABCD')D.RTRIM('ABCD','D')36.下列语句中可以解除SCCE用户的锁定的语句是(B)A.AlteruserscceunlockB.AlteruserscceaccountunlockC.AltertablealterscceunlockD.Altertablealterunlockscce37.下列选项中,关于同义词的说法正确的是(D)A.序列一旦创建,就可以立即使用CURRVAL列B.在引用序列的CURRVAL列前,必须引用一次NEXTVAL列C.可以修改序列的起始值D.创建序列的CACHE关键字用于指定是否在缓存中预选分配序列号38.下列选项中,关于索引的说法正确的是(C)A.创建索引后,Oracle就会在查询中使用索引B.可以在基数很小的列上创建索引,以提高查询效率C.可以在需要使用LIKE模糊查询的列上创建B树索引,以提高查询效率D.函数索引是指在SQL查询的函数中使用索引二、填空题1.Oracle服务器是由(物理数据库)和(数据库关系系统)两部分所组成。2.Oracle服务器提供两种服务方式,分别是专用服务器操作方式和(共享服务器操作方式)。3.启动Oracle服务器实例的过程,可以分为(启动到nomount状态)、(启动到mount状态)、(启动到open状态)三个阶段。4.Oracle的后台进程中,(DRWK)进程负责将更改的数据从数据库缓冲区高速缓存写入数据文件;(CKPT)进程负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。5.在Oracle中,使用(desl)命令可显示表的结构,使用(updata)命令可快速删除表中的所有数据而保留表的结构不变。6.Oracle数据库中,生成唯一、连续的整数的对象是(SEQUENCE(序列))。7.pl/sql中,对变量进行赋值,除了使用赋值符号“:=”外,还可以使用(SELECT···INTO)语句。8.在Oracle数据库中,完整性约束类型有:(主键约束)、(唯一键约束)、(外键约束)、(check约束)、(notNULL约束)。9.PL/SQL程序中,用户自定义异常是通过显式使用(raise)语句来触发的;查看操作在数据表中所影响的行数,可通过游标的(%ROWCOUNT)属性实现。10.Oracle中,进行逻辑备份与恢复时使用的导出命令是(EXP);导入命令是(IMP)。11.填写下面的语句,使其可以为Class表的ID列添加一个名为PK_CLASS_ID的主键约束:ALTERTABLEClassAdd(CONSTRAINT)PK_CLASS_IDPRIMARYKEY((ID));12.pl/sql中游标操作包括:(定义游标)、(打开游标)、(提取游标数据)、(关闭游标)。13.Oracle为了实现对表、视图和索引等数据库对象的管理,采用(模式)实现。14.DML触发器,按照DML操作影响的记录范围,可以分为(After触发器)和(InsteadOf触发器)两类。三、程序阅读题1.DECLAREvar_anumber:=1200;var_bnumber;BEGINIFvar_a500THENvar_b:=5;ELSIFvar_a1000THENvar_b:=10;ELSEvar_b:=8;ENDIF;Dbms_output.put_line(var_b);END;/程序运行结果:(5)2.setserveroutputondeclarectrinteger:=0;beginwhilectr5loopdbms_output.put(ctr+1||'');ctr:=ctr+1;endloop;end;/程序运行结果:(12345)3.setserveroutputondeclaresummnumber:=0;Inumber(3):=10;beginwhileI0loopsumm:=summ+i;I:=I-1;endloop;dbms_output.put_line(summ);end;/程序运行结果:(55)4.DECLAREv_weightNUMBER(3):=100;BEGINDECLAREv_weightNUMBER(3):=1;BEGINv_weight:=v_weight+2;END;v_weight:=v_weight+1;DBMS_OUTPUT.PUT_LINE('V_weight='||to_char(v_weight));END;/程序运行结果:(V_weight=101)四、程序填空题1.以下程序段实现的是从employee表中读取员工姓名(ename)和薪资(sal),并使用游标逐行比较,将薪资值在1000-3000之间的员工姓名和薪资输出。declare(cursorc_emp_cursor)--定义游标c_emp_cursoris(selectename,salfromemployee);v_enameemployee.ename%type;v_salemployee.sal%type;beginopenc_emp_cursor;--打开游标loop--遍历游标(fetch)c_emp_cu