
oracle数据库期末考试题目及答案.doc
8页期末考试卷(卷)课程名称: 数据库 考试方式:开卷( )闭卷(√)题 号 一 二 三 四 五 六 总 分 统 分 人签 名得 分考生注意事项:1、本试卷共 4 页,请查看试卷中是否有缺页2、考试结束后,考生不得将试卷、答题纸带出考场1、以下( a )内存区不属于 SGAA.PGA B.日志缓冲区C.数据缓冲区 D.共享池 2、 d )模式存储数据库中数据字典的表和视图 ( A.DBAB.SCOTT C.SYSTEMD.SYS3、 Oracle 中创建用户时, 在 若未提及 DEFAULT TABLESPACE 关键字, Oracle 就将 c ) 则 ( 表空间分配给用户作为默认表空间A.HR B.SCOTTC.SYSTEMD.SYS 4、 a )服务监听并按受来自客户端应用程序的连接请求 ( A.OracleHOME_NAMETNSListener B.OracleServiceSID C.OracleHOME_NAMEAgent D.OracleHOME_NAMEHTTPServer 5、 b )函数通常用来计算累计排名、移动平均数和报表聚合等 (A.汇总 B.分析 C.分组 D.单行6、 b)SQL 语句将为计算列 SAL*12 生成别名 Annual Salary ( A.SELECT ename,sal*12 ‘Annual Salary’ FROM emp;B.SELECT ename,sal*12 “Annual Salary” FROM emp;C.SELECT ename,sal*12 AS Annual Salary FROM emp;D.SELECT ename,sal*12 AS INITCAP(“Annual Salary”) FROM emp;7、锁用于提供(b )。
A.改进的性能 B.数据的完整性和一致性 C.可用性和易于维护 D.用户安全 8、( c )锁用于锁定表,允许其他用户查询表中的行和锁定表,但不允许插入、更新和删除 行A.行共享 B.行排他 C.共享 D.排他 9、带有( b )子句的 SELECT 语句可以在表的一行或多行上放置排他锁 A.FOR INSERT B.FOR UPDATE C.FOR DELETE D.FOR REFRESH 10、使用( c )命令可以在已分区表的第一个分区之前添加新分区A.添加分区 B.截断分区 C.拆分分区 D.不能在第一个分区前添加分区11、( c )分区允许用户明确地控制无序行到分区的映射A.散列 B.范围 C.列表 D.复合12、可以使用( a)伪列来访问序列A.CURRVAL 和 NEXTVAL B.NEXTVAL 和 PREVAL C.CACHE 和 NOCACHE D.MAXVALUE 和 MINVALUE 13、带有错误的视图可使用( a)选项来创建A.FORCE B.WITH CHECK OPTION C.CREATE VIEW WITH ERROR D.CREATE ERROR VIEW14、在联接视图中,当( b )时,该基表被称为键保留表。
A.基表的主键不是结果集的主键 B.基表的主键是结果集的主键 C.基表的主键是结果集的外键 D.基表的主键不是结果集的外键 15、在列的取值重复率比较高的列上,适合创建( d)索引A.标准 B.唯一 C.分区 D.位图16、要以自身的模式创建私有同义词,用户必须拥有( c )系统权限 A.CREATE PRIVATE SYNONYM B.CREATE PUBLIC SYNONYM C.CREATE SYNONYM D.CREATE ANY SYNONYM17、PL/SQL 块中不能直接使用的 SQL 命令是( d ) A.SELECT B.INSERT C.UPDATE D.DROP 18、以零作除数时会引发(b )异常A.VALUE_ERROR B.ZERO_DIVIDE C.STORAGE_ERROR D.SELF_IS_NULL19、要更新游标结果集中的当前行,应使用( a)子句A.WHERE CURRENT OF B.FOR UPDATE C.FOR DELETE D.FOR MODIFY 20、用于处理得到单行查询结果的游标为( b ) A.循环游标 B.隐式游标 C.REF 游标 D.显式游标21、公用的子程序和常量在( c )中声明。
A.过程 B.游标 C.包规范 D.包主体22、数据字典视图( c)包含存储过程的代码文本 A.USER_OBJECTS B.USER_TEXT C.USER_SOURCE D.USER_DESC23、以下不属于命名的 PL/SQL 块的是(c ) A.程序包 B.过程 C.游标 D.函数24、 a )包用于显示 PL/SQL 块和存储过程中的调试信息 ( A.DBMS_OUTPUT B.DBMS_STANDARD C.DBMS_INPUT D.DBMS_SESSION 25、Oracle 的内置程序包由(a )用户所有A.SYS B.SYSTEM C.SCOTT D.PUBLIC26、 a )触发器允许触发操作中的语句访问行的列值 ( A.行级 B.语句级 C.模式 D.数据库级 27、在非归档日志方式下操作的数据库禁用了(a ) A.归档日志 B.联机日志 C.日志写入程序 D.日志文件 28、以下哪种备份方式需要在完全关闭数据库进行(a ) A.无归档日志模式下的数据库备份 B.归档日志模式下的数据库备份 C.使用导出实用程序进行逻辑备份 D.以上都不对 29、 b )方式的导出会从指定的表中导出所有数据。
( A.分区 B.表 C.全部数据库 D.表空间 30、c )参数用于确定是否要导入整个导出文件 A.CONSTRAINTS B.TABLES C.FULL D.FILE 填空题( 二、填空题(每空 2 分,共 40 分) 1、 假设已在某远程客户端完成网络服务名配置, 服务名为 aptech, 请写出用户 MARTIN (用 户口令 martinpass)连接到服务器的命令: _Connect martin/martinpass@aptech____________________________; 2、SYS 用户以管理员身份登录后,要授予用户 MARTIN 可以对 SCOTT 用户的 EMP 表进 行查询的权限,请写出授权命令: (假设 MARTIN 用户已存在) __Grant select on scott.emp to martin____________________________;3、 创建表 employee 的副本,但不包含表中的记录: CREATE TABLE employee_copy AS Select 1=2______________;*fromemployeewhere4、查询 itemfile 表中 itemrate 列的信息,要求将数值转换为字符串,并使用当前货币符号 作为前缀: SELECT _To_char_(itemrate,'C99999') FROM itemfile;5、查 itemfile 表中 itemdesc、re_level 列的信息,要求 re_level 为 NULL 时显示为 0 SELECT itemdesc, _NVL_(re_level,0) FROM itemfile;6、完成以下 PL/SQL 块,功能是:显示 2 到 50 的 25 个偶数。
BEGIN FOR_even_number_ IN _1..25_ LOOP DBMS_OUTPUT.PUT_LINE(even_number*2); END LOOP END;7、 完成以下 PL/SQL 块,功能是:接受职员编号并检索职员姓名将职员姓名存储在变量 empname 中,如果代码引发 VALUE_ERROR 异常,则向用户显示错误消息 DELCARE empname employee.ename%TYPE;;eno employee.empno%TYPE; BEGIN eno:=’ ___SELECT ename INTO empname FROM employee WHERE empno=eno;___; DBMS_OUTPUT.PUT_LINE(‘职员姓名:’||empname); _EXCEPTION WHEN VALUE_ERROR THEN DBMS_OUTPUT.PUT_LINE(‘要存储在变量中的值过大’) END;8、完成以下 PL/SQL 块,功能是:使用游标,显示所有单价低于 250 元的玩具的单价 DECLARE my_toy_price toys.toyprice%TYPE; CURSOR toy_cur IS SELECT toyprice FROM toys WHERE toyprice sales_rec.asales THEN DBMS_OUTPUT.PUT_LINE('产品:'||sales_rec.pid||' 需提高销售额');ELSE IF sales_rec.tsales = sales_rec.asales THEN DBMS_OUTPUT.PUT_LINE('产品:'||sales_rec.pid||'已达到销售额'); ELSE DBMS_OUTPUT.PUT_LINE('产品:' ||sales_rec.pid||'销售业绩出色'); END IF; END IF; END LOOP; END;10、完成以下 PL/SQL 块,功能是:创建一个交换两数的过程。
CREATE OR REPLACE PROCEDURE swap(p1 IN OUT NUMBER, p2 _IN OUT_ NUMBER) IS v_temp NUMBER; BEGIN v_temp := p1; p1 := p2; p2 := v_temp; END; 11、完成以下 PL/SQL 块,功能是:创建一个函数 dept_name,其功能是接受职员编号后 返回职员所在部门名称 (注:部门名称在 dept 表中,而职员信息在 emp 表中,职员所在 部门号的列名为 deptno) CREATE OR REPLACE FUNCTION dept_name (emp_no NUMBER) RETURN VARCHAR2 AS dept_no NUMBER(2); result dept.dname%TYPE; BEGIN SELECT deptno INTO dept_no FROM emp WHERE empno=emp_no; SELECT dname INTO result FROM dept WHERE deptno = dept_no; _RETURN result;_; EXCEPTION WHEN OTHERS THEN RETURN NULL; END; 12、要执行 pack_me 包中的 order_proc 过程(有一个输入参数) ,假设参数值为’002’ ,可 以输入以下命令: EXECUTE _ pack_ma.order_proc(‘002’) 13、完成以下 PL/SQL 块的功能是:创建一个触发器 biu_job_emp,无论用户插入记录, 还是修改 EMP 表的 job 列,都将用户指定的 job 列的值转换成大写。
CREATE OR REPLACE TRIGGER biu_job_emp _BEFORE INSERT OR UPDATE OF job ON emp_ _FOR EACH ROW_ BEGIN :NEW.job :=_UPPER(:NEW.job)_; END;…….。
