MySQL创建过程
简介:在本教程中,您将逐步学习如何在MySQL CREATE PROCEDURE语句中创建新的存储过程。
MySQL CREATE PROCEDURE语句
此查询从示例数据库返回产品表中的所有产品。
SELECT * FROM products;
以下语句创建一个包装查询的新存储过程:
DELIMITER // CREATE PROCEDURE GetAllProducts() BEGIN SELECT * FROM products; END // DELIMITER ;
要执行这些语句:
首先,启动MySQL Workbench。
其次,创建一个新的SQL选项卡以执行查询:
第三,在" SQL"选项卡中输入语句:
第四,执行语句。
请注意,您可以在" SQL"选项卡中选择所有语句(或不选择任何内容),然后单击"执行"按钮。
如果一切正常,MySQL将创建存储过程并将其保存在服务器中。
第五,通过打开"存储过程"节点来检查存储过程。
如果看不到存储过程,则可以单击SCHEMAS标题旁边的Refresh按钮:
恭喜你!您已经在MySQL中成功创建了第一个存储过程。
让我们研究一下存储过程的语法。
第一个和最后一个DELIMITER命令不是存储过程的一部分。
第一个DELIMITER命令将默认定界符更改为//,最后一个DELIMITER命令将定界符更改回默认值,即分号(;)。
要创建新的存储过程,请使用CREATE PROCEDURE语句。
这是CREATE PROCEDURE语句的基本语法:
CREATE PROCEDURE procedure_name(parameter_list) BEGIN statements; END //
用这种语法
首先,在CREATE PROCEDURE关键字之后指定要创建的存储过程的名称。
其次,在过程名称后的括号中为存储过程指定逗号分隔的参数列表。
第三,在BEGIN END块之间编写代码。
上面的示例只是一个简单的SELECT语句。
在END关键字之后,放置定界符以结束过程语句。
执行存储过程
要执行存储过程,请使用CALL语句:
CALL stored_procedure_name(argument_list);
使用这种语法,您可以在CALL关键字之后指定存储过程的名称。
如果存储过程具有参数,则需要在存储过程名称后的括号内传递参数。
此示例说明如何调用GetAllProducts()存储过程:
CALL GetAllProducts();
执行此语句与执行SQL语句相同:
这是部分输出:
使用MySQL Workbench向导创建存储过程
使用MySQL Workbench向导,您不必做很多事情,例如定界符或执行命令来创建存储过程。
首先,在导航器中右键单击存储过程,然后选择创建存储过程...菜单项。
将打开以下标签:
其次,更改存储过程的名称,并在BEGIN END块之间添加代码:
存储过程的名称为GetAllCustomers(),它从示例数据库返回customers表中的所有行。
第三,单击"应用"按钮,MySQL Workbench将打开一个新窗口,用于在将SQL脚本应用到数据库之前检查SQL脚本:
第四,单击"应用"按钮进行确认。
MySQL Workbench将创建存储过程:
第五,单击"完成"按钮以关闭窗口。
最后,在"存储过程"列表中查看存储过程:
在本教程中,您学习了如何使用MySQL CREATE PROCEDURE语句在数据库中创建新的存储过程。