Oracle OCP认证考试题目详解082系列第54题
一、考察的知识点摘要
本题主要考察对Oracle数据库中单行函数(Single-Row Functions) 的核心特性和具体函数用法的理解。关键知识点包括:
- 单行函数的基本概念:对查询结果中的每一行输入分别进行计算,并返回每一行一个结果。
- 单行函数的通用特性:可以用于
SELECT
、WHERE
、ORDER BY
等子句;可以嵌套;返回值的数据类型可能与参数的数据类型不同。 - 具体函数的精确功能:如
CEIL
、MOD
、FLOOR
、TRUNC
、CONCAT
等函数的定义、参数和返回值。
二、英文题目与答案
题目:Which two statements are true about single row functions?
A. FLOOR: returns the smallest integer greater than or equal to a specified number
B. CEIL: can be used for positive and negative numbers
C. CONCAT: can be used to combine any number of values
D. TRUNC: can be used only with NUMBER data types
E. MOD: returns the remainder of a division operation
正确答案:B 和 E
三、题目翻译
关于单行函数,哪两个陈述是正确的?
A. FLOOR: 返回大于或等于指定数字的最小整数
B. CEIL: 可以用于正数和负数
C. CONCAT: 可以用于组合任意数量的值
D. TRUNC: 只能用于NUMBER数据类型
E. MOD: 返回除法运算的余数
四、题目解析
- 选项A解析:错误。
FLOOR(n)
函数的定义是返回小于或等于n
的最大整数。例如,FLOOR(3.7)
返回3,FLOOR(-2.3)
返回-3。选项A描述的是CEIL
函数的功能。 - 选项B解析:正确。
CEIL(n)
函数返回大于或等于n
的最小整数。这个函数对正数和负数都有效。例如,CEIL(3.2)
返回4,CEIL(-2.7)
返回-2。 - 选项C解析:错误。标准的
CONCAT(char1, char2)
函数只能接受两个参数,用于连接两个字符串。如果需要连接多个值,需要使用多个CONCAT
函数嵌套或者使用连接运算符||
。 - 选项D解析:错误。
TRUNC
函数有两种常用形式:用于数字的TRUNC(numeric_value, decimal_places)
和用于日期的TRUNC(date_value, format_model)
。因此,它不仅可以用于NUMBER
数据类型,还可以用于DATE
数据类型(例如,TRUNC(SYSDATE, 'MM')
用于将日期截断到当月第一天)。 - 选项E解析:正确。
MOD(n2, n1)
函数返回n2
除以n1
后的余数。例如,MOD(10, 3)
返回1。如果n1
为0,则返回n2
。
五、考察的知识点详情
-
单行函数的核心特征:
- 操作粒度:单行函数针对从表中查询出的每一行数据分别进行计算,为每一行返回一个结果。
- 应用场景:它们可以出现在SQL语句的多个子句中,包括
SELECT
列表、WHERE
条件、ORDER BY
子句等。 - 参数与返回值:单行函数可以接受一个或多个参数,参数可以是列名、表达式、变量或用户提供的常量。函数的返回值数据类型可以不同于参数的数据类型(例如,
LENGTH
函数接受字符串参数,返回数字值)。 - 嵌套能力:单行函数可以嵌套多层使用,例如
CONCAT(UPPER(first_name), INITCAP(last_name))
。
-
本题涉及的具体函数详解:
CEIL(n)
和FLOOR(n)
:这是一对相关的取整函数。CEIL(n)
(天花板函数):返回大于或等于n
的最小整数。对于正数,它向上取整;对于负数,它向零的方向取整(因为-2比-2.7大)。FLOOR(n)
(地板函数):返回小于或等于n
的最大整数。对于正数,它向下取整;对于负数,它向远离零的方向取整。
MOD(n2, n1)
:求模函数,返回除法运算的余数。它在判断数字的奇偶性、循环计数等场景中非常有用。TRUNC
(用于数字和日期):- 数字:
TRUNC(number, decimal_places)
将数字截断到指定的小数位。例如,TRUNC(15.79, 1)
返回15.7。 - 日期:
TRUNC(date, format_model)
将日期截断到指定的精度单位(如年、月、日)。例如,TRUNC(SYSDATE, 'YYYY')
返回当年第一天。
- 数字:
CONCAT(char1, char2)
:字符串连接函数,严格限制为两个参数。要连接更多字符串,应使用链式调用CONCAT(CONCAT(str1, str2), str3)
或更简洁的||
运算符(如str1 || str2 || str3
)。