SQL 函数被开发到 Oracle 数据库中,可用于各种适当的 SQL 语句。 SQL 中的函数和 Pl/SQL 中的用户定义函数都是不同的。
在查询中,如果调用比函数预期不同的数据类型作为自变量的SQL函数,那么甲骨文将参数的数据类型转换为预期的数据类型进行SQL函数之前,如果你调用带有null参数的函数,它会返回空值。
功能类别:
1. Single_row_function
2. Aggregate_function
3. Analytic_function
4. Model_function
5. User_defined_function
6. Scalar functions
其中一些功能解释如下。
- 单行函数:
单行函数是那些为查询的表或视图的每一行返回单个结果行的函数。该函数存在于选择列表、WHERE 子句、START WITH、CONNECT BY 子句和 HAVING 子句中。- 数字函数
- 字符函数
- 数据挖掘功能
- 日期时间函数
- 转换函数
- 集合_函数
- XML_function
- 聚合函数:
使用聚合函数,它将返回基于行组的单行结果,而不是单行。聚合函数出现在选择列表和 ORDER BY 和 HAVING 子句中。它们通常与 GROUP BY 子句和 SELECT 语句一起使用。如果使用 GROUP BY 子句,则 Oracle 将选择列表中的聚合函数应用于查询表或视图中的所有行。
除 GROUPING 和 COUNT(*) 之外的所有聚合函数都忽略空值。您还可以在聚合函数的参数中使用 NVL函数来替换空值。
您还可以嵌套聚合函数。例如:-SELECT AVG(MAX(salary) FROM employees GROUP BY department_id AVG(MAX(salary)) ---------------- 10925
最常用的聚合函数是AVG, COUNT, DENSE_RANK, MAX, MIN, RANK, SUM 。
- 解析函数:
分析函数根据行组计算聚合值。分析函数和聚合函数之间的区别在于它们为每组返回多行。行组称为窗口,由analytic_clause定义。分析函数是查询中除最后的 ORDER BY 子句之外的最后一组操作。
- 分析子句
- Query_partition_clause
- Order_by_clause
- Windowing_clause
- 模型功能:
在SELECT
语句中,模型函数可以与model_clause一起使用。模型功能是:
- 简历
- 迭代次数
- 持久性
- 呈现
- 以前的
- 用户定义函数:
您可以使用 PL/SQL 或Java的用户定义函数来提供 SQL 或 SQL 内置函数中不可用的功能。 SQL 函数和用户定义的函数可以出现在任何地方,即表达式出现的地方。例如,它可以用于:
-
SELECT
语句的选择列表。 -
WHERE
子句的条件。 -
CONNECT BY, ORDER BY, START WITH
和GROUP BY
-
INSERT
语句的VALUES
子句。 -
UPDATE
语句的SET
子句。
基本上,我们使用
CREATE
函数的SQL创建用户定义的函数。 -
- 标量函数:
您可以在 SQL 中使用标量函数根据输入值返回单个值。Input: SELECT UCASE(geeksforgeeks) ; Output: GEEKSFORGEEKS
最常用的标量函数是 UCASE() 将字段转换为大写,LCASE() 将字段转换为小写,LEN() 查找文本字段的长度,ROUND() 将指定的小数位数舍入, NOW() 查找当前系统日期和时间。