mysql 存储过程入门_MySQL存储过程入门

在本教程中,我们将逐步介绍如何使用CREATE PROCEDURE语句开发第一个MySQL存储过程。 另外,我们将向您展示如何从SQL语句调用存储过程。

编写第一个MySQL存储过程

我们将开发一个名为GetAllProducts()的简单存储过程来帮助您熟悉创建存储过程的语法。 GetAllProducts()存储过程从products表中选择所有产品。

启动 mysql 客户端工具并键入以下命令:

DELIMITER //

CREATE PROCEDURE GetAllProducts()

BEGIN

SELECT * FROM products;

END //

DELIMITER ;

让我们来详细地说明上述存储过程:

第一个命令是DELIMITER //,它与存储过程语法无关。 DELIMITER语句将标准分隔符 - 分号(;)更改为://。 在这种情况下,分隔符从分号(;)更改为双斜杠//。为什么我们必须更改分隔符? 因为我们想将存储过程作为整体传递给服务器,而不是让mysql工具一次解释每个语句。 在END关键字之后,使用分隔符//来指示存储过程的结束。 最后一个命令(DELIMITER;)将分隔符更改回分号(;)。

使用CREATE PROCEDURE语句创建一个新的存储过程。在CREATE PROCEDURE语句之后指定存储过程的名称。在这个示例中,存储过程的名称为:GetAllProducts,并把括号放在存储过程的名字之后。

BEGIN和END之间的部分称为存储过程的主体。将声明性SQL语句放在主体中以处理业务逻辑。 在这个存储过程中,我们使用一个简单的SELECT语句来查询products表中的数据。

在mysql客户端工具中编写存储过程非常繁琐,特别是当存储过程复杂时。 大多数用于MySQL的GUI工具允许您通过直观的界面创建新的存储过程。

例如,在MySQL Workbench中,您可以如下创建一个新的存储过程:

首先,右键单击Stored Procedures…并选择“Create Stored Procedure…”菜单项。

6f09d9f5ed999e70a2531aa98115f20c.png

接下来,编写存储过程代码,然后单击Apply按钮

CREATE PROCEDURE `yiibaidb`.`GetAllProducts`()

BEGIN

SELECT * FROM yiibaidb.products;

END

然后,您可以在MySQL将其存储在数据库中之前查看代码。如果一切都没有问题,点击Apply按钮。如下所示 -

d55342e3c2ed608ea04d6c87255513ec.png

之后,MySQL将存储过程编译并放入数据库目录中; 单击Fished按钮完成。

566df525360fc36c6125b451b635cf9e.png

最后,可以在yiibaidb数据库的例程下看到上面所创建的新存储过程。如下图所示 -

a3ac950f0a9d46c6e88b482368b4fdff.png

到此,我们已经成功地创建了一个存储过程。下面我们将学习如何使用它。

调用存储过程

要调用存储过程,可以使用以下SQL命令:

CALL STORED_PROCEDURE_NAME();

使用CALL语句调用存储过程,例如调用GetAllProducts()存储过程,则使用以下语句:

CALL GetAllProducts();

如果您执行上述语句,将查询获得products表中的所有产品。如下图所示 -

60265240e6403efba84b27d320cc7ce3.png

在本教程中,您已经学习了如何使用CREATE PROCEDURE语句编写一个简单的存储过程,并使用CALL语句从SQL语句中调用它。

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值