本文作者:心月

实例演示mysql存储过程的使用

心月IT博客 2019-11-18
实例演示mysql存储过程的使用摘要:存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。

        存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。

        存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。

        存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。

存储过程的优点

        1、存储过程可封装,并隐藏复杂的商业逻辑。

        2、存储过程可以回传值,并可以接受参数。

        3、存储过程无法使用 SELECT 指令来运行,因为它是子程序,与查看表,数据表或用户定义函数不同。

        4、存储过程可以用在数据检验,强制实行商业逻辑等。

存储过程的缺点

        1、存储过程,往往定制化于特定的数据库上,因为支持的编程语言不同。当切换到其他厂商的数据库系统时,需要重写原有的存储过程。

        2、存储过程的性能调校与撰写,受限于各种数据库系统。


下面通过实例来演示存储过程的使用

背刺实例演示将通过mysql命令行来完成

1、创建存储过程

(通过控制台进入mysql命令行,然后选择数据库)

创建存储过程

这里创建的存储过程是用来完成循环插入数据的

DELIMITER //(因为存储过程不是一行命令就可以完成的,所以这里先将mysql命令行的结束符改成"//")
CREATE PROCEDURE proc(IN sname VARCHAR(20),IN pwd VARCHAR(5),IN el VARCHAR(32),IN start INT,IN end INT)
  begin
  DECLARE var INT;
  DECLARE myname VARCHAR(30);
  SET var=start;
  while var<end do
    SET myname = CONCAT(sname,LPAD(var,3,'0'));
    insert into test_pdo (username,password,email) value(myname,md5(pwd),el);
    SET var=var+1;
  end while;
  end //
DELIMITER ;

2、使用存储过程

CALL proc('test','123456','test@adimin.com',1,3);//使用存储过程往表中插入两条数据

3、删除存储过程

一个存储过程只能被创建一次,如果想要用相同的名字来创建存储过程,必须把之前创建的存储过程删掉,然后才能创建。删除存储过程的命令:

DROP PROCEDURE IF EXISTS proc;

整个存储过程的使用流程:

mysql存储过程使用示例

文章版权及转载声明:

本文由 心月IT技术博客 博主整理于 2019-11-18
若转载请注明原文及出处:https://www.xinyueseo.com/mysql/512.html

分享到:
赞(
发表评论
快捷输入:

验证码

    评论列表 (有 0 条评论,人围观)参与讨论