题记:
本系列主要讲解Oracle OCP认证考试考点(题目),适用于19C/21C,跟着学OCP考试必过。
51. 第51题:
- 题目
51.View the Exhibit and examine the description of the tables You execute this SQL statement
Which three statements are true?
A.The sales table has five foreign keys
B.The statement will execute successfully and a new row will be inserted into the SALES table
C.A product can have a different UNIT_PRICE at different times
D.A customer can exist in many countries.
E.The statement will fail if a row already exists in the SALES table for product 23
F. The statement will fail because a subquery may not be contained in a VALUES clause - 解析及答案:
查看展示内容并检查各表的描述信息。你执行了如下这条 SQL 语句:
以下哪三个陈述是正确的?
A. “sales” 表有五个外键。
B. 该语句将成功执行,并且会在 “sales” 表中插入一行新数据。
C. 一种产品在不同时间可以有不同的单价。
D. 一位顾客可以存在于多个国家。
E. 如果 “sales” 表中已经存在针对产品 23 的一行数据,那么该语句将会执行失败。
F. 该语句将会执行失败,因为 “VALUES” 子句中不可以包含子查询。
本题较简单,选择ABD。
52. 第52题:
- 题目
52.View the Exhibits and examine the structure of the costs and PROMOTIONS tables
You want to display prod_ids whose promotion cost is less than the highest cost prod_id in a promotion time interval
Examine this SQL statement
What will be the result?
A.It executes successfully and gives the required result.
B.It gives an error because the GROUP BY clause is not valid
C.It executes successfully but does not give the required result
D.It gives an error because the ALL keyword is not valid - 解析及答案:
查看展示内容并检查 “costs” 表和 “PROMOTIONS” 表的结构。
你想要显示在促销时间段内,其促销成本低于该时间段内成本最高的产品编号(prod_id)的那些产品编号。
查看以下这条 SQL 语句:
将会得到什么结果呢?
A. 它将成功执行并给出所需的结果。
B. 它会报错,因为 “GROUP BY” 子句无效。
C. 它会成功执行,但不会给出所需的结果。
D. 它会报错,因为 “ALL” 关键字无效。
答案应该选C,Prom_end_date-promo_begin_date返回的是数字,因此不能保证产品在同一个时间段进行促销。
53. 第53题:
- 题目
53.You must create a tablespace of non-standard block size in a new file system and plan to use this command
The standard block size is 8k but other non-standard block sizes will also be used
Which two are requirements for this command to succeed?
A.DB_32K_CACHE_SIZE must be set to a value that can be accommodated in the SGA
B.DB_32K_CACHE_SIZE should be set to a value greater than DB_CACHE_SIZE
C.DB_32K_CACHE_SIZE must be less than DB_CACHE_SIZE
D.The operating system must use a 32k block size
E.DB_CACHE_SIZE must be set to a size that is smaller than DB_32K_CACHE_SIZE
F. The /u02 file system must have at least 100g space for the datafile - 解析及答案:
你必须在一个新的文件系统中创建一个具有非标准块大小的表空间,并计划使用以下这条命令:
标准块大小是 8k,但也会使用其他非标准块大小。
要使这条命令成功执行,需要满足哪两个条件?
A. 必须将 DB_32K_CACHE_SIZE 设置为系统全局区域(SGA)能够容纳的值。
DB_32K_CACHE_SIZE 参数定义了用于 32K 块大小的缓存大小。要成功执行创建具有 32K 块大小的表空间的命令,必须在系统全局区域(SGA)中为这个缓存分配足够的内存。如果 SGA 中没有足够的空间用于 32K 缓存,该操作可能会失败。所以,此选项是一个必要条件。
B. 应该将 DB_32K_CACHE_SIZE 设置为大于 DB_CACHE_SIZE 的值。
在创建非标准块大小的表空间时,并没有要求 DB_32K_CACHE_SIZE 必须大于 DB_CACHE_SIZE。这两个缓存大小在这种相对大小的要求方面是相互独立的。所以,此选项不是一个必要条件。
C. 必须将 DB_32K_CACHE_SIZE 设置为小于 DB_CACHE_SIZE 的值。
同样,也没有规定 DB_32K_CACHE_SIZE 必须小于 DB_CACHE_SIZE。重点在于为 DB_32K_CACHE_SIZE 设置一个合适的值,以便为 32K 块大小的表空间容纳缓存,而不是它与 DB_CACHE_SIZE 的比较。所以,此选项不是一个必要条件。
D. 操作系统必须使用 32k 的块大小。
在这种情况下,操作系统的块大小和数据库的块大小并无关联。数据库会独立管理其自身的块大小,与操作系统的块大小无关。所以,此选项不是一个必要条件。
E. 必须将 DB_CACHE_SIZE 设置为小于 DB_32K_CACHE_SIZE 的值。
不需要将 DB_CACHE_SIZE 设置为小于 DB_32K_CACHE_SIZE 的值。这两个参数管理不同的缓存,它们的大小是根据数据库中标准和非标准块大小使用的需求来确定的,而不是一个要比另一个小的相对大小关系。所以,此选项不是一个必要条件。
F. /u02 文件系统必须有至少 100g 的空间来容纳数据文件。
命令中指定了数据文件的大小为 100G。要使命令成功执行,/u02 文件系统必须有至少 100G 的可用空间来容纳该数据文件。如果没有足够的空间,数据文件的创建将会失败。所以,此选项是一个必要条件。
答案是是 A 和 F。
54. 第54题:
- 题目
- 解析及答案:
关于单行函数,以下哪两个陈述是正确的?
A. FLOOR:返回大于或等于指定数字的最小整数。
FLOOR 函数实际上返回的是小于或等于指定数字的最大整数。例如,FLOOR (3.7) 返回 3。所以,该选项的描述是错误的。
B. CEIL:可用于正数和负数。
CEIL(或 CEILING)函数返回大于或等于指定数字的最小整数。它可用于正数和负数。例如,CEIL (3.2) 返回 4,CEIL ( - 3.2) 返回 - 3。所以,该选项是正确的。
C. CONCAT:可用于组合任意数量的值。
CONCAT 函数用于组合两个值。在某些数据库中,有办法组合多于两个的值(比如使用嵌套的 CONCAT 函数),但基本的 CONCAT 函数通常接受两个参数。所以,该选项中关于可组合任意数量值的描述有点误导人。
D. TRUNC:只能与 NUMBER 数据类型一起使用。
TRUNC 函数可用于 NUMBER 数据类型来截断数字的小数部分。但它也可用于 DATE 数据类型来截断日期值的时间部分。例如,TRUNC (SYSDATE) 会截断时间部分,只返回日期。所以,该选项是错误的。
E. MOD:返回除法运算的余数。
MOD 函数返回除法运算的余数。例如,MOD (7, 3) 返回 1,因为 7 除以 3 时,余数是 1。所以,该选项是正确的。
正确的两个是 B 和 E。
55. 第55题:
- 题目
55.Examine the description of the PRODUCR_STATUS table
The STATUS column contains the values ‘in stock’ or ‘OUT OF STOCK’ for each row
Which two queries will execute successfully?
A.SELECT prod_id || q ’ (‘s not available)’ from product status WHERE status = ‘OUT OF STOCK’;
B.SELECT prod_id || q ’ (‘s not available)’ “CURRENT AVAILABILITY” FROM product status WHERE status = 'OUT OF STOCK ';
C.SELECT prod_id “CURRENT AVAILABILITY” || q ’ (‘s not available)’ from product status WHERE status = ‘OUT OF STOCK’;
D.SELECT prod_id || q(‘s not available)’ 'current AVAILABILITY ’ FROM product status WHERE status = ‘OUT OF STOCK’
E.SELECT prod_id q 's not available" FROM product status WHERE status =“OUT OF STOCK”
F.SELECT prod_id || q" 's not available" FROM product_status WHERE status = ‘OUT OF STOCK’ - 解析及答案:
查看 “PRODUCR_STATUS” 表的描述信息。
该表的 “STATUS” 列每行包含的值为 “in stock”(有库存)或 “OUT OF STOCK”(无库存)。
以下哪两个查询能够成功执行?
A. SELECT prod_id || q ’ (‘s not available)’ from product status WHERE status = ‘OUT OF STOCK’;
在这个查询中,“||” 运算符用于将 “prod_id” 列与字符串 “q ’ (‘s not available)’” 进行拼接。“q” 标记用于更方便地处理特殊字符或带引号的字符串。只要 “prod_id” 和 “status” 列存在于 “PRODUCR_STATUS” 表中,并且可以按照所示方式对 “status” 值进行比较,那么这个查询在语法上就是正确的,将会成功执行。
B. SELECT prod_id || q ’ (‘s not available)’ “CURRENT AVAILABILITY” FROM product status WHERE status = 'OUT OF STOCK ';
与选项 A 类似,它使用 “||” 运算符进行拼接。在此处,还为拼接结果赋予了别名 “CURRENT AVAILABILITY”。只要表和列符合预期,这个查询的格式是正确的,应该能够顺利执行。
C. SELECT prod_id “CURRENT AVAILABILITY” || q ’ (‘s not available)’ from product status WHERE status = ‘OUT OF STOCK’;
这个查询的运算顺序不正确。“||” 运算符用于拼接,但在这里的写法是,它首先尝试将 “prod_id” 列别名为 “CURRENT AVAILABILITY”,然后再尝试将其与字符串 “q ’ (‘s not available)’” 进行拼接。这不是在使用别名的同时利用 “||” 运算符进行拼接的正确方式。所以,这个查询很可能会出现语法错误,无法成功执行。
D. SELECT prod_id || q (‘s not available)’ 'current AVAILABILITY ’ FROM product status WHERE status = ‘OUT OF STOCK’
这个查询中引号和 “q” 标记的使用不正确。正确使用 “q” 标记的方式如选项 A 和 B 所示。在这里它没有被正确使用,而且整个查询结构也有点混乱,引号的放置不正确,并且对拼接结果赋予别名的方式也不对。所以,这个查询很可能会出现语法错误,无法成功执行。
E. SELECT prod_id q’s not available"FROM product status WHERE status =“OUT OF STOCK”
这个查询缺少将 “prod_id” 与字符串 “q’s not available"” 进行拼接的 “||” 运算符。没有拼接运算符,这个查询就没有意义,因为它试图分别选择两个独立的内容,却没有任何恰当的连接方式。所以,这个查询会出现语法错误,无法成功执行。
F. SELECT prod_id || q"'s not available" FROM product_status WHERE status = ‘OUT OF STOCK’
与选项 E 类似,这个查询也缺少执行必要拼接操作的 “||” 运算符。它试图分别选择 “prod_id” 和字符串 “q"'s not available"”,却没有合适的方式将它们组合起来。所以,这个查询会出现语法错误,无法成功执行。
能够成功执行的两个查询是 A 和 B。
未完待续。
关注作者,您将获得更多OCP考试及Oracle DB方面的实战经验。后续不定期分享DB核心知识和排障案例及经验、性能调优等