SQL 学习笔记:自定义函数 FUNCTION(函数)
一、函数 语法
-- MySQL
CREATE FUNCTION f(x INT) RETURNS INT DETERMINISTIC
BEGIN RETURN x*2; END;
-- Oracle
CREATE OR REPLACE FUNCTION f(p IN INT) RETURN INT IS
BEGIN RETURN p*2; END;二、参数说明
| 项目 | 说明 |
|---|---|
CREATE FUNCTION | 创建返回标量值的函数 |
RETURNS/RETURN | 声明返回类型 |
DETERMINISTIC | MySQL 要求标明是否确定性(同输入同输出) |
与过程区别 | 函数有返回值、可在 SQL 中调用;过程无返回值 |
三、注意事项
- 函数可在 SELECT / WHERE 中直接调用,过程多用于执行动作
- MySQL 函数需声明 DETERMINISTIC / READS SQL DATA 等特性
- Oracle 函数用 RETURN 类型与 RETURN 语句;MySQL 用 RETURNS + RETURN
四、经典案例
案例1:MySQL 函数
案例2:Oracle 函数
案例3:函数内调用
五、小结
自定义函数 FUNCTION是数据库操作中的基础而关键的用法,建议结合文中的示例表在 Oracle 与 MySQL 中分别动手验证,注意两者在自增、分页、正则等处的语法差异,做到融会贯通。
评论(0)
请登录后发表评论。