Mysql(十三)-- 函数

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_40990836/article/details/101535844

函数

函数和存储过程的区别
函数: 有且仅有一个返回,适合做数据处理后返回一个结果
存储过程: 可以有0个返回,也可以有多个返回,适合做批量插入,批量更新

语法:

CREATE FUNCTION 函数名(参数列表) RETURNS
BEGIN
	函数体
END

注意:

  1. 参数列表 包含两部分: 参数名 参数类型
  2. 函数体:肯定会有 RETURN 语句, 如果没有会报错,如果return 语句没有放在函数体的最后一句,也不会报错。但不建议
  3. 函数体中只有一句话,就可以省略begin end
  4. 使用 delimiter 语句 设置结束标记
调用语法
SELECT 函数名(参数列表);

案例1: 返回admin 表中拥有多少条记录

# 定义一个函数
CREATE FUNCTION myf1() RETURN INT
BEGIN 
	DECLARE c INT DEFAULT 0;
	SELECT COUNT(*) INTO c
	FROM employees;
	RETURN c
END$
# 调用该函数
SELECT myf1()$
# 返回
+--------+
| myf1() |
+--------+
|      3 |
+--------+

案例2: 根据id 返回这个用户的姓名

CREATE FUNCTION my2(id INT ) RETURNS VARCHAR
BEGIN
	DECLARE name VARCHAR DEFAULT "没有";
	SELECT admin.aName INTO name
	FROM admin
	WHERE admin.id = id;
	RETURN name;
END $
# 调用
SELECT my2(1) $

查看函数

SHOW CREATE FUNCTION myf3;

删除函数

DROP FUNCTION myf3;

猜你喜欢

转载自blog.csdn.net/qq_40990836/article/details/101535844