Oracle

104 阅读13分钟

选择

1. Oracle的管理与开发工具不包括(    )。

A. OEM    B. SQL*PLUS   C. ONCA    D. PHP

2. 下面文件属于物理文件的是(    )。

A. 概要文件   B. 闪回文件   

C. 逻辑文件   D. 数据文件

3. 用于记录用户对数据库改变操作的物理文件是( )。

A. 控制文件                  B. 归档文件

C. 警告文件              D. 重做日志文件

4. 数据文件的扩展名是()

A . CTL    B. TCL    C. LOG   D. DBF  

5. 描述整个数据库结构信息的是( )。

A.   警告文件               B. 归档文件

C. 重做日志文件              D. 控制文件

6. 对于表空间描述正确的是()

A 一个数据库只能有一个表空间

B 一个数据库只能有一个临时表空间

C 一个表空间只能由一个用户使用

D  一个表空间可以由多个数据文件组成

7. 在创建表空间时,使用(  )关键字,可以创建临时表空间

A. system   B. uniform  C.  temp D.temporary  

8. 段的集合是(  )

A 区  B 块   C  数据库  D 表空间

9. 下面属于系统表空间的是(    )。

A. 撤销表空间         B. 临时表空间

C.  用户表空间    D. SYSTEM表空间

10. 把多路镜像控制文件存于不同磁盘最大的好处是(  )。

A.数据库性能提高  

B.能并发访问提高控制文件的写入速度

C.提高归档速度       

D.防止数据库的崩溃

11. 将修改过的数据块写入数据文件的进程是(  )。

A.SMON      B.LGWR    

C.PMON      D.DBWR

12. 下列说法错误的是(  )。

A. SGA中内存的分配和回收是以特定单位进行的

B. PGA主要保存当前用户私有的数据和控制信息

C. PGA由排序区,会话区,游标区和堆栈区组成

D. 对数据高速缓冲区,日志缓冲区,保留池,共享池的内存调整,系统可以自动进行

13. 指定哪个表空间参与排序操作,可以提高排序效率(  )。

A.SYSEM            B. USERS 

C.ROLLBACK        D.TEMPORARY

14. 关于数据文件的管理, 下面说法错误的是(    )。

A.数据文件是依附于表空间存在的

B.可以通过联机或脱机来改变数据文件的可用性  

C.一个表空间可以有多个数据文件

D.一个数据文件可以从属多个表空间

15. DBWR进程的作用是(   )。 

A.把重做记录写入重做日志文件中永久保存  

B.回收空白的数据块

C.执行检查点,更新控制文件  

D.把数据高速缓冲区中被修改过的数据写入数据文件中保存

16. 在Oracle数据库的逻辑结构中, 最小的存储单元是(   )。

A.块                B.区  

C.段                D.表空间

17. 在Oracle数据库的逻辑结构中, 存储空间分配和回收的最小单位是(   )。

A.区                B.  块

C.段                D.表空间

18. 下面哪个不是Oracle的后台进程(    )。

A.  CALL       B. LGWR

C.  ARCH       D. RECO

19. CKPT进程的作用是(   )。 

A.执行检查点,更新控制文件 

B.把数据高速缓冲区中被修改过的数据写入数据文件中保存   

C. 把重做记录写入重做日志文件中永久保存  

D.回收空白的数据块

20. 回滚段的作用是 (  )。

 A.数据的读一致性      B.事务回滚   

 C.数据库恢复          D.以上都是

21.  下面不属于SGA的是(      )。

A. 排序区       B. Java池

C. 共享池         D. 数据高速缓冲区

22. 下面数据库对象不属于模式对象的是(    )。

A.   用户            B. 索引

C. 分区表       D.表

23. 创建Oracle数据库时会自动创建一些用户,其中不包括(   )。

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

24. 实现列的添加可以使用(   )语句。

A. ALTER  TABALE…ADD

B. CREATE  TABALE…ADD

C. MODIFY  TABALE…ADD   

D. INSERT  TABALE…ADD

25. 下面哪个命令用于删除约束(   )。

A.  ALTER TABLE DROP CONSTRAINT

B.  ALTER TABLE MODIFY CONSTRAINT 

 C. DROP CONSTRAINT        

D. ALTER CONSTRAINT DROP

26. 平衡树索引适合建于(   )的列。

A.索引基数高           B.索引基数低    

C.插入率高             D.修改率高

27. 下列说法错误的是(    )。

A. 函数索引只能是标准的B树索引

B. 默认情况下,Oracle创建的索引是非唯一性索引

C. 相比于重建索引,合并索引不会改变B树的高度

D. Oracle 会自动在UNIQUE约束上创建唯一性索引

28. 关于约束下列说法正确的是(    )。

A. 外键约束只能参照主表的主键约束列或者唯一性约束列

B. 5种约束都可以是列级约束,也都可以是表级约束

C.  定义表级约束时可以不指定列名

D. 一个表中只能有一个唯一性约束  

29. 位图索引适合建于怎样的列(  )。

  A.索引基数低     B. 索引基数高   

C.插入率高       D.修改率高

30. 创建分区表的方法不包括(    )。

A. 组合分区    B. 散列分区  C. 列表分区   D. 范围分区

31. 数据在各个分区中分布不均匀,此时可以采用(   )创建分区表。

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

32. 如果用户拥有数据库对象,则删除用户时必须在DROP  USER语句中使用(   )选项。

A.CASCADE              B.WITH ADMIN OPTION

C.COMMIT                D.EXCEPT

33. 关于权限管理说法错误的是(  )。

A. CREATE权限属于系统权限,INSERT权限属于对象权限

B. 有的对象并没有对象权限,只能通过系统权限进行控制

C. 一个用户被多次授予同一个对象权限后,只要回收一次,该用户不再拥有相应的对象权限

D. A用户将对象权限授予B用户,A用户的对象权限被回收后,B用户的对象权限依然在

34. 下面权限属于对象权限的是(  )。

A. ALERT     B. CREATE     

C.  DROP     D. UPDATE

35. 关于用户, 下面说法错误的是(    )。

A.SYS和SYSTEM 是Oracle数据库自动创建的用户

B.创建用户后,数据库会创建一个同名模式

C.ALTER USER语句与CREATE USER 相比,多了DEFAULT ROLE 选项目

D.数据库身份认证的方式将口令和加密方式保存在操作系统

36. 关于角色管理,下面说法错误的是(   )。

A. 角色是相关权限的集合

B. Oracle预定义了一些角色

C. 通过角色向用户授权的过程实际上是一个间接的授权过程

D. 不能将角色授予另外一个角色

37. 关于闪回技术下面说法错误的是 (    )。

A. 要使用闪回技术必须启用撤销表空间自动管理回滚信息

B. 闪回删除的实现主要是通过“回收站”技术实现的

C. 启动闪回数据库的功能时,数据库必须处于归档模式

D.任何情况下的数据丢失或损坏都可以使用闪回技术恢复

38. 下面描述不属于Oracle故障类型的是(    )。

A. 语句故障            B. 介质故障            C. 网络故障            D.  服务器故障  

39. 概要文件不能限制(   )。

A.CPU 占用时间 

B.用户连接数据库的时间 

C.每个用户的并发会话数  

D.读取数据块时间

40. 根据数据文件损坏程度的不同,数据库完全恢复可分为数据文件级,数据库级和(   )。

  A.事务级    B.表级     

 C.版本级          D.表空间级  

41. 下面不属于闪回技术的是(   )。

A.闪回表            B.   闪回数据库

C.闪回删除          D.闪回数据

42. 关于闪回技术下面说法错误的是 (    )。

A. 要使用闪回技术必须启用撤销表空间自动管理回滚信息

B. 闪回删除的实现主要是通过“回收站”技术实现的

C. 启动闪回数据库的功能时,数据库必须处于归档模式

D.任何情况下的数据丢失或损坏都可以使用闪回技术恢复

43. Oracle数据库中,要具有闪回数据库功能所需要的条件不包括(  )。

A. 数据库处于归档模式    

B. 数据库设置了闪回恢复区

C. 数据库启用了FLASHBACK DATABASE

D. 采用字典管理方式

44. 下面操作不属于DML语言的是(   )。

A.    INSERT     B. UPDATE

C. DELETE             D. SELECT     

45. 下面操作不属于DDL语言(数据定义语言)的是(     )。

A.ALERT              B.  GRANT C.  REVOKE            D.  UPDATE

46. 为了去除结果集中重复的行,可在SELECT 语句中使用下列哪个关键字(    )。

A、ALL              B、    HAVING

C、EXISTS           D、 DISTINCT

47. 查询一个表的总记录数,可以采用(     )统计函数。

A.  AVG()            B.  SUM()    

C. MAX()       D.  COUNT()   

48. 在GROUP BY 子句中使用(   )选项可以生成横向统计,纵向统计和不分组统计。

A. CUBE             B.AVG

C. STDDEV           D.  ROLLUP

49. 下面关于SQL语言的描述正确的是(  )。

A. ALERT属于数据操纵语言(DML)

B. WHERE子句既可以作用于记录也可以作用于组

C. 若要统计不重复的行信息,可使用DISTINCT选项

D. 用DELETE语句删除数据时,直接释放存储空间,且可回滚

50. 可以使用下面哪个子句对查询结果进行排序(    )。

A、ORDER BY            B、 GROUP BY   

C、JOIN ON              D、ASC

51. 检索游标使用(    )语句。

A.  CURSOR             B. SELECT

C.  DECLARE            D. FETCH…INTO

52. 在PL/SQL语言中,用户定义异常的抛出语法是(   )。

A. SQLERRM           B. PRAGMA  EXCEPTION_INIT

C. EXCEPTION         D. RAISE      

53. 下面描述不属于PL/SQL语言特点的是(    )。

A.减小网络流量           B. 服务器端程序设计可移植性好

C. 与SQL语言紧密集成     D.  高度的非过程化    

54. 在PL/SQL语言中,函数和存储过程的不同之处在于(   )。

A. 存储过程可以重新编译

B. 函数在SQL语句和PL/SQL程序均可被调用

C. 存储过程可将PL/SQL块或元素组织在一起,成为完整的单元

D. 函数必须包含RETURN语句

55. 下面关于PL/SQL的控制结构描述错误的是 (    )。

A.PL/SQL的逻辑运算结果有TRUE, FALSE和NULL三种

B.CASE语句只能进行等值比较

C.FOR循环中不需要定义循环变量    

D.跳转结构中,不能从外层块跳到内层块

答案:

1.D 2. D 3. D 4. D 5. D

6.D 7. D 8. D 9. D 10. D

11.D 12. D 13. D 14. D 15. D

16.A 17. A 18. A 19. A 20. D

21.A 22. A 23. A 24. A 25. A

26.A 27. A 28. A 29. A 30. A

31.C 32. A 33. D 34. D 35. D

36.D 37. D 38. D 39. D 40. D

41.D 42. D 43. D 44. D 45. D

46.D 47. D 48. A 49. C 50. A

51.D 52. D 53. D 54. D 55. B

填空

1. 物理文件及作用

image.png

2. 默认自动创建的用户

SYS、SYSTEM、SYSMAN、DBSNMP、PUBLIC

3. 表空间的管理方式

分为字典管理方式(DICTIONARY)和本地管理方式(LOCAL)两种。默认创建的表空间采用本地管理方式。

4. 异常的分类

预定义异常、非预定义异常和用户定义异常

5. 触发器的分类

DML触发器、INSTEAD OF触发器和系统触发器

6. PGA构成

排序区、游标信息区、会话信息区、堆栈区

image.png

简答

1. 索引的作用及类型

  • 作用:提高数据检索效率,能够为数据的查询提供快捷的存取路径,减少磁盘IO。

image.png

2. 概要文件的作用

  • 概要文件(PROFILE)是数据库和系统资源限制的集合,是Oracle 数据库安全策略的重要组成部分。利用概要文件,可以限制用户对数据库和系统资源的使用,同时还可以对用户口令进行管理。

3. 对表进行分区的方法、特征

image.png

4. 游标和游标变量的区别

image.png image.png

image.png

5. 什么是备份和恢复?为什么要备份?

  • 在以数据库为数据管理中心的信息系统中,由于数据库故障而导致业务数据部分或全部丢失、系统运行失败的情况时有发生。因此,如何有效地预防数据库故障的发生以及在数据库发生故障后如何快速、有效地恢复数据库系统是数据库管理员的重要任务,其解决方法就是合理制定数据库的备份与恢复策略,执行有效的数据库备份与恢复操作。

  • 备份与恢复是数据库的一对相反操作,备份是保存数据库中数据的副本,恢复是利用备份将数据库恢复到故障时刻的状态或恢复到故障时刻之前的某个一致性状态。

6. 什么是pl/sql程序包,由什么构成

  • PL/SQL程序包(Package)用于将相关的PL/SQL块或元素(过程、函数、变量、常量、自定义数据类型、游标等)组织在一起,成为一个完整的单元,编译后存储在数据库服务器中,作为一种全局结构,供应用程序调用。

  • 包由包规范(Specification)和包体(Body)两部分组成,在数据库中独立存储。

编程

1. 怎么样创建表,约束,索引

  • 创建表,约束

    image.png

  • 添加约束

    image.png

  • 删除约束

    image.png

  • 创建索引

    image.png

  • 删除索引
DROP INDEX emp_email_indx;

2. 闪回

  • 创建表、获取scn号、闪回表

image.png

image.png image.png

  • 删除表、闪回删除

image.png

  • 闪回数据库

image.png

3. 分组查询

  • 单列分组查询

    image.png

  • 多列分组查询

    image.png

  • 使用HAVING子句限制返回组

    image.png

4. plsql语言

  • 查询

    image.png

  • 创建函数

    image.png

    image.png

  • 调用函数

    image.png

5. 异常处理

  • 抛出异常捕获异常,给出相应的提示信息 image.png

    image.png

// 实验9

DECLARE

    v_price BOOK.price%TYPE;  

    e_highlimit EXCEPTION;       -- 自定义“价格超限”异常

BEGIN

    -- 1. 查询包含“三国演义”的图书原价格(先尝试单条数据)

    SELECT PRICE INTO v_price

    FROM BOOK

    WHERE BNAME LIKE '%三国演义%';

 

    -- 2. 计算调价后价格(增加30%)

    v_price := v_price * 1.3;

 

    -- 3. 判断价格是否超过200元,超过则抛出自定义异常

    IF v_price > 200 THEN

        RAISE e_highlimit;

    ELSE

        -- 4. 价格≤200,执行更新

        UPDATE BOOK

        SET PRICE = v_price

        WHERE BNAME LIKE '%三国演义%';

    END IF;

 

EXCEPTION

    -- 处理“未找到数据”异常

    WHEN NO_DATA_FOUND THEN

        DBMS_OUTPUT.PUT_LINE('未找到名称包含“三国演义”的图书');

 

    -- 处理“多条数据”异常:循环处理每条数据

    WHEN TOO_MANY_ROWS THEN

        FOR book_rec IN (SELECT ISBN, PRICE FROM BOOK WHERE BNAME LIKE '%三国演义%') LOOP

            v_price := book_rec.PRICE * 1.3;  -- 计算新价格

            IF v_price > 200 THEN

                RAISE e_highlimit;  -- 价格超限,抛出自定义异常

            ELSE

                -- 价格合法,更新当前记录

                UPDATE BOOK

                SET PRICE = v_price

                WHERE ISBN = book_rec.ISBN;

            END IF;

        END LOOP;
        

    -- 处理自定义“价格超限”异常

    WHEN e_highlimit THEN

        DBMS_OUTPUT.PUT_LINE('Dingjiataigao');

        ROLLBACK;  -- 回滚所有操作


    -- 处理其他异常

    WHEN OTHERS THEN

        DBMS_OUTPUT.PUT_LINE('操作失败:' || SQLERRM);

        ROLLBACK;

END;

/