一、考察的知识点摘要
本题主要考察对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)。