题记:
本系列主要讲解Oracle OCP认证考试考点(题目),适用于19C/21C,跟着学OCP考试必过。
91. 第91题:
- 题目
- 解析及答案:
关于 Oracle 数据库中的索引及其管理,以下哪三个陈述是正确的?
A. 当对其底层表执行数据操作语言(DML)操作时,不可见索引(INVISIBLE index)不会得到维护。
当对其底层表执行数据操作语言(DML)操作时,不可见索引是会得到维护的。可见索引和不可见索引的区别在于,优化器默认情况下不会考虑不可见索引,但当表中有插入、更新或删除操作时,索引结构仍然会更新。例如,如果你向带有不可见索引的表中插入一行新数据,该索引将会更新以反映新的数据。所以,该选项错误。
B. 降序索引(descending index)是一种基于函数的索引。
降序索引并不是一种基于函数的索引。降序索引用于以降序方式存储索引值。基于函数的索引是基于一个函数或表达式创建的索引。例如,基于 "UPPER(column_name)" 创建的索引就是一种基于函数的索引。所以,该选项错误。
C. 可以在创建表(CREATE TABLE)语句中创建索引。
可以在创建表语句中创建索引。例如,你可以在一条 SQL 语句中同时创建一个表以及该表某一列上的索引,如下所示:"CREATE TABLE my_table (column1 NUMBER, column2 VARCHAR2 (10), CONSTRAINT pk_my_table PRIMARY KEY (column1));"。在这里,创建表的同时也创建了一个主键索引。所以,该选项正确。
D. 如果一个查询在一个已索引的列上进行筛选,那么在查询执行期间该索引总会被使用。
仅仅因为一个查询在一个已索引的列上进行筛选,并不意味着在查询执行期间该索引就一定会被使用。优化器会根据多种因素来决定是否使用索引,比如使用索引相对于全表扫描的成本、索引的选择性以及可用的统计信息等。例如,如果索引的选择性不强(即很大比例的行都符合筛选条件),优化器可能会选择全表扫描。所以,该选项错误。
E. 可以在同一个表列上创建唯一索引(UNIQUE index)和非唯一索引(non-unique index)。
可以在同一个表列上创建唯一索引和非唯一索引。例如,你可以创建一个唯一索引来满足特定业务规则对唯一性的要求,同时也可以创建一个非唯一索引来优化一个不需要唯一性的特定查询。所以,该选项正确。
F. 删除索引(DROP INDEX)语句在删除操作期间总是会阻止对表的更新。
删除索引语句在删除操作期间并不总是会阻止对表的更新。默认情况下,删除索引操作不会以阻止数据操作语言(DML)操作的方式锁定表。然而,在一些情况下,比如当有并发事务访问索引和表时,可能会存在一些限制或性能方面的影响。
答案:由于本题要求选三个正确的选项,根据上面的分析,CE肯定正确,剩下的ABDF里面最正确的是F,所以答案是CEF。
92. 第92题:
- 题目
- 解析及答案:
关于保存点(SAVEPOINT),以下哪两个陈述是正确的?
A. 在一个事务中只能设置一个保存点。
在一个事务中可以设置多个保存点。例如,在一个涉及多个数据操作步骤的复杂事务中,你可以设置多个保存点来标记不同的阶段。这样一来,如果有需要,你就可以回滚到事务内的特定点,而不必回滚整个事务。所以,该选项错误。
B. 回滚到保存点可以撤销一条创建索引(CREATE INDEX)语句。
创建索引语句是一种数据定义语言(DDL)语句。在大多数数据库系统中,DDL 语句会隐式地提交事务。一旦执行了创建索引语句,就无法通过回滚到保存点来撤销它。回滚到保存点只会影响在设置保存点之后执行的数据操作语言(DML)操作。所以,该选项错误。
C. 设置保存点不会执行提交(COMMIT)操作。
设置保存点并不会执行提交操作。它只是在事务中标记一个点,以便日后在需要时可以回滚到该点。在显式执行提交语句之前,事务一直处于未提交状态。例如,如果你设置了一个保存点,执行了一些 DML 操作,然后回滚到该保存点,那么在保存点之后所做的更改将会被撤销,并且事务仍然是打开的且未提交的。所以,该选项正确。
D. 回滚到保存点可以撤销一条删除(DELETE)语句。
回滚到保存点可以撤销一条删除语句。删除是一种 DML 操作。如果在执行删除语句之前设置了一个保存点,然后回滚到该保存点,那么删除操作将会被撤销,被删除的数据也会恢复。例如,如果你有一个包含一些记录的表,设置了一个保存点,删除了一条记录,然后回滚到该保存点,那么被删除的记录将会重新出现在表中。所以,该选项正确。
E. 回滚到保存点可以撤销一条截断(TRUNCATE)语句。
截断语句是一种 DDL 语句,通常会隐式地提交事务。一旦执行了截断语句,就无法通过回滚到保存点来撤销它。和创建索引的情况类似,回滚到保存点只会影响 DML 操作。所以,该选项错误。
答案:正确的两个是 C 和 D。
93. 第93题:
- 题目
93.Examine the description of the PRODUCT INFORMATION table:
Which query retrieves the number of products with a null list price?
A) SELECT COUNT (NVL (list_price, 0)) FROM product_information WHERE list_price IS NULL;
B) SELECT COUNT (DISTINCT list_price) FROM product_information WHERE list_price IS NULL;
C) SELECT COUNT (list_price) FROM product information WHERE list_price IS NULL;
D) SELECT COUNT (list_price) FROM product information WHERE list_price = NULL; - 解析及答案:
本题简单,答案选择A。
94. 第94题:
- 题目
- 解析及答案:
题目翻译:
以下哪四项活动可以使用 SQL Developer 来执行?
A)它可用于通过恢复管理器(RMAN)备份和恢复数据库。
B)它可用于调试 PL/SQL 程序。
C)必须对其进行配置才能使用 SQLcl。
D)它可用于开发服务器端 Java 程序。
E)它可用于开发客户端 Java 程序。
F)它可以运行 SQL 语句和 SQL 脚本。
G)它可用于管理数据库安全。
分析:
选项 A
SQL Developer 通常并不用于通过恢复管理器(RMAN)来直接备份和恢复数据库。RMAN 一般是通过命令行或者在某些情况下通过专门的备份与恢复管理界面来使用的。SQL Developer 更侧重于开发和查询任务。所以,该选项错误。
选项 B
SQL Developer 可用于调试 PL/SQL 程序。它提供了诸如设置断点、逐行执行代码以及查看变量等功能,以帮助开发人员识别并修复其 PL/SQL 代码中的问题。例如,开发人员可以在一个存储过程中设置一个断点,然后执行该过程,以便逐步查看代码的运行情况。所以,该选项正确。
选项 C
SQL Developer 不需要进行特定配置来 "允许使用 SQLcl"。SQLcl 是一个独立的命令行工具,尽管它在 SQL 执行方面与 SQL Developer 有一些相似之处,但它可以独立使用。所以,该选项错误。
选项 D
SQL Developer 可用于开发服务器端 Java 程序。它为开发和部署与数据库服务器进行交互的 Java 代码提供支持,比如 Java 存储过程或者基于 JDBC 的应用程序。例如,开发人员可以编写并测试一个访问数据库并执行诸如数据检索或操作等任务的 Java 类。所以,该选项正确。
选项 E
SQL Developer 也可用于开发客户端 Java 程序。它可用于编写和测试在客户端运行并连接到数据库的 Java 代码。例如,一个基于 Swing 的、用于查询数据库的应用程序可以使用 SQL Developer 进行开发和调试。所以,该选项正确。
选项 F
SQL Developer 能够运行 SQL 语句和 SQL 脚本。它提供了一个界面,用户可以在其中输入 SQL 命令、执行这些命令并查看结果。它还允许执行存储在文件中的 SQL 脚本。例如,用户可以编写一个从多个表中检索数据的复杂查询,并在 SQL Developer 中执行它。所以,该选项正确。
选项 G
SQL Developer 可用于管理数据库安全。它可用于管理用户账户、角色以及权限。例如,管理员可以使用 SQL Developer 创建新用户,授予或撤销对特定表或模式的诸如 SELECT、INSERT、UPDATE 和 DELETE 等权限。所以,该选项正确。
答案:从以上分析来看,除了C选项,其余选项其实都可以认为是对的,但题目要求选四项,那我们就选择最对的4个:BDFG
95. 第95题:
- 题目
- 解析及答案:
题目翻译:
查看 CUSTOMERS 表中 CUST_NAME 列的数据如下:
CUST_NAME
Renske Ladwig
Jason Mallin
Samuel McCain
Allan MCEwen
Irene Mikkilineni
Julia Nayer
你想要显示出姓氏以 "Mc" 或 "MC" 开头的 CUST_NAME 值。哪两个where从句能给出想要的结果?
分析:本题简单,选择BC。
未完待续。
关注作者,您将获得更多OCP考试及Oracle DB方面的实战经验。后续不定期分享DB核心知识和排障案例及经验、性能调优等