内容发布更新时间 : 2024/11/15 14:37:56星期一 下面是文章的全部内容请认真阅读。
考 生 信 息 栏 系 专业 级 班级 姓名 学号 装 订 线 一、选择题:(本题共20个小题,每小题2分,共40分) 1当Oracle服务器启动时,下列哪种文件不是必须的 ( ) 。 A. 数据文件 B. 控制文件 C. 日志文件 D. 归档日志文件 2. 在Oracle中,一个用户拥有的所有数据库对象统称为 ( )。 A. 数据库 B. 模式 C. 表空间 D. 实例 3.在 Oracle数据库的逻辑结构中有以下组件: 1. 表空间 2. 数据块 3. 区 4. 段 这些组件从大到小依次是( )。 A. 1→2→3→4 B.1→4→3→2 C.1→3→2→4 D. 4→1→3→2 4.下列哪个子句实现对一个结果集进行分组和汇总( )。 A.HAVING B.ORDER BY C.WHERE D.GROUP BY 5. 在Oracle数据库中,( )用户模式存储数据字典表和视图对象。 A. SYS B. SYSTEM C. SCOTT D. SYSDBA 6.以下不属于命名的PL/SQL块的是( )。 A.程序包 B.过程 C.游标 D.函数 7.在Oracle中创建用户时,若未提及DEFAULT TABLESPACE关键字,则Oracle就将( )表空间分配给用户作为默认表空间。 A.HR B.SCOTT C.SYSTEM D.SYS
8.在Windows操作系统中,Oracle的( )服务是使用iSQL*Plus必须的。 A.OracleHOME_NAMETNSListener B. OracleServiceSID C. OracleHOME_NAMEAgent D. OracleHOME_NAMEHTTPServer 9.下列哪个语句可以在SQL*Plus 中直接调用一个过程( )。 A. RETURN B. CALL C. SET D. EXEC 10.如果服务器进程无法在数据缓冲区中找到空闲块,为添加从数据文件中读出的数据块,则系统会启动如下哪一个进程( ) A.CKPT B. DBWR C.LGWR D. SMON 11.下列哪一个锁模式不属于Oracle( )。 A.死锁 B.排他锁 C.行级共享锁 D.共享锁 12.有字符串数据”test”分别存放到char(10)和varchar2(10)类型的字段中,其实际存储长度为( ) A. 10 4 B. 4 4 C. 10 10 D. 4 10 13.在Oracle中,当控制一个显式游标时,下面哪种命令包含INTO子句( )。 A. FETCH B. CLOSE C. OPEN D. CURSOR 14. ORACLE中,用来判断列值是否为空的操作符是( )。 A. ==NULL B. NULLIS C. AS NULL D. IS NULL 15.查询一个表的总记录数,可以采用( )统计函数。 A. AVG(*) B. SUM(*) C. COUNT(*) D. MAX(*) 16.以下的哪个命令可以将SQL 命令的运行结果保存到文件中( )。 A.SAVE B.SPOOL C.GET D.INPUT 17.为了去除结果集中重复的行,可在SELECT 语句中使用下列哪个关键字( ) 。 A.ALL B.DISTINCT C.SPOOL D.HAVING 18.关于模式的描述下列哪一项不正确( )。 A.表或索引等模式对象一定属于某一个模式 B.在Oracle 数据库中,模式与数据库用户是一一对应的 C.一个表可以属于多个模式 D.一个模式可以拥有多个表 19.下列SELECT 语句中,哪些子句可以包含子查询( )。 A.SELECT B.GROUP BY C.WHERE D.ORDER BY 20.在下列模式对象中,哪个对象不会占用实际的存储空间( )。 A.视图 B.表 C.索引 D.簇
二、填空题(共8小题,10空需要填写,每空1分,共10分) 1. __________是具有名称的一组相关权限的组合。 2. 一个表空间物理上对应一个或多个__________文件。 3.标准的SQL 语言语句类型可以分为:__________、数据操纵语句(DML)和__________。 4. 如果需要向表中插入一批已经存在的数据,可以在INSERT 语句中使用__________ 语句。 5.通过视图修改数据时,实际上是在修改__________中的数据。 6.如果需要向表中插入一批已经存在的数据,可以在INSERT 语句中使用__________语句。 7.在众多的事务控制语句中,用来撤销事务的操作的语句为________,用于持久化事务对数据库操作的语句是________。 8. 在多进程Oracle 实例系统中,进程分为________、后台进程和服务器进程。 三、程序填空(共10小题,10空需要填写,每空3分,共30分) 1. 假设当前用户是SCOTT用户以普通用户登录,口令为tiger,请写出该用户以管理员身份登录的命令 ________________________________________; 2.假设用户SCOTT以管理员身份登录,现需创建用户Lisa,口令是Lisa,请写出相应的命令___________________________________________; 3. 假设用户SCOTT以管理员身份登录,已知用户账号Lisa被锁定,需为他解除锁定,请写出相应的命令___________________________________________; 4. 假设用户SCOTT以管理员身份登录,需授予用户Lisa对SCOTT用户模式下的EMP表进行查询(SELECT)的权限,请写出相应的命令_______________________________; 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. 假设用户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)的调整,调整方案为:对于员工号(empno)在7000到7200间的员工,若其原工资在1000之下,则加薪20%。 (1) 请完成以下程序: CREATE OR REPLACE PROCEDURE Rise_sal IS v_empno v_sal Emp.empno%type; 线 订 装 Emp.sal%type; V_ErrorText Varchar(200); CURSOR IS cursor_sal //定义游标CURSOR cursor_sal _______①_______ // BEGIN
______②________; //打开游标 LOOP FETCH cursor_sal _____③_______; EXIT WHEN cursor_sal%NOTFOUND;//逐行提取数据 IF v_sal<1500 THEN UPDATE Emp SET sal= sal*0.20+Sal //更新数据 END LOOP;
CLOSE cursor_sal; //关闭游标 _____④______; //提交事务 Exception When others THEN CLOSE cursor_sal; //关闭游标 rollback; //回滚事务 v_Errortext:='游标使用错误'; 号学 dbms_output.put_line('程序异常终止,出现以下错误:'||v_Errortext); 线 END; (2) 假设用户已登录SQL Plus系统,处于“SQL>_”命令提示符下,现需执行存储 栏 名过程Rise_sal,请写出命令:_______⑤___________ 姓 2. 创建一个函数get_sal,用于实现对表Emp(如下图)给定一个员工号(Empno), 息 通过函数获取该雇员的工资值 ,请完成以下程序。 信 订 级 班 生 级 考 (1)请将函数get_sal补充完整 (3空,每空2分,共6分) 业 CREATE OR REPLACE FUNCTION get_sal 专 装(v_emp_no IN emp.empno%TYPE) ______________ IS ______________ emp.sal%TYPE:=0; BEGIN 系 SELECT sal INTO v_emp_sal FROM emp