题记: 本篇博文是Oracle OCP认证考试考点详解082系列的第一篇,本系列主要讲解Oracle OCP认证考试考点(题目),适用于19C/21C,跟着学OCP考试必过。
1. 第一题:
1. 题目
2. 解析及答案
关于Oracle数据库中节省空间特性的两个正确说法是:
A. An index created with the UNUSABLE attribute has no segment.(使用UNUSABLE属性创建的索引没有段。)
解析:当一个索引被设置为UNUSABLE时,它不会自动分配或使用任何存储空间(即段)。这个状态通常用于在需要重建索引但又希望暂时节省空间时使用。因此,A选项是正确的。
B. Private Temporary Tables (PTTs) store metadata in memory only.(私有临时表(PTTs)仅将元数据存储在内存中。)
解析:Oracle 18c引入了私有临时表(PTTs)的特性,其中元数据是存储在内存中的。这有助于减少磁盘I/O操作,提高数据库性能,并节省存储空间。因此,B选项也是正确的。
C. Private Temporary Tables (PTTs) when used, are always dropped at the next commit statement.(私有临时表(PTTs)在使用时,总是在下一个提交语句时被删除。)
解析:这是不准确的。私有临时表有两种类型:事务特定的(ON COMMIT DROP DEFINITION)和会话特定的(ON COMMIT PRESERVE DEFINITION)。前者在事务结束时删除表定义和数据,而后者在会话结束时删除数据但保留表定义。因此,C选项是错误的。
D. An index that is altered to be UNUSABLE will retain its segment.(被更改为UNUSABLE状态的索引将保留其段。)
解析:这与A选项相反。当索引被设置为UNUSABLE时,它会释放其占用的存储空间(即段)。因此,D选项是错误的
E. A table that is truncated will always have all of its extents removed.(被截断的表将始终删除其所有区段。)
解析:这也是不准确的。当表被TRUNCATE时,它会释放除了由MINEXTENTS参数指定的初始区段之外的所有区段空间。但是,初始区段空间不会被完全释放,而是保留以供将来使用。因此,E选项是错误的。
正确答案是A和B。
2. 第二题:
1. 题目
2. 解析及答案
关于视图的两个正确说法,我们可以根据Oracle数据库的特性来逐一分析这些选项:
A. A view must only refer to tables in its defining query.
解析:这是不准确的。视图可以基于表、其他视图(称为嵌套视图)或两者的组合来定义。视图定义查询不仅限于表。
B. The WITH CHECK clause prevents certain rows from being displayed when querying the view.
解析:Oracle SQL中并没有直接的“WITH CHECK”子句用于视图。通常,我们会在视图定义中使用WHERE子句来过滤行。因此,B选项是错误的。
C. Views can be updated without the need to re-grant privileges on the view.
解析:这是正确的,但前提是用户需要对视图所基于的底层表具有适当的更新权限。一旦视图被定义,并且用户具有必要的权限,他们就可以通过视图更新底层表中的数据,而无需对视图本身授予额外的权限。然而,需要注意的是,并非所有视图都是可更新的。如果视图基于复杂的查询(如包含聚合、连接或子查询),则可能无法直接更新。
D. The WITH CHECK clause prevents certain rows from being updated or inserted in the underlying table through the view.
解析:同样,Oracle SQL中没有直接的“WITH CHECK”子句用于视图。但是,如果我们将此解释为视图定义中的某种机制(如触发器、规则或约束),则这些机制确实可以限制通过视图对底层表的更新或插入操作。然而,由于D选项直接提到了“WITH CHECK”子句,这是不准确的。在Oracle中,通常会使用触发器或视图本身的定义(如只读视图)来限制更新或插入操作。
E. Views can be indexed.
解析:这是不准确的。在Oracle中,无法直接对视图创建索引,因为视图是基于查询的虚拟表,不包含实际的数据行。但是,可以对视图所基于的底层表创建索引,以提高查询性能。另外,Oracle提供了物化视图(Materialized View)的功能,它允许将查询结果存储在磁盘上,并可以对其创建索引。但物化视图与普通视图在功能和用途上是不同的。
正确答案只能是C和D。
3. 第三题:
1. 题目
3.Examine the description of the products table
Which query is valid?
A.SELECT prod_id, AVG(MAX (cost)) FROM products GROUP BY prod_id.
B.SELECT prod_id, MAX (AVG (cost)) FROM products GROUP BY prod_id:
C.Select prod_id, release_date, SUM(cost) FROM products GROUP BY prod_id
D.SELECT prod_id, release_date, SUM(cost) FROM products GROUP BY prod_id, release_date
2. 解析及答案
这题很简单,没有出现在分组函数中的列必须出现在 group by 子句中,选D。
未完待续。
关注作者,您将获得更多OCP考试及Oracle DB方面的实战经验。后续不定期分享DB核心知识和排障案例及经验、性能调优等