- OCA/OCP认证考试指南全册(第3版) Oracle Database 12c(1Z0-061,1Z0-062,1Z0-063) (计算机与信息)
- (美)John Watson等
- 2178字
- 2021-03-26 13:10:21
5.13 自测题答案
(1) 答案为D。模式会默认为当前用户。
A、B、C和E不正确。A是错误的,因为所有表都必须在模式中。B是错误的,因为该创建会成功。C是错误的,因为SYS模式不是默认模式。E是错误的,因为虽然有概念用户PUBLIC,但它根本没有模式。
(2) 答案为A。索引有自己的名称空间。
B、C、D和E是错误的。存储过程、同义词、表和视图都在同一名称空间里。
(3) 答案为D和E。D违背了表名必须以字母开头的原则。E违背了表名不能是保留字的原则。使用双引号就可以绕开这两条原则。
A、B和C是错误的,因为它们全部都会成功(尽管使用A和B不是很明智)。
(4) 答案为A和C。堆是可变长度行的表,这些行按随机顺序排列。
B是错误的,因为堆表只能是一个表。D和E是错误的,因为堆表可以(通常会)有索引和主键。
(5) 答案为A、C、D、E和F。所有这些都是可变长度的数据类型。
B是错误的。CHAR列是固定长度的。
(6) 答案为D。数字会舍入为1位,字符串会强制转换为日期。
A、B和C是错误的。自动舍入和强制类型转换会更正“错误”,尽管理想情况下它们不会发生。
(7) 答案为D。STRING不是内部数据类型。
A、B和C是错误的。CHAR、FLOAT和INTEGER都是内部数据类型,尽管不像其他几个那样使用广泛。
(8) 答案为C。该条件只应用于要插入的行,不适用于表创建。
A、B和D是错误的。A是错误的,因为该语句在语法上是正确的。B是错误的,因为条件不适用于DDL,它只适用于DML。D是错误的,因为条件会从选择中排除所有行。
(9) 答案为D。检查和非空约束不依赖任何结构(除了它们应用的表之外),因此可以安全地复制到新表。
A、B、C和E是错误的。A是错误的,因为非空约束和检查约束会应用于新表。B、C和E是错误的,因为这些约束需要其他对象(索引或者父表),因此没有复制它们。
(10) 答案为C和D。唯一约束和主键约束需要索引。
A和B是错误的。NOT NULL和CHECK约束并不依赖于索引。
(11) 答案为C。违反约束时将只强制当前语句回滚。
A、B、D和E是错误的。A是错误的,因为已经成功的所有语句将保持不变。B和D是错误的,因为除非作特别要求,否则不会提交任何信息。E是错误的,因为整个语句(而不只是失败的行)将回滚。
(12) 答案为D。所有语句都是错误的。
A、B和C是错误的。A是错误的,因为复合索引并不需要在同一数据类型的列上。B是错误的,因为复合索引中的列不必物理相邻。C是错误的,因为索引和表并不共享同一名称空间。
(13) 答案为A、D和E。压缩、反向键和唯一性只用于B*树索引。
B、C和F是错误的,降序、基于函数和复合索引可以用于B*树或位图。
(14) 答案为A。只有插入会话才能访问临时表中的行。
B、C和D是错误的,它们都未正确描述临时表中的行的可见范围。
(15) 答案为B。如果会话的PGA容不下临时表,临时表将写入会话的临时表空间中。
A、C和D是错误的。A是错误的,因为临时表可以写出到临时段。C是错误的,因为临时段的位置特定于会话,并非特定于表。D是错误的,是会话服务器进程(而非是用户进程)写入数据。
(16) 答案为D和E。聚合和联接使视图复杂,且不能使用DML。
A、B和C是错误的。选择和投影或重命名列不会使视图复杂。
(17) 答案为D。虽然遗憾但这是事实。视图对性能没有帮助,除非它们包括调整提示。
A、B和C是错误的。A是错误的,因为视图只是SELECT语句;它不会预运行查询。B是错误的,因为Oracle优化器会指出语法中的所有区别。C是错误的,因为虽然预编译了视图,但是这不会影响编译用户的语句的速度。
(18) 答案为C。WITH CHECK OPTION能够阻止会导致行从视图中消失的DML。
A、B和D是错误的。A是错误的,因为视图默认被创建为可读/写。B是错误的,因为该视图是简单视图。D是错误的,因为该语句不会成功(因为检查选项会拒绝它)。
(19) 答案为A。DEPT.DEPTNO上没有NOT NULL或PRIMARY KEY约束。
B、C和D是错误的。B是错误的,因为约束在明细表上而不是在视图上实施。C和D是错误的,因为错误消息会不同。
(20) 答案为B和D。公有同义词不是模式对象,因此只能被直接访问。它们可与模式对象同名。
A和C是错误的,因为查看或从公有同义词中选择时必须授予用户对它的权限。
(21) 答案为B。优先级的顺序是在公有名称空间之前搜索模式名称空间,因此找到的将是(EMPLOYEES的)私有同义词。
A、C和D是错误的。A是错误的,因为在公有名称空间和模式名称空间中都可以存在同义词。C是错误的,因为优先级顺序会先发现私有同义词。D是错误的,因为同一个模式中不可能有同名的表和私有同义词。
(22) 答案为D。同义词没问题,但视图会无效。Oracle将试图重新编译视图,但是这一尝试会失败。
A、B、C和E是错误的。A是错误的,因为视图将无效。B是错误的,因为FORCE关键字只能在创建视图时应用(即便如此,它仍然会无效)。C是错误的,因为同义词没问题。E是错误的,因为视图没有被隐式删除(与索引和约束不同)。
(23) 答案为D。默认是NOCYCLE,序列不能进一步增加。
A、B和C是错误的。A和B是错误的,因为CYCLE默认是禁用的。如果启用了它,发出的下一个数值会是1(不是0),因为1是START WITH的默认值。C是错误的,因为没有任何情况会允许序列发出重复值。
(24) 答案为A。不能修改序列的下一个值,因此必须重新创建它。
B、C和D是错误的。B是错误的,因为虽然NOCYCLE序列永远不会重新发出数值,但是没有理由不让新序列(具有相同名称)这么做。C是错误的,因为START WITH只能在创建时指定。D是错误的,因为这不会强制立即循环;它只会影响当序列到达MAXVALUE或MINVALUE时发生的事情。