2012下半年理工Oracle11g期末模拟试卷一、选择题(每空1分,共10分)1、SQL语言中不属于数据定义的命令动词是()A.CREATEB.DROPC.GRANTD.ALTER2、()SQL语句将为计算列SAL*12生成别名AnnualSalaryA.SELECTename,sal*12‘AnnualSalary’FROMemp;B.SELECTename,sal*12“AnnualSalary”FROMemp;C.SELECTename,sal*12ASAnnualSalaryFROMemp;D.SELECTename,sal*12ASINITCAP(“AnnualSalary”)FROMemp;3、带有错误的视图可使用()选项来创建。A.FORCEB.WITHCHECKOPTIONC.CREATEVIEWWITHERRORD.CREATEERRORVIEW4、要以自身的模式创建私有同义词,用户必须拥有()系统权限A.CREATEPRIVATESYNONYMB.CREATEPUBLICSYNONYMC.CREATESYNONYMD.CREATEANYSYNONYM5、PL/SQL块中不能直接使用的SQL命令是()。A.SELECTB.INSERTC.UPDATED.DROP6、用于处理得到单行查询结果的游标为()。A.循环游标B.隐式游标C.REF游标D.显式游标7、公用的子程序和常量在()中声明。A.过程B.游标C.包说明D.包主体8、以下不属于命名的PL/SQL块的是()。A.程序包B.过程C.游标D.函数9、以下哪种备份方式需要在完全关闭数据库进行()。A.无归档日志模式下的数据库备份B.归档日志模式下的数据库备份C.使用导出实用程序进行逻辑备份D.以上都不对10、()参数用于确定是否要导入整个导出文件。A.CONSTRAINTSB.TABLESC.FULLD.FILE二、填空题(每空2分,共20分)1、SYS用户以管理员身份登录后,要授予用户MARTIN可以对SCOTT用户的EMP表进行查询的权限,请写出授权命令:(假设MARTIN用户已存在)_________________________[1]_____________________;2、完成以下PL/SQL块,功能是:显示2到50的25个偶数。BEGINFOR____[2]_____IN____[3]_____LOOPDBMS_OUTPUT.PUT_LINE(even_number*2);ENDLOOPEND;3、完成以下PL/SQL块,功能是:使用游标,显示所有单价低于250元的玩具的单价。DECLAREmy_toy_pricetoys.toyprice%TYPE;CURSORtoy_curISSELECTtoypriceFROMtoysWHEREtoyprice250;BEGIN________[4]_______LOOP_______________[5]_____________EXITWHENtoy_cur%NOTFOUND;DBMS_OUTPUT.PUT_LINE(toy_cur%ROWCOUNT||'.玩具单价:'||my_toy_price);ENDLOOP;CLOSEtoy_cur;END;4、完成以下PL/SQL块,功能是:创建一个函数dept_name,其功能是接受职员编号后返回职员所在部门名称。(注:部门名称在dept表中,而职员信息在emp表中,职员所在部门号的列名为deptno)CREATEORREPLACEFUNCTIONdept_name(emp_noNUMBER)RETURNVARCHAR2ASdept_noNUMBER(2);resultdept.dname%TYPE;BEGIN___________________[6]_____________________________SELECTdnameINTOresultFROMdeptWHEREdeptno=dept_no;________[7]__________;EXCEPTIONWHENOTHERSTHENRETURNNULL;END;5、完成以下PL/SQL块的功能是:创建一个触发器biu_job_emp,无论用户插入记录,还是修改EMP表的job列,都将用户指定的job列的值转换成大写。CREATEORREPLACETRIGGERbiu_job_emp_________________[8]____________________________[9]_______BEGIN:NEW.job:=______[10]_____;END;三、简答题(每题6分,共30分。)1.给出数据的相关约束类型?2.解释FUNCTION,PROCEDURE和PACKAGE区别?3.解释归档和非归档模式之间的不同和它们各自的优缺点?4.简单介绍表空间,并写出一种建立表空间的方法?5.解释冷备份和热备份的不同点以及各自的优点?四、程序题(共40分)一、设有雇员表emp(empno,ename,age,sal,tel,deptno),其中:empno-----编号,name------姓名,age-------年齡,sal-----工资,tel-----电话,deptno-----部门号。请按下列要求分别晨SQL*PLUS下编程。(每小题3分,共15分)1.查询家有电话的职工信息。2.查询工资在500至800元之间的雇员信息3.按年龄递增顺序显示雇员编号、姓名、年龄、工资4.求部门号为D_01的平均工资5.查找部门号为D_01的40岁以上而工资在400元以下的雇员名单二、设关系模式SCG(S#,C#,grade)中S#为学生号,C#为课程号,grade为某学生学某号课程的考试成绩。今要查询平均分数超过80分的课程的平均成绩,且要求查询的结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列。写出SQL查询。(5分)三、综合题(共20分)已知在数据库中有下列表:学生表(student)字段名类型约束学号number(6)主键姓名varchar2(25)非空性别char(2)只取男、女出生日期date班级编码number(10)与班级表中班级编码外键关联,级联删除班级表(class)字段名类型约束班级编码number(10)主键班级名varchar2(20)非空字段名类型约束课程编码char(5)主键课程名char(20)非空字段名类型约束课程表(course)成绩表(score)(1)创建表空间名称为STUDENT(3分)要求:表空间文件大小为50M,最大尺寸不受限制。初始空间大小为1M,下一区间大小为1M,增长率5,最小区间数1,最大区间数50。(2)更改SYSTEM用户的默认表空间为STUDENT;(2分)(3)a.写出建立学生表的命令,注意建立相应的约束(3分)b.写出创建成绩表的命令,注意建立相应的约束。(3分)(4)修改学生表的学号字段,数据类型为数值类型,8位有效数字。(2分)(5)在表空间上创建教师用户,并为教师用户授予查询成绩表的权限(4分)(6)为学生表的姓名列创建索引student_index,指定索引的物理和存储特征值:表空间index;PCTFREE40%;事务处理初始值1。(3分)课程编码number(10)主键课程名varchar2(20)非空字段名类型约束学生编码number(6)主键,与学生表中学号外键关联,级联删除课程编码number(10)主键,与课程表中课程编码外键关联成绩number(3,2)答案一、选择题1.C2.B3.A4.C5.D6.B7.C8.C9.A10.C二、填空题[1]grantselectontablescott.emptomartin[2]even_numbe[3]1..25[4]OPENtoy_cur[5]FETCHtoy_curINTOmy_toy_price;[6]SELECTdeptnoINTOdept_noFROMempWHEREempno=emp_no;[7]RETURNresult;[8]BEFOREINSERTORUPDATEOFjobONemp[9]FOREACHROW[10]UPPER(:NEW.job)三、简答题1.主键约束,外键约束,唯一约束,非空约束,检查约束。2.function和procedure都是PL/SQL代码的集合,通常是为了完成一个任务。procedure不需要返回任何值而function至少将返回一个值,在另一方面,package是为了完成一个商业功能的一组function和procedure的集合。3.归档模式是指可以备份所有的数据库,并恢复到任意一个时间点。非归档模式则相反,不能恢复到任意一个时间点,但是非归档模式可以带来数据库性能上的少许提高。4.表空间是Oracle逻辑存储结构的最高层,一个数据库就是若干个表空间组成的。每个表空间对应操作系统中的一个或多个数据文件,但每个数据文件只能属于一个表空间。Createtablespace表空间名datafile数据文件名;5.热备份是针对归档模式的数据库,在数据库仍处于工作状态时进行备份。而冷备份是指在数据库关闭后,进行备份,适用于所有模式的的数据库。热备份的优点在于当备份时,数据库仍处于可以被使用状态,且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,不必将archivelog写入硬盘,所以数据库性能会比归档模式稍微好。四、程序题一、1、SQLSELECT*FROMempWHEREtelNOTNULL;2、SQLSELECT*FROMempWHEREBETWEEN500AND800;3、SQLSELECTempno,ename,age,salFROMempORDERBYageASC;SQLSELEC4、SQLSELECTAVG(sal)FROMempWHEREdeptno='D_01';5、SQLSELECTenameFROMempWHEREdeptno='D_01'ANDage40AND。二、Selectc#,AVG(grade)FromSCGGROUPBYC#HavingAVG(grade)80orderby2,C#desc;三、1.createtablespace“student”DATAFILE‘D:\oracle\oradate\mybase\student.ora’size50MExtentmanagementdictionarydefaultstorage(initial1Mnext1Mminextentsmaxextents50pctincrease5)2.alteruser“system”defaulttablespace”student”3.a.createtablestudent(snonumber(6)primarykey,snamevarchar2(25)notnull,ssexchar(2)check(Ssexin('男','女')),sdtdate,cnonumber(10),foreignkey(clno)preferencesclass(clno));b.createtablescore(snonumber(6),cononumber(10),gradenumber(3,2),primarykey(sno,cono),foreignkey(sno)preferencesstudent(sno));4.altertablestudentaltercolumnsnonumber(8);5.createuserteacheridentifiedbyteacherdefaulttablespaceuserquota50Monusers;grantselectonscoretoteacher;6.createindexstudent_indexonstudent(sname)tablespace