下面是“mysql创建存储过程及函数详解”的完整攻略。
一、存储过程
1.1 创建存储过程
CREATE PROCEDURE procedure_name()
BEGIN
# 存储过程体
END;
CREATE PROCEDURE
: 表示创建存储过程的关键字。procedure_name
: 存储过程的名称,自定义,需符合 MySQL 的命名规则。BEGIN
和END
:在这两个关键字之间编写存储过程的内容。
1.2 参数
存储过程可有参数,分为输入参数和输出参数。
1.2.1 输入参数
CREATE PROCEDURE procedure_name(IN p_id INT)
BEGIN
SELECT * FROM user WHERE id = p_id;
END;
IN
:输入参数的关键字。p_id
:输入参数的名称。INT
:输入参数的类型,这里设置为整型。
调用存储过程:
CALL procedure_name(1);
CALL
:调用存储过程的关键字。(1)
:传入的实际参数,对应定义的p_id
。
1.2.2 输出参数
CREATE PROCEDURE procedure_name(OUT p_count INT)
BEGIN
SELECT COUNT(*) INTO p_count FROM user;
END;
OUT
:输出参数的关键字。p_count
:输出参数的名称。INT
:输出参数的类型,这里设置为整型。SELECT COUNT(*) INTO p_count FROM user
:将查询结果赋值给p_count
。
调用存储过程:
CALL procedure_name(@count);
SELECT @count;
@count
:MySQL 用户变量,用于接收存储过程的输出参数。SELECT @count
:输出变量的值。
1.3 示例
创建一个简单的存储过程,查询用户名为 name
的用户信息:
CREATE PROCEDURE get_user_info(IN p_name VARCHAR(20))
BEGIN
SELECT * FROM user WHERE name = p_name;
END;
调用存储过程:
CALL get_user_info('Mike');
二、函数
2.1 创建函数
CREATE FUNCTION function_name()
RETURNS return_type
BEGIN
# 函数体
END;
CREATE FUNCTION
: 表示创建函数的关键字。function_name
: 函数的名称,自定义,需符合 MySQL 的命名规则。RETURNS
: 函数的返回值类型。return_type
: 返回值的类型,使用 MySQL 内置的数据类型,如 INT、VARCHAR(20) 等。BEGIN
和END
:在这两个关键字之间编写函数的内容。
2.2 示例
创建一个简单的函数,计算两个数的和:
CREATE FUNCTION add(a INT, b INT)
RETURNS INT
BEGIN
RETURN a + b;
END;
调用函数:
SELECT add(1, 2);
输出结果:
+---------+
| add(1,2)|
+---------+
| 3 |
+---------+
创建一个函数,查询某个用户名是否存在:
CREATE FUNCTION is_user_exists(p_name VARCHAR(20))
RETURNS INT
BEGIN
DECLARE count INT;
SELECT COUNT(*) INTO count FROM user WHERE name = p_name;
RETURN count;
END;
调用函数:
SELECT is_user_exists('Mike');
输出结果:
+---------------------------+
| is_user_exists('Mike') |
+---------------------------+
| 1 |
+---------------------------+
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql创建存储过程及函数详解 - Python技术站