mysql存储过程写法查询
时间: 2023-10-27 11:15:17 浏览: 109
MySQL存储过程可以用于封装一系列的SQL语句,使得它们可以在一个单独的单元中执行。以下是MySQL存储过程的基本语法:
```mysql
CREATE PROCEDURE procedure_name(parameter_list)
BEGIN
-- 存储过程的具体操作
END;
```
其中,`procedure_name` 是存储过程的名称,`parameter_list` 是可选的输入参数列表,可以在存储过程中使用。`BEGIN` 和 `END` 之间是存储过程执行的具体操作,可以包含多个SQL语句。
以下是一个示例存储过程,它接受一个输入参数 `username`,并返回该用户的所有订单:
```mysql
CREATE PROCEDURE get_user_orders(IN username VARCHAR(50))
BEGIN
SELECT * FROM orders WHERE user_name = username;
END;
```
在调用存储过程时,可以使用 `CALL` 语句:
```mysql
CALL get_user_orders('John');
```
这将返回用户名为John的所有订单记录。
除了输入参数,存储过程还可以有输出参数和返回值。例如,以下存储过程接受两个输入参数 `a` 和 `b`,并返回它们的和:
```mysql
CREATE PROCEDURE add_numbers(IN a INT, IN b INT, OUT result INT)
BEGIN
SET result = a + b;
END;
```
在调用该存储过程时,需要同时传入 `a` 和 `b` 参数,并且可以指定一个变量来接收返回值:
```mysql
CALL add_numbers(1, 2, @c);
SELECT @c;
```
这将返回 `3`,即 `1 + 2` 的结果。
阅读全文