1、考 生 信 息 栏 系 专业 级 班级 姓名 学号 装 订 线一、选择题:(本题共20个小题,每小题2分,共40分)1当Oracle服务器启动时,下列哪种文件不是必须的 ( ) 。 A. 数据文件 B. 控制文件 C. 日志文件 D. 归档日志文件 2. 在Oracle中,一个用户拥有的所有数据库对象统称为 ( )。 A. 数据库 B. 模式 C. 表空间 D. 实例3在 Oracle数据库的逻辑结构中有以下组件: 1.表空间 2. 数据块 3. 区 4. 段这些组件从大到小依次是( )。A. 1234 B.1432 C.1324 D. 41324.下列哪个子句实现对一个结果集进行分组和汇总(
2、 )。 A.HAVING B.ORDER BY C.WHERE D.GROUP BY5. 在Oracle数据库中,( )用户模式存储数据字典表和视图对象。 A. SYS B. SYSTEM C. SCOTT D. SYSDBA6.以下不属于命名的PL/SQL块的是( )。 A程序包 B过程 C游标 D函数7.在Oracle中创建用户时,若未提及DEFAULT TABLESPACE关键字,则Oracle就将( )表空间分配给用户作为默认表空间。 AHR BSCOTT CSYSTEM DSYS8在Windows操作系统中,Oracle的( )服务是使用iSQL*Plus必须的。 AOracleHO
3、ME_NAMETNSListener B. OracleServiceSID C. OracleHOME_NAMEAgent D. OracleHOME_NAMEHTTPServer9.下列哪个语句可以在SQL*Plus 中直接调用一个过程( )。 A. RETURN B. CALL C. SET D. EXEC10如果服务器进程无法在数据缓冲区中找到空闲块,为添加从数据文件中读出的数据块,则系统会启动如下哪一个进程( ) A.CKPT B. DBWR C.LGWRD. SMON11.下列哪一个锁模式不属于Oracle( )。 A.死锁 B.排他锁 C.行级共享锁 D.共享锁12.有字符串数据
4、”test”分别存放到char(10)和varchar2(10)类型的字段中,其实际存储长度为( )A. 10 4 B. 4 4 C. 10 10 D. 4 1013在Oracle中,当控制一个显式游标时,下面哪种命令包含INTO子句( )。 A. FETCH B. CLOSE C. OPEN D.CURSOR 14. ORACLE中,用来判断列值是否为空的操作符是( )。 A. =NULL B. NULLIS C. AS NULL D. IS NULL15.查询一个表的总记录数,可以采用( )统计函数。 A. AVG(*) B. SUM(*) C. COUNT(*) D. MAX(*)16.
5、以下的哪个命令可以将SQL 命令的运行结果保存到文件中( )。 A.SAVE B.SPOOL C.GET D.INPUT17.为了去除结果集中重复的行,可在SELECT 语句中使用下列哪个关键字( ) 。A.ALL B.DISTINCT C.SPOOL D.HAVING18.关于模式的描述下列哪一项不正确( )。 A.表或索引等模式对象一定属于某一个模式B.在Oracle 数据库中,模式与数据库用户是一一对应的C.一个表可以属于多个模式D.一个模式可以拥有多个表19.下列SELECT 语句中,哪些子句可以包含子查询( )。 A.SELECT B.GROUP BY C.WHERE D.ORDER
6、 BY20.在下列模式对象中,哪个对象不会占用实际的存储空间( )。 A.视图 B.表 C.索引 D.簇二、填空题(共8小题,10空需要填写,每空1分,共10分)1. _是具有名称的一组相关权限的组合。 2. 一个表空间物理上对应一个或多个_文件。3.标准的SQL 语言语句类型可以分为:_、数据操纵语句(DML)和_。 4. 如果需要向表中插入一批已经存在的数据,可以在INSERT 语句中使用_ 语句。5.通过视图修改数据时,实际上是在修改_中的数据。6.如果需要向表中插入一批已经存在的数据,可以在INSERT 语句中使用_语句。7.在众多的事务控制语句中,用来撤销事务的操作的语句为_,用于持
7、久化事务对数据库操作的语句是_。8. 在多进程Oracle 实例系统中,进程分为_、后台进程和服务器进程。三、程序填空(共10小题,10空需要填写,每空3分,共30分)1. 假设当前用户是SCOTT用户以普通用户登录,口令为tiger,请写出该用户以管理员身份登录的命令_;2.假设用户SCOTT以管理员身份登录,现需创建用户Lisa,口令是Lisa,请写出相应的命令_;3. 假设用户SCOTT以管理员身份登录,已知用户账号Lisa被锁定,需为他解除锁定,请写出相应的命令_; 4. 假设用户SCOTT以管理员身份登录,需授予用户Lisa对SCOTT用户模式下的EMP表进行查询(SELECT)的权
8、限,请写出相应的命令_;5. 假设用户SCOTT以管理员身份登录,在SQL Plus的SQL提示符下,希望用户Lisa用Lisa以普通用户身份登录到系统,请写出相应的命令_; 6. 假设用户Lisa用Lisa以普通用户身份登录到系统,现需查看本用户下的Class表的结构,请写出相应的命令_; 7. 假设用户Lisa用Lisa以普通用户身份登录到系统,用命令select * from Class查询Class表中的数据,现需将缓冲区中的SQL 命令保存到C盘根目录下的class.txt文件中, 请写出相应的命令_; 8. 假设用户Lisa用Lisa以普通用户身份登录到系统,现需查看本用户下有哪些
9、表,请写出相应的命令_; 9. 假设用户Lisa用Lisa以普通用户身份登录到系统,现需为Class 表的ID 列添加一个名为PK_CLASS_ID 的主键约束,请补充完整相应的命令ALTER TABLE Class_; 10. 假设用户Lisa用Lisa以普通用户身份登录到系统,现需创建一个UPDATE 语句来修改本用户下ARTISTS 表中的数据,并且把每一行的T_ID 值都改成15,应该使用的SQL 语句是_ ;四、 编程题:(本题共2小题,每题10分,共20分)1. 请按要求完成以下程序的编写。(5空,每空2分,共10分)以下存储过程借助游标用于实现对员工工资(Sal)的调整,调整方案
10、为:对于员工号(empno)在7000到7200间的员工,若其原工资在1000之下,则加薪20%。(1) 请完成以下程序:CREATE OR REPLACE PROCEDURE Rise_salISv_empno Emp.empno%type;v_sal Emp.sal%type;V_ErrorText Varchar(200);CURSORcursor_sal /定义游标CURSOR cursor_sal IS _ / BEGIN_; /打开游标LOOPFETCH cursor_sal _; EXIT WHEN cursor_sal%NOTFOUND;/逐行提取数据IF v_sal_”命令提
11、示符下,现需执行存储过程Rise_sal,请写出命令:_ 2. 创建一个函数get_sal,用于实现对表Emp(如下图)给定一个员工号(Empno),通过函数获取该雇员的工资值 ,请完成以下程序。(1)请将函数get_sal补充完整 (3空,每空2分,共6分)CREATE OR REPLACE FUNCTION get_sal (v_emp_no IN emp.empnoTYPE)_ IS_ emp.salTYPE:0; BEGIN SELECT sal INTO v_emp_sal FROM emp WHERE empno=_; RETURN(v_emp_sal);END get_sal;(
12、2)用函数get_sal查询员工7521号的工资,请写出一种查询方式。(4分)课程名称一、选择题:(本题共20小题,每题2分,共40分)题号12345题号678910答案DBBDA答案CCBDD题号1112131415题号1617181920答案AAACC答案B B CCA二、填空题(本大题共8小题,10空,每空1分,共10分)题号答 案1-2角色数据3数据定义语句(DDL)数据控制语句(DCL)4select5-6基本表select7ROLLBACKCOMMIT8用户进程三、程序填空题(共10小题,10空需要填写,每空3分,共30分)题号答 案1conn scott/tiger as sys
13、dba;2create user Lisa identify by Lisa3alter user Lisa account unlock;4grant select on emp to Lisa;5conn Lisa/Lisa;6desc Class;7save C:class.txt;8select table_name from user_tables;9Add constraint PK_CLASS_ID PRIMARY KEY(ID) ;10update artists set T_ID =15;四、编程题(本大题共2小题,每题10分,共20分)1. (5空,每空2分,共10分) (1)SELECTempno,sal FROM employee WHEREempno BETWEEN 7300 AND 7600;(2) OPEN cursor_sal (3) INTO v_empno,v_sal(4) COMMIT;(5) EXEC Rise_sal;2. (1)请将函数get_sal补充完整 (3空,每空2分,共6分)RETURN NUMBERv_emp_salv_emp_no(2) 用函数get_sal查询员工7521号的工资,请写出一种查询方式。(4分)Select get_sal (7521)from dual;