码迷,mamicode.com
首页 > 数据库 > 详细

MySQL基础--存储过程和函数

时间:2021-05-24 09:32:31      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:存储类型   举例   rom   out   and   注意   val   理解   并且   

  1. 存储过程和函数
    存储过程和函数:类似于java中的方法

    • 好处: .
      1、提高代码的重用性
      2、简化操作

  2. 存储过程

    • 含义:一 组预先编译好的SQL语句的集合,理解成批处理语句
      1、 提高代码的重用性
      2、简化操作
      3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率.

    • 创建语法

      • CREATE PROCEDURE 存储过程名(参数列表)
        BEGIN
        存储过程体(一组合法的sQL语句)
        : END

      • 注意:

        • 参数列表包含三部分
          参数模式参数名参 数类型
          举例:
          IN stuname VARCHAR (20)

        • 参数模式:
          IN:该参数可以作为输入,也就是该参数需要调用方传入值
          OUT:该参数可以作为输出,也就是该参数可以作为返回值
          INOUT:该参数既可以作为输入又可以作为输出,也就是该参数既需要传入值,又可以返回值

        •  如果存储过程体仅仅只有一句话,BEGIN END可以省略
          存储过程体中的每条sQL语句的结尾要求必须加分号。
          存储过程的结尾可以使用DELIMITER 重新设置
          语法:
          DELIMITER 结束标记
          案例:
          DELIMITER S

    • 调用
      • call 存储过程名(实参列表);
    • 空参列表存储过程
      • DELIMITER $
        CREATE PROCEDURE myp1 ()
        BBEGIN

        • INSERT INTO admin (username,、password. )
          VALUES(‘john1‘, ‘0000‘),(‘lily‘, ‘0000‘);

      • END $

      • call myp1();
    •  参数带in类型的参数的存储过程

      • CREATE PROCEDURE myp2 (IN beautyName VARCHAR (20) )
        BEGIN

        • SELECT bo. *
          FROM boys bo
          RIGHT JOIN beauty b ON bo.id = b.boyfriend_ id

      • END $

      • call myp2(‘xxxx‘); 

    • :创建存储过程实现,用户是否登录成功

      • CREATE PROCEDURE myp4 (IN username VARCHAR (20) , IN PASSWORD VARCHAR (20) )
        BEGIN

        • DECLARE result INT DEFAULT 0;#声 明并初始化
          SELECT COUNT(*) INTO result#赋值
          FROM admin
          WHERE
          admin. username = username
          AND admin. password = PASSWORD;
          SELECT IF (result>0, ‘成功‘,‘失败‘) ;#使用

      • END $

      • #调用
        CALL myp3(‘张飞‘, ‘8888‘);

    • 创建带out模式参数的存储类型

      • CREATE PROCEDURE myp5 (IN beautyName VARCHAR(20) , OUT boyName VARCHAR (20) )
        BEGIN

        • SELECT bo. boyName INTO boyName
          FROM boys bo
          INNER JOIN beauty b ON bo.id = b.boyfriend_ id
          WHERE b. name=beautyName ;

      • END $

      • #调用
        CALL myp5(‘小昭‘ , @bName) $
        SELECT @bName $

    • 创建带inout模式参数的存储过程

      • CREATE PROCEDURE myp8 (INOUT a INT , INOUT b INT)
        BEGIN

        • SET a=a*2;
          SET b=b*2 ;

      • END $

      • #调用
        SET @m=10$
        SET @n=20$
        CALL myp8 (@m, @n) S
        SELECT @m, @n

              

           

          

MySQL基础--存储过程和函数

标签:存储类型   举例   rom   out   and   注意   val   理解   并且   

原文地址:https://www.cnblogs.com/zzhAylm/p/14769581.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!