使用 DDL 语句问题

使用 DDL 语句问题


1.Oracle DB中DDL的完整形式是什么?

  1. 数据删除语言
  2. 数据定义语言
  3. 数据委托语言
  4. 虚拟数据语言

答案:B. DDL 是 SQL 的类别之一,代表数据定义语言。其他 SQL 类型是 DML、DCL 和 TCL。

2.DDL 语句用于以下哪些 Oracle 数据库对象?

  1. 子查询

答: A. DDL 包含 CREATE、ALTER 和 ANALYZE 等命令,用于创建表、查看数据库模式中存储的子程序和包。

3.Oracle 数据库中包含数据的基本存储单位是什么?

  1. 看法
  2. 柱子
  3. 询问
  4. 桌子

答案:D。表是Oracle数据库中数据物理存储的基本单位。

4.以下哪个选项最能定义视图?

  1. 它是表格的较短形式
  2. 它是一个或多个表中子集的逻辑表示
  3. 它只有一行和一列
  4. 以上都不是

答案:B. View 是一种查询,它的行为类似于一个窗口,用于格式化一个或多个表中包含的数据。视图不包含任何物理数据,而仅包含在运行时创建的查询。

5. 以下哪些是数据库对象?

  1. 桌子
  2. 顺序
  3. 代名词
  4. 上述所有的

答案:D.物理存储在数据库模式中的对象是数据库对象。

6. 以下哪个数据库对象生成数值?

  1. 桌子
  2. 看法
  3. 指数
  4. 顺序

答案:D.序列用于生成从确定值开始并按指定因子递增的唯一值。可以创建一个序列来生成一系列整数。序列生成的值可以存储在任何表中。使用 CREATE SEQUENCE 命令创建序列。

7.以下哪个数据库对象为对象提供了一个替代名称?

  1. 代名词
  2. 顺序
  3. 看法
  4. 指数

答案: A.同义词为数据库对象提供永久别名。任何数据库用户都可以使用公共同义词。私有同义词仅对创建它的用户可用。同义词是使用 CREATE SYNONYM 命令创建的。使用 DROP SYNONYM 命令删除同义词。只有具有 DBA 权限的用户才能删除公共同义词。

8.以下哪些数据库对象提高了某些查询的性能?

  1. 桌子
  2. 代名词
  3. 看法
  4. 指数

答案:D。

9. 什么时候可以创建表?

  1. 当数据库没有被任何用户使用时
  2. 新创建数据库时
  3. 它可以随时创建,即使用户正在使用数据库
  4. 以上都不是

答案:C。可以创建索引以加快查询过程。当索引存在时,DML 操作总是较慢。Oracle 11g 自动为 PRIMARY KEY 和 UNIQUE 约束创建索引。显式索引是使用 CREATE INDEX 命令创建的。如果查询条件或排序操作基于用于创建索引的列或表达式,则 Oracle 11g 可以自动使用索引。

10. 什么是桌子?

  1. 指定表的大小不是强制性的
  2. 每张桌子的大小都一样
  3. 可以在线修改表
  4. 以上都不是

答案:A、C。

11. 创建一个名为 123_A 的表,用于存储组织中的员工人数。表名有什么问题?

  1. 表名不能以数字开头
  2. 这个名字没有错。
  3. 命名表时不能使用下划线
  4. 以上都不是

答: A.根据对象命名约定,表名必须以字母开头。

12. 表名最多可以包含多少个字母?

  1. 1-20 个字符
  2. 1-10 个字符
  3. 1-30 个字符
  4. 1-50 个字符

答案:C . 表名不能超过 30 个字符。

13 下列哪些字符可用于命名表?

  1. 从 A 到 Z
  2. 到 z
  3. 0 到 9
  4. 上述所有的

答案:D。按照 Oracle 中的标准命名约定,对象的名称在任何情况下都可以包含字母。强制性地,第一名是字母,其余的可以是字母和数字的混合。

14. 下列哪些特殊字符可用于命名表?

  1. @
  2. #
  3. $
  4. _(下划线)

答案:B、C、D。命名表时不允许使用除 (#、$、_) 之外的其他特殊字符。不鼓励在表名中使用特殊字符。

15.关于表名的说法正确的是?

  1. 表可以有一个名称,该名称由同一用户拥有的其他对象使用
  2. 序列和表可以具有相同的名称
  3. 视图和表可以同名
  4. 表名不得与同一用户拥有的另一个对象的名称重复

答案:D。由于命名空间,表名不能与任何其他模式对象相同。共享相同命名空间的模式对象包括表、视图、序列、私有同义词、存储过程、存储函数、包、物化视图和用户定义类型。

16.您创建一个表并将其命名为 COUNT。CREATE TABLE 脚本的结果是什么?

  1. 不会创建表
  2. 将创建该表,并将下划线自动添加到名称 COUNT_ 中
  3. 将抛出 ORA 错误
  4. 表 COUNT 将被创建,没有任何错误

答案:A、C。您不能创建名称与 Oracle Server 保留字相同的表。

17. 您使用带引号的标识符“ ”创建一个表。你将如何引用这张表?

  1. ‘表名’
  2. “表名”
  3. A 或 B
  4. 以上都不是

答案:B.如果表是用带引号的标识符创建的,则必须使用双引号对其进行寻址。不建议使用带引号的标识符。带引号的标识符区分大小写

18. 创建一个名为 EMPLOYEES 的表。以下哪一项是可能的?

  1. 它可以被称为 eMPLOYEES
  2. 它可以被称为 EMPLoyees
  3. 它可以被称为员工
  4. 上述所有的

答案:D . 在 Oracle 中不带引号的对象名称不区分大小写。

19. 以下哪些是创建表的先决条件?

  1. CREATE TABLE 权限
  2. 储存空间
  3. 表中数据
  4. 以上都不是

答案:A、B。用户必须拥有 CREATE TABLE 权限,并且必须有足够的空间来为表段分配初始区。

20. 创建表的语法是什么?

  1. CREATE TABLE [schema.] 表(列数据类型 [DEFAULT expr] [,..] );
  2. CREATE TABLE INTO [schema.] 表(列数据类型 [DEFAULT expr] [,..] );
  3. 创建表值 [schema.] 表(列数据类型 [DEFAULT expr] [,..] );
  4. 以上都不是

答案:A。

21. 选择创建表格时必须指定的元素。

  1. 列名
  2. 列数据类型
  3. 列大小
  4. 上述所有的

答案:D。一个表必须至少有一个列、它的数据类型规范和精度(如果需要)。

22. 名为“Kevin”的用户想要访问另一个名为“Jonathan”的用户拥有的表。以下哪一项对凯文有效?

  1. 从 Kevin.employees 中选择 *;
  2. 从 jonathan.employees 中选择 *;
  3. A 或 B
  4. 以上都不是

答案:B。

23. 关于模式,什么是正确的?

  1. 模式归数据库用户所有并与该用户同名
  2. 每个用户拥有一个架构
  3. 模式对象包括数据库链接
  4. 上述所有的

答案:D . 数据库中的用户空间称为模式。模式包含用户拥有或访问的对象。每个用户都可以拥有自己的单一架构。

24.关于表格,下列哪项是正确的?

  1. 为表提供默认值
  2. 在 INSERT 语句期间可以为表的列提供默认值
  3. A 或 B
  4. 以上都不是

答案:B.可以在定义期间使用关键字 DEFAULT 为列指定默认值。

25. 创建表时,以下哪些选项可以与 DEFAULT 选项一起使用?

  1. 字符串
  2. 表达式
  3. SQL 函数
  4. 上述所有的

答案:D。列的默认值可以是文字,也可以是使用 SQL 函数的导数。

26、下面哪个命令是用来查看表的结构的?

  1. 更新
  2. 显示
  3. 描述
  4. 线轴

答案:C. DESCRIBE 是一个 SQL*Plus 命令,用于列出表的结构。

27.一列CHECK约束的限制是多少?

  1. 没有限制
  2. 1
  3. 2
  4. 4

答案:A. Oracle 对列的检查约束没有限制。

28. 以下哪个命令会删除表员工?(考虑给定的表结构)

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)
  1. DROP employees
  2. DROP TABLE employees
  3. TRUNCATE employees
  4. 以上都不是

答案:B。

29. 命名空间是什么?

  1. 它是一组对象类型
  2. 在命名空间内,所有对象名称都应由架构和名称唯一标识
  3. 不同命名空间中的相同类型的对象可以共享相同的名称
  4. 上述所有的

答案:D . 命名空间定义了一组对象类型,其中所有的名称必须由模式和名称唯一标识。不同命名空间中的对象可以共享相同的名称。

30. 以下哪些对象类型共享相同的命名空间?

  1. 同义词
  2. 桌子
  3. 观看次数
  4. 上述所有的

答案:D。

31. 关于表和索引,下列哪项是正确的?

  1. 索引和表可以在模式中具有相同的名称
  2. 模式中的索引和表不能同名
  3. A 和 B 都不行
  4. 以上都不是

答案: A.由于索引和约束共享相同的命名空间,因此表和索引可以具有相同的名称。

32. 关于创建表的说法正确的是什么?

  1. 创建表时,应为每一列分配一个数据类型
  2. 对列的数据类型分配不是强制性的
  3. 必须将数据类型分配给表而不是列
  4. 以上都不是

答案:A . 为了构建表的结构,每一列都必须具有数据类型和精度等行为属性。

33. 假设您创建一个如下所示的表:

CREATE TABLE employees
(emp_id NUMBER(4),
last_name VARCHAR2 (20)
);

Oracle 将为 LAST_NAME 列分配多少空间?

  1. 如果没有行,则 Oracle 不会为 last_name 列分配任何空间
  2. 如果填充了行,则 Oracle 将为 last_name 列分配无限空间
  3. A 和 B 都不行
  4. 以上选项都没有

答案:A。

34. VARCHAR2 数据类型的大小范围是多少?

  1. 1 字节到 2 字节
  2. 1 字节到 2000 字节
  3. 1 字节到 4000 字节
  4. 以上都不是

答案:C。在 Oracle 11g 第 2 版之前,字符串数据类型 VARCHAR2 最多可以包含 4000 个字节。

35.CHAR 数据类型可以取的大小范围是多少?

  1. 1 字节到 2 字节
  2. 1 字节到 2000 字节
  3. 1 字节到 4000 字节
  4. 1 字节到 3000 字节

答案:B。在 Oracle 11g 第 2 版之前,字符串数据类型 CHAR 最多可以包含 2000 个字节。

36. 关于 CHAR 数据类型,哪些是正确的?

  1. 如果数据不是列的长度,那么它将被替换为 NULL 值
  2. 如果数据不是列的长度,那么它将用空格填充
  3. 必须具有与 CHAR 大小中提到的相同大小的数据,否则会引发 ORA 错误
  4. 以上都不是

答案:B. CHAR 为值提供固定长度的存储,而 VARCHAR2 是灵活的。如果在 CHAR 列中插入长度小于 CHAR 精度的数据,则将剩余长度填充到列值中。

37. 以下哪个是可变长度二进制数据的数据类型?

  1. VARCHAR
  2. VARCHAR2
  3. 生的
  4. NVARCHAR2

答案:C。

38. NUMBER 数据类型允许的精度是多少?

  1. 1 到 20
  2. 1 到 4K
  3. 1 到 30
  4. 1 至 38 位

答案:D。在 Oracle 11g 第 2 版之前,主要数据类型 NUMBER 的最大精度为 38 位。

39. NUMBER 数据类型允许的比例是多少?

  1. 1 到 20
  2. -84 到 100
  3. -84 到 127
  4. 以上都不是

答案:C。

40. 以下哪些是日期和时间数据的数据类型?

  1. 时间戳
  2. 间隔天到第二天
  3. 带有当地时区的时间戳
  4. 上述所有的

答案:D。

41. 以下哪些数据类型适用于大对象?

  1. CLOB
  2. BLOB
  3. 生的
  4. 上述所有的

答案:A、B。SQL 中的LOB 数据类型有 BLOB、CLOB 和 BFILE。

42. 如果插入的值的长度小于为 VARCHAR2 数据类型列定义的长度,会发生什么情况?

  1. 它会抛出一个 ORA 错误
  2. 它将成功插入,并且该值将根据需要占用尽可能多的空间。
  3. 它将被插入,剩余的空间将用空格填充
  4. 以上都不是

答案:B. VARCHAR2 包含可变长度的字符数据。

43、oracle中的NUMBER(8, 2)是什么意思?

  1. 表示一共8位,小数点前6位,小数点后2位
  2. 表示一共10位,小数点前8位,小数点后2位
  3. 表示小数点前有2位,小数点后有8位
  4. 以上都不是

答:A、p表示精度,小数点左右的总位数,最多38位;s 或小数位数表示小数点右侧的位数。例如:NUMBER(7, 2) 可以存储最大为 99999.99 的数值。如果未指定精度或小数位数,则该列默认为 38 位精度。

44. 以下哪个查询会创建一个没有行的表?

  1. CREATE TABLE emp AS SELECT 0 from dual;
  2. CREATE TABLE emp AS SELECT * from employees where 1=1;
  3. CREATE TABLE emp AS SELECT * from employees where 1=2;
  4. CREATE TABLE emp AS SELECT 0 from employees;

答案:C . 直接路径操作 CTAS (CREATE TABLE .. AS SELECT..) 可用于复制现有表的结构,而无需复制数据。

45. 以下哪个语句会在已经创建的表中添加一列?

  1. ALTER TABLE table_name add column (job varchar2(20));
  2. ALTER TABLE table_name add job varchar2(20);
  3. ALTER TABLE table_name add (job varchar2(20));
  4. ALTER TABLE table_name add column (job);

答案:C . ALTER TABLE 命令允许用户向表中添加新列。在新表中创建列的相同规则适用于向现有表中添加列。新列必须由列定义名称和数据类型(和宽度,如果适用)。也可以指定默认值。不同之处在于新列添加在现有表的末尾——它将是最后一列。

46. 以下哪个语句会修改已经存在的列的数据类型?

  1. ALTER TABLE table_name MODIFY (job varchar2(10) );
  2. ALTER TABLE table_name MODIFY job varchar2(10);
  3. ALTER TABLE table_name MODIFY column (job varchar2(10) );
  4. ALTER TABLE table_name MODIFY (job varchar2(10) );

答案: A. ALTER TABLE..MODIFY 用于修改表中的列定义。允许的更改是提高列精度、更改数据类型系列中的数据类型或更改列的默认值。

47. 以下哪个语句会从表中删除一列?

  1.  ALTER TABLE table_name DROP (job varchar2(10) );
  2. ALTER TABLE table table_name DROP COLUMN (job varchar2(10) );
  3. ALTER TABLE table table_name DROP COLUMN (job);
  4. ALTER TABLE table_name MODIFY (job varchar2(10) );

答案:C . ALTER TABLE..DROP COLUMN 可用于从表中删除列。

48. 以下哪一项将列 emp_id 重命名为 empno?

  1. ALTER TABLE employees RENAME column emp_id to empno;
  2. ALTER TABLE employees RENAME emp_id to empno;
  3. ALTER TABLE employees RENAME column emp_id to empno;
  4. 以上都不是;

答案: A. ALTER TABLE..RENAME 可用于重命名表中的现有列。

49. 您需要将表员工标记为只读。您将执行以下哪个语句来获得所需的结果?

  1. ALTER TABLE employees set READ;
  2. ALTER TABLE employees READ ONLY;
  3. ALTER TABLE employees READ_ONLY;
  4. ALTER TABLE employees set READ ONLY;

答案:B . 可以将表标记为只读以使其对 DML 和 DDL 语句处于被动状态。只读特性是在 Oracle 11g 中引入的。

50. 下列关于 DDL 语句的说法中,哪些是正确的?

  1. DDL 命令成为正在进行的事务的一部分
  2. DDL 命令自动提交并结束正在进行的活动事务
  3. 如果 DDL 命令失败,则仍提交当前事务
  4. 如果 DDL 命令失败,则回滚当前事务

答案:B. DDL 命令只有在没有错误的情况下成功执行时才会自动提交。如果 DDL 命令失败,则正在进行的事务在会话中仍处于活动状态并且未提交到数据库中。

51. 如果对发布 DDL 的表存在活动事务,会发生什么情况?

  1. 事务回滚
  2. 事务已提交并终止
  3. A 和 B
  4. 以上都不是

答案:B。

52. 以下哪个命令会删除 SQL 语句中未使用的列?

  1. ALTER TABLE tablename DROP COLUMN column_name;
  2. ALTER TABLE tablename DROP unused columns;
  3. ALTER TABLE tablename set unused column;
  4. ALTER TABLE tablename DROP columns;

答案:C . SET UNUSED 命令只删除表中未使用的列,而且速度更快

53. 尝试删除标记为只读的表时会发生什么?

  1. 它会抛出错误
  2. 它将不再保持只读但也不能被删除
  3. 它将被删除而不会出错
  4. 它将保持不变

答案:C . DROP 命令影响非只读表的数据字典定义,因此可以删除

考虑以下陈述并回答后面的问题 54 和 55:

CREATE TABLE departments 
(dept_id NUMBER (2),
 dept_name VARCHAR2(14),
 create_date DATE DEFAULT SYSDATE); 

54. 如果从语句中删除 DEFAULT 子句规范会发生什么?

  1. 该脚本将抛出错误,因为必须使用默认值指定 DATE 列
  2. 系统生成的默认值将分配给该列
  3. 将创建的表没有 CREATE_DATE 列的默认值
  4. 以上都不是

答案:C。

55.以上说法正确的是?

  1. 它会在会话中自动提交事务
  2. 它将在模式中创建表 DEPARTMENTS
  3. 它将为 CREATE_DATE 列设置默认值
  4. 以上都不是

答案:A、B、C。

56. BLOB 数据类型列最多可以容纳多少值?

  1. 1 KB
  2. 2 GB
  3. 4GB
  4. 3 KB

答案:C。根据 Oracle 11g,BLOB 中容纳的最大数据大小可以是 4GB。

57.CLOB和BLOB数据类型有什么区别?(选择最合适的答案)

  1. CLOB 是字符数据,BLOB 是二进制数据
  2. CLOB 是最大 2GB 的字符数据,BLOB 是最大 4GB 的二进制数据
  3. CLOB 是最大 4 GB 的字符数据,BLOB 是最大 4 GB 的二进制数据
  4. 以上都不是

答:C. CLOB 是一个字符大对象,用于存储 PDF、docs 和文本文件等字符文件,而 BLOB 是用于存储媒体文件的二进制 LOB。

58.以下哪个是ROWID?

  1. 它是给一组以 1 开头的行的序列号
  2. 它是给表中一行的字母数字地址
  3. A 和 B
  4. 以上都不是

答案:B。它是一个 base-64 系统,表示其表中行的唯一地址。

59. 存储在外部文件(最大 4 GB)中的二进制数据的数据类型是什么?

  1. BLOB
  2. CLOB
  3. 文件
  4. 文件

答:D. BFILE 是外部 LOB 类型,用于引用外部媒体文件。内部 LOB 类型有 BLOB 和 CLOB,用于存储在数据库中的二进制大文件和字符大文件。

60. 用子查询创建的表是什么?

  1. 使用子查询创建表时,不会复制 VARCHAR2 数据类型列
  2. 使用子查询创建表时,不会复制 CLOB 数据类型列
  3. 使用子查询创建表时不会复制 LONG 列
  4. 以上都不是

答案:C。创建表的 CTAS 方法不会复制 LONG 列。

61. 以下哪种数据类型不能与 GROUP BY 和 ORDER BY 子句一起使用?

  1. CLOB
  2. VARCHAR2
  3. 字符

答案:D. LONG 数据类型不能用于 GROUP BY 和 ORDER BY 子句中。

62.一个表可以包含多少个LONG列?

  1. 没有任何
  2. 最多 2 个
  3. 最少 2
  4. 只有一个

答案:D。一个表最多可以包含一个 LONG 类型的列。

63.SQL中不能约束以下哪些数据类型?

  1. VARCHAR2
  2. 字符
  3. 日期

答案:B.不能在 LONG 类型列上创建约束。

64. 如果您想要带小数秒的日期,可以使用以下哪种数据类型?

  1. 日期
  2. VARCHAR2
  3. 时间戳
  4. 以上都不是

答案:C . TIMESTAMP 数据类型提供日期值的额外精确信息。它提供小数秒和时区信息。

65. 您需要在一列中存储天、小时、分钟和秒的间隔。哪种数据类型会有所帮助?

  1. 时间戳
  2. 年到月的间隔
  3. 间隔天到第二天
  4. 以上都不是

答案:C。

66.您需要找出 2011 年 6 月和 2012 年 6 月雇佣了多少员工。以下哪种数据类型会有所帮助?

  1. 间隔天到第二天
  2. 时间戳
  3. 日期
  4. 年到月的间隔

答案:D。

67. 约束条件是什么?

  1. 他们在行级别执行规则
  2. 他们在表级别执行规则
  3. 创建表时必须创建约束
  4. 以上都不是

答案:B . 约束是应用于添加到表中的数据的规则。它代表业务规则、策略或过程。违反约束的数据不会添加到表中。约束可以在表创建期间作为 CREATE TABLE 命令的一部分包含在内,或者使用 ALTER TABLE 命令添加到现有表中。必须使用表级方法创建基于复合列(多列)的约束。

68. 约束有什么帮助?

  1. 它们限制了表的存储容量,从而节省了数据库空间
  2. 它们防止修改表
  3. 如果存在依赖关系,它们会阻止删除表
  4. 以上都不是

答案:C。约束是应用于添加到表中的数据的规则。它代表业务规则、策略或程序。违反约束的数据不会添加到表中。

69.A RAW 数据类型列最多可以存储什么值的变长二进制字符串?

  1. 10 GB
  2. 1 TB
  3. 2 GB
  4. 4GB

答案:C。

70. 以下哪些是 Oracle 中的有效约束?

  1. 指数
  2. 一般
  3. 独特
  4. 首要的关键

答案:C、D。只能使用列级方法创建 NOT NULL 约束。PRIMARY KEY 约束不允许指定列中的重复值或 NULL 值。一个表中只允许有一个 PRIMARY KEY 约束。FOREIGN KEY 约束要求列条目与表中引用的列条目匹配或为 NULL。UNIQUE 约束类似于 PRIMARY KEY 约束,不同之处在于它允许在指定列中存储 NULL 值。CHECK 约束确保数据在添加到表之前满足给定条件。

71. 以下哪些 DML 操作考虑了对列的约束?

  1. 插入
  2. 联盟
  3. 删除
  4. 更新

答案:A、C、D。所有 DML 操作都服从对表列的约束。

72. 什么时候可以创建约束?

  1. 创建表时
  2. 创建表后
  3. A 和 B
  4. 以上都不是

答案:C.可以在表创建期间将约束作为 CREATE TABLE 命令的一部分包含在内,或者使用 ALTER TABLE 命令将其添加到现有表中。

73 约束存储在哪里?

  1. 在 SGA
  2. 在一张桌子
  3. 在数据字典中
  4. 以上都不是

答案:C。

74. 您创建了一个约束但没有命名。约束的默认名称是什么?

  1. SYS_Cn
  2. SYS_约束
  3. SYS_Const
  4. SYS_C0

答案: A.默认情况下,Oracle 为约束 SYS_Cn 提供了一个通用名称,其中 n 是一个整数以保持约束名称的唯一性。

75. 列级约束和表级约束的功能区别是什么?

  1. 列级约束适用于表的所有列
  2. 表级约束适用于表的所有列
  3. 它们在功能上是相同的,只是语法不同
  4. 以上都不是

答案:C。在功能上,表级约束和列级约束的工作方式类似。复合约束只能在表级别定义。

76. 关于列级约束,哪些是正确的?

  1. 它们可以在创建表之前创建
  2. 它们可以在定义列之前创建
  3. 它们在定义列时包括在内
  4. 以上都不是

答案:C.列级约束与列规范一起定义。

77. SQL 中的 NOT NULL 约束是什么?

  1. 它们应该在表级别定义
  2. 它们应该在列级别定义
  3. 它们应该只定义在一列上
  4. 它们应该只在一行上定义

答案:B.只能使用列级方法创建 NOT NULL 约束。

考虑以下陈述并回答后面的问题 78 和 79:

CREATE TABLE employees (
emp_id NUMBER (6)  CONSTRAINT emp_emp_id_PK PRIMARY KEY,
first_name VARCHAR2(20),
last_name VARCHAR2(20),
hire_date DATE 
); 

78.上述语句中创建了哪种类型的约束?

  1. 列级约束
  2. 表级约束
  3. 命名约束
  4. 规格约束

答案: A.列级约束与列定义一起创建。

79. 上面的语句可以做哪些修改,给它一个表级约束?

  1. 约束 emp_emp_id_PK 主键
  2. 约束 emp_emp_id_PK 主键 (EMP_ID)
  3. 约束 emp_emp_id_PK EMP_ID 主键
  4. 约束主键 emp_emp_id_PK

答案:B。

80. PRIMARY KEY 约束的正确之处是什么?

  1. 它隐式地将 NOT NULL 约束应用于定义它的列
  2. 它将 UNIQUE KEY 约束隐式应用于定义它的列
  3. 它隐式地将 CHECK 约束应用于定义它的列
  4. 它将 DEFAULT 约束隐式应用于定义它的列

答案: A. PRIMARY KEY 约束不允许指定列中的重复值或 NULL 值。一个表中只允许有一个 PRIMARY KEY 约束。

81. 关于 UNIQUE KEY 约束,下列哪项是正确的?

  1. UNIQUE KEY 约束和 PRIMARY KEY 约束相同
  2. 如果列上没有定义 NOT NULL,则 UNIQUE KEY 约束允许 NULL 值
  3. 当在列上定义 UNIQUE KEY 约束时,我们可以有两个相同的行
  4. 以上都不是

答案:B . UNIQUE 约束类似于 PRIMARY KEY 约束,除了它允许在指定列中存储 NULL 值。

考虑以下陈述并回答后面的问题 82 和 83:

CREATE TABLE employees (
emp_id NUMBER (6)
first_name VARCHAR2(20),
last_name VARCHAR2(20),
job VARCHAR2(20),
hire_date DATE 
CONSTRAINT emp_job_UK UNIQUE (job)); 

82. 以下哪个语句解释了上面的 CREATE TABLE 脚本?

  1. 此表不能有两个相同的作业 ID
  2. 此表可以有两个或多个相同的作业 ID
  3. 此表的 JOB 列中可以有 NULL 值
  4. 以上都不是

答案:A、 C。JOB 列上的 UNIQUE 约束将限制重复值但允许空值。

83. 如果将约束emp_job_UK 修改为emp_job_PK PRIMARY KEY (job),结果是什么?

  1. 仅当 JOB 列中没有 NULL 值时,才会发生此更改
  2. 这种变化可以在没有任何限制的情况下发生
  3. 此更改将更改列 JOB 的值
  4. 以上都不是

答案:A。

84. UNIQUE 键约束的正确之处是什么?

  1. 在列上定义 UNIQUE 约束时隐式创建唯一键索引
  2. 当在列上定义 UNIQUE 约束时隐式创建 PRIMARY KEY 约束
  3. 在列上定义 UNIQUE 约束时隐式创建 NOT NULL 约束
  4. 以上都不是

答案: A.当对表施加唯一约束时,Oracle 内部会在该列上创建唯一键索引以限制值的重复。

85.下列关于索引的说法正确的是?

  1. 如果对表执行 UPDATE 语句,则索引也需要手动更新
  2. 如果对表执行了 DELETE 语句,索引也需要手动删除
  3. 删除表时,索引会自动删除
  4. 如果对表执行 UPDATE 语句,则相应的索引也会更新。

答案:C、D。

86.以下哪个 CREATE TABLE 语句是有效的?

  1. CREATE TABLE EMPLOYEES 
    (emp_id NUMBER (2) PRIMARY KEY,
    first_name VARCHAR(20),
    last_name VARCHAR(20),
    hire_date DATE NOT NULL); 
  2. CREATE TABLE EMPLOYEES 
    (emp_id NUMBER (2) PRIMARY KEY NOT NULL,
    first_name VARCHAR(20),
    last_name VARCHAR(20),
    hire_date DATE NOT NULL PRIMARY KEY); 
  3. CREATE TABLE EMPLOYEES 
    (emp_id NUMBER (2) PRIMARY KEY,
    first_name VARCHAR(20),
    last_name VARCHAR(20),
    hire_date DATE NOT NULL UNIQUE);
  4. CREATE TABLE EMPLOYEES 
    (emp_id NUMBER (2),
    first_name VARCHAR(20),
    last_name VARCHAR(20),
    hire_date DATE NOT NULL,
    CONSTRAINT emp_emp_id_PK PRIMARY KEY (emp_id)); 

答案:A、C、D。所有 CREATE TABLE 脚本都是有效的。

87.一个表可以有多少个PRIMARY KEY约束?

  1. 0
  2. 无限
  3. 2
  4. 1

答案:D。一张表只能有一个主键。

88. 您想在 EMP_ID 上放置一个 CHECK 约束,这样它应该等于它正在获取其值的 Sequence 的当前值。以下哪些陈述将帮助您实现这一目标?

  1. Emp_id NUMBER (10) CONSTRAINT emp_emp_id_chk 检查 (emp_id = EMPNO.CURRVAL);
  2. emp_id NUMBER (10) 约束 emp_emp_id_chk 检查 (emp_id = EMPNO.NEXTVAL);
  3. emp_id NUMBER (10) 约束 emp_emp_id_chk 检查 (EMPNO.CURRVAL);
  4. 以上都不是

答案:D. CHECK 约束中不能使用 CURRVAL、NEXTVAL、LEVEL 和 ROWNUM 伪列

89. 以下哪个命令有助于将外键值转换为 NULL?

  1. 删除级联
  2. 删除集 NULL
  3. 级联
  4. 参考

答案:B。

90. 您需要在 EMPLOYEES 表中添加一个约束,以限制工资低于 10000 的员工的添加。以下哪个命令会给出您需要的结果?

  1. ALTER TABLE employees ADD CONSTRAINT emp_emp_sal_CHECK CHECK (salary >= 10000); 
  2. ALTER TABLE employees ADD CHECK CONSTRAINT emp_emp_sal_CHECK (salary>10000); 
  3. ALTER TABLE employees ADD CONSTRAINT CHECK emp_emp_sal_CHECK (salary = 10000); 
  4. ALTER TABLE employees ADD CONSTRAINT emp_emp_sal_CHECK (salary < 10000); 

答案:A。

91. 您需要向 EMPLOYEES 表添加一个约束,该约束强加了所有员工的 HIRE_DATE 应等于 SYSDATE-7 的限制。以下哪项陈述会给您所需的结果?

  1. ALTER TABLE employees ADD CHECK CONSTRAINT emp_emp_sal_CHECK  ( to_char(hire_date,'DD-MON-YY') = SYSDATE -7); 
  2. ALTER TABLE employees ADD CONSTRAINT CHECK emp_emp_sal_CHECK ( to_char(hire_date,'DD-MON-YY') = SYSDATE -7); 
  3. ALTER TABLE employees ADD emp_emp_sal_CHECK CHECK ( to_char(hire_date,'DD-MON-YY') = SYSDATE -7); 
  4. 以上都不是

答案:D。您不能在 CHECK 约束中使用 SYSDATE、UID、USER 和 USERENV 函数。

考虑以下查询并回答后面的问题 92 到 94:

CREATE TABLE EMPLOYEES 
(emp_id NUMBER (2),
first_name VARCHAR(20),
last_name VARCHAR(20),
dept_id NUMBER (10),
hire_date DATE DEFAULT SYSDATE 
CONSTRAINT emp_emp_id_PK PRIMARY KEY (emp_id, hire_date)
CONSTRAINT emp_dept_FK FOREIGN KEY (dept_id) 
REFERENCES departments (dept_id)
); 

92. 以下哪个语句解释了 CREATE TABLE 脚本?

  1. FOREIGN KEY 约束是在表级别的 DEPT_ID 列上定义的
  2. 定义的 FOREIGN KEY 约束引用了 DEPARTMENTS 表中的 DEPT_ID
  3. A 和 B
  4. 以上都不是

答案:C。当我们为参照完整性定义 FOREIGN KEY 约束时使用关键字 FOREIGN KEY 和 REFERENCES。

93、删除EMPLOYEES表时,需要删除DEPARTMENTS表中的所有依赖行。以下哪个命令可以解决问题?(考虑给定的表结构)

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)
SQL> DESC departments
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 DEPARTMENT_ID		 NOT NULL NUMBER(4)
 DEPARTMENT_NAME	 NOT NULL VARCHAR2(30)
 MANAGER_ID			  NUMBER(6)
 LOCATION_ID			  NUMBER(4)
  1. 删除集 NULL
  2. 删除级联
  3. 删除所有
  4. 更新

答案:B.如果约束定义中包含 ON DELETE CASCADE 并且从父表中删除了一条记录,那么子表中的任何相应记录也会被自动删除。

94. 如下所示的 EMPLOYEES 表,有 5 名员工在部门 10 工作。行政部门的执行人员发出以下查询。

DELETE FROM departments
WHERE dept_id = 10; 

这个查询的结果是什么?(假设表结构如图所示)

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)
SQL> DESC departments
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 DEPARTMENT_ID		 NOT NULL NUMBER(4)
 DEPARTMENT_NAME	 NOT NULL VARCHAR2(30)
 MANAGER_ID			  NUMBER(6)
 LOCATION_ID			  NUMBER(4)
  1. 完整性约束错误
  2. 成功执行
  3. A 和 B 都不行
  4. 以上都不是

答:A . DEPARTMENTS 中的 DEPT_ID 是表 EMPLOYEES 中的外键,并且部门 10 中有员工,因此除非找到子记录,否则无法从父表中删除值。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁