MySQL存储过程使用实例详解?
MySQL存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。下面是一个使用实例的详细解释:
假设我们有一个名为teewt的存储过程,它接收三个输出参数:mx(最大年龄)、mi(最小年龄)和av(平均年龄)。该存储过程从名为test的表中选择最大、最小和平均年龄,并将结果赋值给对应的参数。
首先,我们创建一个名为teewt的存储过程:
```sql
DELIMITER //
CREATE PROCEDURE teewt(OUT mx INT, OUT mi INT, OUT av DECIMAL(8,2))
BEGIN
SELECT AVG(age) INTO av FROM test;
SELECT MAX(age) INTO mx FROM test;
SELECT MIN(age) INTO mi FROM test;
END //
DELIMITER ;
```
这里使用了`DELIMITER`语句来更改语句结束符。在存储过程中,需要用分号(`;`)来结束一条语句,但由于存储过程可能包含分号,因此我们需要使用`DELIMITER`来更改语句结束符,使其在存储过程结束后再改回原来的分号。
接下来,我们调用这个存储过程并显示结果:
```sql
CALL teewt(@mx, @mi, @av);
SELECT @mx AS max_age, @mi AS min_age, @av AS avg_age;
```
这里通过`CALL`语句来调用存储过程,并将结果赋值给变量`@mx`、`@mi`和`@av`。然后,我们使用`SELECT`语句来显示这些结果。
这个例子展示了如何使用MySQL存储过程来封装复杂的查询逻辑,并通过调用存储过程来获取结果。存储过程还具有可重用性,可以在不同的应用程序或平台上执行相同的函数,并且允许使用变量和流控制语句,具有很强的灵活性和可扩展性。
MySQL创建存储过程?
1、打开mysql的客户端管理软件,本文使用的是MySQL Workbench,打开之后连接上数据库。找到想要创建存储过程的数据库,在【Stored Procedures】菜单上点击鼠标右键,选择【Create Stored Procedure】菜单项。
2、点击之后,右侧会出现一个存储过程编辑界面,并且会有默认的创建存储过程的基本结构。
3、在CREATE PROCEDURE后面的是存储过程的名字,可以改成您喜欢的任何名字。
4、在存储过程名字后面有个括号,这里是放置存储过程的传入、传出参数的,当然存储过程也可以没有参数,保留一个空括号即可。
5、在存储过程的BEGIN...END之间书写存储过程的内容。使用【set 变量 =值;】给变量赋值。写完存储过程后,点击右下角的【Apply】按钮
1)注意每个语句结束,都必须用分号结尾
2)变量不需要@符号,这一点与sqlserver区别比较明显
3)书写存储过程中,左侧的叉叉符号,不用理会,等存储过程创建成功后,就不会有了。
6、在点击【Apply】按钮之后,会弹出一个确认框,此处继续点击【Apply】按钮,随后就会弹出一个【SQL script was successfully applied to the database】,表示存储过程创建完成,点击【Finish】按钮即可
7、调用存储过程使用call关键字,后面是存储过程的名称,括号中是传入的参数值。最后点击顶部的闪电符号,就可以执行存储过程,在下方显示存储过程返回的结果。