admin 管理员组

文章数量: 1184232


2024年3月20日发(作者:js代码怎么用浏览器打开)

一、填空题:

oracle复习题

1. Oracle EnterpriseManager是一个基于 B/S的框架系统。

2.Oracle数据库的存储结构分为物理结构和逻辑结构。

3.在游标或者游标变量打开后还没有进行第一次提取时,%found属性为null。

4. 在oracle中已commit或rollback作为上一个事务的结束标志及下一个新事物开始的标志。

5. DML表示数据操作语言,主要的DML有SELECT,INSERT,UPDATE,DELETE.

6.索引的主要目标是提高访问的速度。

7.在Oracle database 10g 系统中,可以使用DBCA工具和CREATE DATEBASE命令两种

方式创建数据库。

8. 命令Startup nomount只能启动数据库实例,但不能装载和打开数据库。

9.在输入URL进入Oracle Enterprice Manager Database Control 的时候,必须指出ip地址

和端口号 。

10.在登录Oracle Enterprice Manager Database Control时,连接身份有两种选择,分别为

normal和sysdba。

二、选择题:

1.当Oracle服务器启动时,下列哪种文件不是必须装入内存的(

)。D

A. 数据文件 B. 控制文件 C. 日志文件 D. 归档日志文件

2. 在Oracle中,当用户要执行SELECT语句时,下列哪个进程从磁盘获得用户需要的数据

)。B

A.用户进程 B. 服务器进程 C. 日志写入进程(LGWR) D. 检查点进程

(CKPT)

3. 在Oracle数据库的逻辑结构中有以下组件:A 表空间;B 数据块;C 区;D段;这些组件从

大到小依次是( )。B

A. A→B→C→D B. A→D→C→B C. A→C→B→D D. D→A→C→B

4. ( B )可以从过程返回多个值。

A. 使用IN参数 B. 使用OUT参数 C. 使用指针 D. 不能

5.PL/SQL为内存耗尽时,预定义了( C )异常。

A. NO_DATA_FOUND B. MEMORY_ERROR

C. STORAGE_ERROR D. NO_MEMEORY_FOUND

6. 一下是同义词不具有的用途是( D )。

A. 简化SQL语句 B. 隐藏对象的名称和所有者

C. 提供对对象的公共访问 D. 显示对象的名称和所有者

7. 在Windows操作系统中,Oracle的( A )服务监听并接受来自客户端应用程序的连接

请求。

A. OracleHOME_NAMETNSListener B. OracleServiceSID

C. OracleHOME_NAMEAgent D. OracleHOME_NAMEHTTPServer

8. 在 Oracle 中创建用户时,若未提及 DEFAULT TABLESPACE 关键字,则 Oracle 就将

( B )表空间分配给用户作为默认表空间。

A. USER B. SYSTEM C. SYS D. DEFAULT

9. 下列哪种Lob类型用来存储数据库以外的操作系统文件( )。D

A. CLOB B. BLOB C. CFILE D. BFile

10. Oracle的控制文件不包括以下哪些内容( )。A

A. 数据库名称

B. 数据文件和日志文件的名称和位置

C. 时间戳

第 1页 /总 9页

D. 服务器信息

11. 不属于Oracle的系统文件是( )。D

A. 数据文件 DBF B. 控制文件 CTL C. 日志文件LOG D. 归档文件ARC

12. 下列( D )不是PL/SQL过程和函数的参数模式。

A. In B. Out C. In Out D. Ref

13. 有语句如下:TYPE curtype IS REF CURSOR RETURN %TYPE;表book的列

price的数据类型是NUMBER(5);则( A )。

A. curtype 可以返回INTEGER类型数据,长度为5

B. curtype 可以返回INTEGER(5,2)类型数据

C. curtype 可以返回VARCHAR2(5,2)类型数据

D. 以上都不对

14. 使用下列( B )将不能把Null值转换为实际值。

A. NVL B. NVL2 C. NULLIF D. To_number

15. 使用( D )数据类型时,数据部能存储在数据库内。

A. BLOB B. CLOB C. NCLOB D. BFILE

16. SCOTT用户对自己的表Test执行了以下命令:Lock table test in share mode 但没有执行

COMMIT和ROLLBACK,此时用户System执行了命令:LOCK TABLE IN

share update MODE,将出现什么情况? ( )。B

A. 提示表已锁定 B. 正常执行 C. 出现等待状态,直到Scott用户释放锁

D. 以上都不正确

17. 关于‚For update‛子句和‚For update of 字段‛说法正确的是( )。C

A. 没有区别

B. 前者只锁定当前表中的相关行,而后者锁定所有表的行

C. 前者锁定所有相关表中的行,而后者锁定当前表中的相关行

D. 以上说法均布正确

18. 下列哪些想不是Oracle中常用的分区方法?( )。D

A. 范围 B. 散列 C. 列表 D. 条件

19. 查看Test中名为P1的分区的分区中的记录的查询语句为( )。C

A. Select * from Test Where PartitionName=’P1’

B. Select * from Test(P1)

C. Select * from Test Where PartitionName(P1)

D. 以上都不正确

20. 在Oracle中,下面哪条语句当COMM字段为空时显示0,不为空时显示COMM的值

( A )。

A. SELECT ename, NVL(comm, 0) FROM emp; B. SELECT ename, NULL(comm, 0)

FROM emp;

C. SELECT ename, NULLIF(comm, 0) FROM emp; D. SELECT ename, DECODE(comm,

NULL, 0) FROM emp;

三、简答题

1. 简述CHAR与VARCHAR2的区别?

答:(1) CHAR的长度是固定的,而VARCHAR2的长度是可以变化的;(2)CHAR的效

率比VARCHAR2的效率稍高;(3)VARCHAR2是Oracle自己开发了一个数据类型,这个

类型不是一个标准的VARCHAR,它将在数据库中varchar列可以存储空字符串的特性改为

存储NULL值。

2.在PL/SQL程序设计中异常的抛出和处理是非常重要的内容。简述三种方式抛出异常的

过程。

第 2页 /总 9页

答: 有三种方式抛出异常:

通过PL/SQL运行时;使用RAISE语句;调用RAISE_APPLICATION_ERROR

存储过程。

3. 使用存储管理器可以管理哪些对象?简述利用它可以进行的操作。

答:使用存储管理器可以管理表空间、回滚段、数据文件和重做日志等存储对象。

(1) 创建存储对象;

(2) 将数据文件和回滚段添加到表空间中;

(3) 删除存储对象;

4. 解释data block , extent 和 segment的区别。

答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储

空间时,连续的data block就组成了extent . 一个数据库对象拥有的所有extents被称为该对

象的segment.

5. 简述非延迟性(immediate)约束的功能?

答:要在每一个DML语句结束时进行数据完整性的检查。如果有数据违反了约束条

件,该语句将被回滚。

6. 简述存储过程与触发器的主要区别?

答:存储过程与触发器的主要区别就是,存储过程是由用户或应用程序显示调用,而

触发器是被事件自动触发。

7. 简述游标的作用?

答:游标的作用是用于临时存储从数据库中提取的数据块。在某些情况下,需要把数据从

存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据

库。

四、名词解释

1.对象:对象实际是对一组数据和操作的封装,对象的抽象就是类。

2.并行服务器(OPS):可以允许一个数据库装载到多个数据库实例上,并同时被这多个数

据库实例打开。

表:该表只包含一个字段和一条记录。使用它容易解决与表无关的一些查询问题。

4. DML级封锁:用于控制并发事务中的数据操纵,保证数据的一致性和完整性,其封锁对

象可以是表或行。

5.触发器:存放在数据库中,它是一种当特定的事件发生时自动执行的存储过程。

五、综合题

1.在SQL>环境中完成下SQL列语句。

⑴ 取出Oracle的系统日期,利用SELECT语句将其转换为字符型并赋给某一变量。

SELECT To_char(sysdate,’yyyymmdd’) INTO a FROM DUAL;

⑵ 查看某表的创建时间。

select object_name,created from user_objects where object_name =

UPPER('&table_name')

⑶ 查看放在ORACLE的内存区里的表。

select table_name,cache from user_tables where

instr(cache,'Y')>0;

⑷ 查看数据字典中函数的状态。

select object_name,status from user_objects where object_type='FUNCTION';

⑸ 使用表1,写出SQL语句完成如下功能:在表中查出年龄大于20,且名

字以‚王‛开头的记录,并且按照年龄的降序排列出来(年龄大的在前面)。

Select * from 1 where age>20 and name like ‘王%’ order by age DESC;

第 3页 /总 9页

2. 简述Oracle系统的体系结构

答:Oracle系统体系结构是整个Oracle服务器系统的框架,是管理和应用Oracle数据

服务器的基础和核心。

⑴ 数据库实例:系统全局区和后台进程

⑵ 物理存储结构:参数文件、控制文件、数据文件、重做日志文件等;

逻辑存储结构:表空间、段、盘区、数据块等

⑶ 内存结构:系统全局区域、程序全局区、用户全局区

3. 解释冷备份和热备份的不同点以及各自的优点。

答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备

份指在数据库关闭后,进行备份,适用于所有模式的数据库。冷备份的优点在于它的备份

和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比

归档模式稍好。(因为不必将archive log写入硬盘)

1、以下( )内存区不属于SGA。

A.PGA B.日志缓冲区 C.数据缓冲区 D.共享池

2、( )模式存储数据库中数据字典的表和视图。

A.DBA B.SCOTT C.SYSTEM D.SYS

3、在Oracle中创建用户时,若未提及DEFAULT TABLESPACE关键字,则Oracle就将( )

表空间分配给用户作为默认表空间。

A.HR B.SCOTT C.SYSTEM D.SYS

4、( )服务监听并按受来自客户端应用程序的连接请求。

A.OracleHOME_NAMETNSListener

B.OracleServiceSID

C.OracleHOME_NAMEAgent

D.OracleHOME_NAMEHTTPServer

5、( )函数通常用来计算累计排名、移动平均数和报表聚合等。

A.汇总 B.分析 C.分组 D.单行

6、( )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、锁用于提供( )。

A.改进的性能

B.数据的完整性和一致性

C.可用性和易于维护

D.用户安全

8、( )锁用于锁定表,允许其他用户查询表中的行和锁定表,但不允许插入、更新和删

除行。

第 4页 /总 9页

A.行共享 B.行排他 C.共享 D.排他

9、带有( )子句的SELECT语句可以在表的一行或多行上放置排他锁。

A.FOR INSERT B.FOR UPDATE

C.FOR DELETE D.FOR REFRESH

10、使用( )命令可以在已分区表的第一个分区之前添加新分区。

A.添加分区 B.截断分区

C.拆分分区 D.不能在第一个分区前添加分区

11、( )分区允许用户明确地控制无序行到分区的映射。

A.散列 B.范围 C.列表 D.复合

12、可以使用( )伪列来访问序列。

A.CURRVAL和NEXTVAL B.NEXTVAL和PREVAL

C.CACHE和NOCACHE D.MAXVALUE和MINVALUE

13、带有错误的视图可使用( )选项来创建。

A.FORCE

B.WITH CHECK OPTION

C.CREATE VIEW WITH ERROR

D.CREATE ERROR VIEW

14、在联接视图中,当( )时,该基表被称为键保留表。

A.基表的主键不是结果集的主键

B.基表的主键是结果集的主键

C.基表的主键是结果集的外键

D.基表的主键不是结果集的外键

15、在列的取值重复率比较高的列上,适合创建( )索引。

A.标准 B.唯一 C.分区 D.位图

16、要以自身的模式创建私有同义词,用户必须拥有( )系统权限

A.CREATE PRIVATE SYNONYM

B.CREATE PUBLIC SYNONYM

C.CREATE SYNONYM

D.CREATE ANY SYNONYM

17、PL/SQL块中不能直接使用的SQL命令是( )。

A.SELECT B.INSERT

C.UPDATE D.DROP

18、以零作除数时会引发( )异常。

A.VALUE_ERROR B.ZERO_DIVIDE

C.STORAGE_ERROR D.SELF_IS_NULL

19、要更新游标结果集中的当前行,应使用( )子句。

A.WHERE CURRENT OF B.FOR UPDATE

C.FOR DELETE D.FOR MODIFY

20、用于处理得到单行查询结果的游标为( )。

A.循环游标 B.隐式游标

C.REF游标 D.显式游标

21、公用的子程序和常量在( )中声明。

A.过程 B.游标

C.包规范 D.包主体

22、数据字典视图( )包含存储过程的代码文本

A.USER_OBJECTS B.USER_TEXT

第 5页 /总 9页

C.USER_SOURCE D.USER_DESC

23、以下不属于命名的PL/SQL块的是( )。

A.程序包 B.过程

C.游标 D.函数

24、( )包用于显示PL/SQL块和存储过程中的调试信息。

A.DBMS_OUTPUT

B.DBMS_STANDARD

C.DBMS_INPUT

D.DBMS_SESSION

25、Oracle的内置程序包由( )用户所有。

A.SYS B.SYSTEM

C.SCOTT D.PUBLIC

26、( )触发器允许触发操作中的语句访问行的列值。

A.行级 B.语句级

C.模式 D.数据库级

27、在非归档日志方式下操作的数据库禁用了( )。

A.归档日志

B.联机日志

C.日志写入程序

D.日志文件

28、以下哪种备份方式需要在完全关闭数据库进行( )。

A.无归档日志模式下的数据库备份

B.归档日志模式下的数据库备份

C.使用导出实用程序进行逻辑备份

D.以上都不对

29、( )方式的导出会从指定的表中导出所有数据。

A.分区 B.表

C.全部数据库 D.表空间

30、( )参数用于确定是否要导入整个导出文件。

A.CONSTRAINTS B.TABLES

C.FULL D.FILE

二、填空题(每空2分,共40分)

1、假设已在某远程客户端完成网络服务名配置,服务名为aptech,请写出用户MARTIN

(用户口令martinpass)连接到服务器的命令:

__________________________[1]__________________________________;

2、SYS用户以管理员身份登录后,要授予用户MARTIN可以对SCOTT用户的EMP表进

行查询的权限,请写出授权命令:(假设MARTIN用户已存在)

_________________________[2]___________________________________;

3、创建表employee的副本,但不包含表中的记录:

CREATE TABLE employee_copy AS____________[3]___________________;

4、查询itemfile表中itemrate列的信息,要求将数值转换为字符串,并使用当前货币符号

作为前缀:

SELECT ____[4]____(itemrate,'C99999') FROM itemfile;

第 6页 /总 9页

5、查itemfile表中itemdesc、re_level列的信息,要求re_level为NULL时显示为0

SELECT itemdesc, __[5]__(re_level,0) FROM itemfile;

6、完成以下PL/SQL块,功能是:显示2 到50的25个偶数。

BEGIN

FOR____[6]_____ IN ____[7]_____

LOOP

DBMS__LINE(even_number*2);

END LOOP

END;

7、完成以下PL/SQL块,功能是:接受职员编号并检索职员姓名。将职员姓名存储在变量

empname中,如果代码引发VALUE_ERROR异常,则向用户显示错误消息。

DELCARE

empname %TYPE;;

eno %TYPE;

BEGIN

eno:=’&employee_number’;

___________________[8]______________________________________;

DBMS__LINE(‘职员姓名:’||empname);

______[9]______

WHEN VALUE_ERROR THEN

DBMS__LINE(‘要存储在变量中的值过大’)

END;

8、完成以下PL/SQL块,功能是:使用游标,显示所有单价低于250元的玩具的单价。

DECLARE

my_toy_price ce%TYPE;

CURSOR toy_cur IS

SELECT toyprice FROM toys

WHERE toyprice<250;

BEGIN

________[10]_______

LOOP

_______________[11]_____________

EXIT WHEN toy_cur%NOTFOUND;

DBMS__LINE (toy_cur%ROWCOUNT || '. 玩具单价:' ||

my_toy_price);

END LOOP;

CLOSE toy_cur;

END;

9、完成以下PL/SQL块,功能是:使用游标显示销售报表。如果目标销售额(tsales)大

于实际销售额(asales),则显示消息‚需提高销售额‛。如果tsales等于asales,则显示消

息‚已达到销售额‛,否则显示消息‚销售业绩出色‛

DECLARE

CURSOR sales_cur IS SELECT * FROM salesdetails;

BEGIN

第 7页 /总 9页

_____________________[12]______________

IF sales_ > sales_ THEN

DBMS__LINE('产品:'||sales_||' 需提高销售额');

ELSE

IF _____________[13]______________ THEN

DBMS__LINE('产品:'||sales_||'已达到销售额');

ELSE

DBMS__LINE('产品:' ||sales_||'销售业绩出色');

END IF;

END IF;

END LOOP;

END;

10、完成以下PL/SQL块,功能是:创建一个交换两数的过程。

CREATE OR REPLACE PROCEDURE

swap(p1 IN OUT NUMBER, p2 ____[14]_____ 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 %TYPE;

BEGIN

___________________[15]___________________________________

SELECT dname INTO result FROM dept

WHERE deptno = dept_no;

________[16]__________;

EXCEPTION

WHEN OTHERS THEN

RETURN NULL;

END;

12、要执行pack_me包中的order_proc过程(有一个输入参数),假设参数值为’002’,

可以输入以下命令:

EXECUTE ___________[17]__________________

13、完成以下PL/SQL块的功能是:创建一个触发器biu_job_emp,无论用户插入记录,还

是修改EMP表的job列,都将用户指定的job列的值转换成大写。

CREATE OR REPLACE TRIGGER biu_job_emp

第 8页 /总 9页

_________________[18]________________

____________[19]_______

BEGIN

: :=______[20]_____;

END;

答案

1.A

2.D

3.C

4.A

5.B

6.B

7.B

8.C

9.B

10.C

11.C

12.C

13.A

14.B

15.D

16.C

17.D

18.B

19.A

20.B

21.C

22.C

23.C

24.A

25.A

26.A

27.A

28.A

29.B

30.C

二、填空题(每空2分,共40分)

[1] Connect martin/martinpass@aptech

[2] Grant select on to martin

[3] Select * from employee where 1=2

[4] To_char

[5] NVL

[6] even_number

[7] 1..25

[8] SELECT ename INTO empname FROM employee WHERE empno=eno;

[9] EXCEPTION

[10] OPEN toy_cur

[11] FETCH toy_cur INTO my_toy_price;

[12] FOR sales_rec IN sales_cur LOOP

[13] sales_ = sales_

[14] IN OUT

[15] SELECT deptno INTO dept_no FROM emp WHERE empno=emp_no;

[16] RETURN result;

[17] pack__proc(‘002’)

[18] BEFORE INSERT OR UPDATE OF job ON emp

[19] FOR EACH ROW

[20] UPPER(:)

第 9页 /总 9页


本文标签: 数据库 用户 数据 使用 表中