加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱制作网_沈阳站长网 (https://www.024zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql存储过程基本教程

发布时间:2022-09-13 16:04:28 所属栏目:MySql教程 来源:
导读:  mysql存储过程详细教程

  什么是mysql存储过程?

  存储过程(Stored Procedure)是在大型数据库系统中mysql 存储过程教程,一组为了完成特定功能的SQL 语句集mysql 存储过程教程,经编译后存储在数据
  mysql存储过程详细教程
 
  什么是mysql存储过程?
 
  存储过程(Stored Procedure)是在大型数据库系统中mysql 存储过程教程,一组为了完成特定功能的SQL 语句集mysql 存储过程教程,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
 
  为什么要使用mysql存储过程?
 
  我们都知道应用程序分为两种,一种是基于web,一种是基于桌面,他们都和数据库进行交互来完成数据的存取工作。假设现在有一种应用程序包含了这两种,现在要修改其中的一个查询sql语句,那么我们可能要同时修改他们中对应的查询sql语句,当我们的应用程序很庞大很复杂的时候问题就出现这,不易维护!另外把sql查询语句放在我们的web程序或桌面中很容易遭到sql注入的破坏。而存储例程正好可以帮我们解决这些问题。
 
  存储过程不仅仅适用于大型项目,对于中小型项目,使用存储过程也是非常有必要的。其威力和优势主要体现在:
 
  1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
 
  2.当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。这些操作,如果用程序来完成,就变成了一条条的 SQL
 
  语句,可能要多次连接数据库。而换成存储,只需要连接一次数据库就可以了。
 
  3.存储过程可以重复使用,可减少数据库开发人员的工作量。
 
  4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权。
 
  5.更强的适应性:由于存储过程对数据库的访问是通过存储过程来进行的,因此数据库开发人员可以在不改动存储过程接口的情况下对数据库进行任何改动,而这些改动不会对应用程序造成影响。
 
  6.布式工作:应用程序和数据库的编码工作可以分别独立进行,而不会相互压制。
 
  ** 记录MYSQL存储过程中的关键语法:**
 
  DELIMITER // 声明语句结束符,用于区分;
 
  CREATE PROCEDURE demo_in_parameter(IN p_in int) 声明存储过程
 
  BEGIN …. END 存储过程开始和结束符号
 
  SET @p_in=1 变量赋值
 
  DECLARE l_int int unsigned default 4000000; 变量定义
 
  mysql技术内幕 innodb存储引擎_mysql 存储过程教程_mysql 调用存储批量过程
 
  模板示例如下:
 
  --1.将mysql分隔符从;设置为//
  DELIMITER //
  DROP PROCEDURE IF EXISTS `abby_test` ;
  --2.定义存储过程
  CREATE DEFINER = `root`@`%` PROCEDURE `abby_test` ()
  BEGIN
      --3.声明所需变量
      DECLARE a_demo VARCHAR (100);
      DECLARE b_demo BIGINT;
      
      --4.定义游标结束标识,默认为0
      DECLARE done_cursor_abby_test INT DEFAULT 0;
      --5.定义游标
      DECLARE cursor_abby_test CURSOR FOR
      SELECT a,b FROM `xxxx` where 条件;
      
      --6.当SQLSTATE符合条件的时候会将游标结束标识设置为1
      DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done_cursor_abby_test = 1;
  mysql 存储过程教程_mysql 调用存储批量过程_mysql技术内幕 innodb存储引擎
 
 
      --7.打开游标
      OPEN cursor_abby_test;
          --8.读取游标中数据
           FETCH cursor_abby_testINTO a_demo,b_demo;
          --9.符合轮询条件时继续往下走
          WHILE done_cursor_abby_test <> 1 DO
              ~~~~~执行特定SQL~~~~~~
          FETCH cursor_abby_testINTO a_demo,b_demo;
          END WHILE;
      --10.关闭游标
      CLOSE cursor_abby_test;
  END ;//
  --11.将mysql分隔符从//设置为;
  DELIMITER ;
  --12.调用存储过程
  call abby_test();
 

(编辑:我爱制作网_沈阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!