MySQL存储过程的理解-mysql教程-学派吧

MySQL中的存储过程指的是存储在数据库中的SQL语句集合,当创建好存储过程后在运行时提供所需参数,存储过程就可以以代码指定的方式使用参数执行并返回值

在MySQL中提供了创建存储过程的能力。存储过程是MySQL以及其他数据库管理系统中的强大功能。接下来在文章中将为大家具体介绍MySQL中的存储过程,具有一定的参考作用,希望对大家有所帮助。

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存储过程的理解的详细内容,更多请关注php中文网其它相关文章!

主题测试文章,只做测试使用。发布者:admin,转转请注明出处:https://www.xp8.net/data/3419.html

(0)
admin的头像admin
上一篇 2019年4月9日 下午8:55
下一篇 2019年4月9日 下午8:56

相关推荐

  • MySQL server PID file could not be found! 的解决办法

    linux服务器安装lnmp之后重启Mysql有可能会经常碰到这样的错误提示: ERROR! MySQL server PID file could not be found! 反正我是经常碰到这样的情况,有些reboot重启下服务器就恢复了,有些可能需要重装下php。 但是大部分情况可能是进程的问题。 首先输入查询命令:[root@server ~]# p…

    数据库运维 2018年7月9日
    00
  • Redis与Memcached有何区别 ?redis和Memcached的区别比较

    本篇文章给大家带来的内容是关于Redis与Memcached有何区别 ?redis和Memcached的区别比较,有一定的参考价值,有需要的朋友可以参考一下, memcached和redis,作为近些年最常用的缓存服务器,相信大家对它们再熟悉不过了。前两年还在学校时,我曾经读过它们的主要源码,如今写篇笔记从个人角度简单对比一下它们的实现方式,权当做复习,有理…

    数据库运维 2018年11月24日
    00
  • mysql更新语句怎么写?-mysql教程-学派吧

    MySQL更新语句也就是MySQL中的update语句,当我们需要更新或者修改表中的数据时,就会使用这个update语句,下面我们就来看一下mysql更新语句的具体写法。 MySQL中update语句用于更新表中的现有数据。亦可用UPDATE语句来更改表中单个行,一组行或所有行的列值。 MySQL中UPDATE语句的语法: 单表 UPDATE [LOW_PR…

    2019年4月9日
    00
  • 什么是SQL注入、XSS和CSRF?-mysql教程-学派吧

    什么是SQL注入、XSS和CSRF?本篇文章就来带大家了解一下SQL注入、XSS和CSRF,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 SQL注入 SQL注入是属于注入式攻击,这种攻击是因为在项目中没有将代码与数据(比如用户敏感数据)隔离,在读取数据的时候,错误的将数据作为代码的一部分执行而导致的。 典型的例子就是当对SQL语句进行字符串…

    数据库运维 2019年4月9日
    00
  • 从资讯到企业资产,“企业头条”要打造To B的今日头条

    公司于2016年5月完成千万元Pre-A轮融资,投资方为银杏谷资本和用友幸福投资。

    2017年4月17日
    01

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
学派网官网正在升级改造中,如有影响访问,敬请谅解