千家信息网

mysql存储过程具体是怎么样的

发表于:2024-12-04 作者:千家信息网编辑
千家信息网最后更新 2024年12月04日,本文主要给大家简单讲讲mysql存储过程具体是怎么样的,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望mysql存储过程具体是怎么样的这篇文章可以给大家
千家信息网最后更新 2024年12月04日mysql存储过程具体是怎么样的

本文主要给大家简单讲讲mysql存储过程具体是怎么样的,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望mysql存储过程具体是怎么样的这篇文章可以给大家带来一些实际帮助。

存储过程:

存储过程指的是存储在数据库中的SQL语句的集合。存储过程它可以包含业务逻辑,这是区分存储过程和视图的关键之一。另外存储过程还可以接受参数,我们可以在存储过程中设置变量,写入语句等。

存储过程如何工作

首先要先创建一个存储过程然后再运行。在运行的过程中需要提供它所需要的参数,然后存储过程将以代码指定的任何方式使用参数执行。例如,编写一个接受FruitId参数的存储过程。然后在存储过程可以获取该参数并使用它来检查该特定水果的库存。因此我们可以调用存储过程,即每次使用不同的水果ID它都将返回一个值,并显示该库存中有多少水果。

创建存储过程

我们可以通过CREATE PROCEDURE语句创建存储过程

CREATE PROCEDURE demo_name(p_1 INT)BEGIN  ...code goes here...END;

demo_name指的是存储过程的名称,括号是必须的,如果里面不包含任何参数则括号可以为空

存储过程的主体是介于BEGIN和END关键字之间。这些关键字用于编写复合语句。复合语句可以包含多个语句,如果需要,可以嵌套这些语句。

例:创建一个存储过程名为FruitStock:

DELIMITER //CREATE PROCEDURE FruitStock(thisFruit SMALLINT)BEGIN        SELECT                 Fruit.FruitName,                 Fruit.Inventory,                 Units.UnitName        FROM                 Fruit INNER JOIN Units ON                Fruit.UnitId = Units.UnitId        WHERE                 Fruit.FruitId = thisFruit;END //DELIMITER ;

创建好了一个存储过程,接下来将调用这个存储过程

调用一个参数为1的ID

CALL FruitStock(1);

删除存储过程

可以使用DROP PROCEDURE语句删除存储过程。

DROP PROCEDURE FruitStock;

改变存储过程

在存储过程中可通过下列语句更改存储过程ALTER PROCEDURE。

需要注意要更改存储过程的主体或其任何参数时,需要删除该过程然后再次创建

例:添加Fruit.FruitId所要返回的列表

DROP PROCEDURE IF EXISTS FruitStock;DELIMITER //CREATE PROCEDURE FruitStock(thisFruit SMALLINT)BEGIN        SELECT                 Fruit.FruitId,                 Fruit.FruitName,                 Fruit.Inventory,                 Units.UnitName        FROM                 Fruit INNER JOIN Units ON                Fruit.UnitId = Units.UnitId        WHERE                 Fruit.FruitId = thisFruit;END //DELIMITER ;

mysql存储过程具体是怎么样的就先给大家讲到这里,对于其它相关问题大家想要了解的可以持续关注我们的行业资讯。我们的板块内容每天都会捕捉一些行业新闻及专业知识分享给大家的。

0