栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

数据库:存储过程与函数

数据库:存储过程与函数

一:存储过程

含义:一组预先编译好的sql语句的集合,理解成批处理语句

1.创建语法

create procedure 存储过程名(参数列表)
  begin
       存储过程体(一组合法的sql)
  end
注意:
     1.参数列表包含三部分:参数模式 参数名   参数类型
                                                 in       stuname  varchar(20)
                         参数模式:in  该参数可以作为输入
                                           out 该参数可以作为输出,返回值
                                           inout可作为输入输出 
     2.如果存储过程体仅一句话,begin end可以省略
       存储过程体中的每条sql语句的结尾要求必须加分号
       存储过程结尾可以使用 delimiter重新设置:delimiter 结束标记

2.调用语法

call 存储过程名(实参列表)

#1.空参列表
  DELIMITER $$
  CREATE PROCEDURE myp()
  BEGIN
        INSERT INTO admin VALUES(5,'rose','0000');
  END $$
  #调用存储过程
  CALL myp() $$
 #2.创建带in模式参数的存储过程
  CREATE PROCEDURE myp2(IN beautyName VARCHAr(20))
  BEGIN
       SELECt bo.*
       FROM boys bo
       RIGHT JOIN beauty b ON bo.id=b.boyfriend_id
       WHERe b.name=beautyName;
  END $$
  #调用
  CALL myp2('柳岩')$$
  #3.创建存储过程实现,用户是否登录成功
  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 myp4('张飞','8888')$$
 #4.创建带out模式的存储过程
 CREATE PROCEDURE myp5(IN beautyName VARCHAr(20),OUT boyName VARCHAr(20))
 BEGIN 
      SELECT bo.boyName
      FROM boys bo
      INNER JOIN beauty b ON bo.id=b.boyriend_id
      WHERe b.name=beautyName;
END $$
SET @bname$$#创建变量接收返回值
CALL myb5('小昭',@bname)$$#调用
SELECt @bename$$
#5.创建带inout的存储过程
CREATE PROCEDURE myp6(INOUT a INT,INOUT b INT)
BEGIN 
     SET a=a*2;
     SET b=b*2;
END $$
SET @m=10$$
SET @n=20$$
CALL myp6(@m,@n)$$
SELECT @m,@n$$
3.删除存储过程

DROP PROCEDURE 存储过程

4.查看存储过程信息

SHOW CREATE PROCEDURE myp2;

二:函数

含义与存储过程一致
区别:存储过程返回值不限
           函数返回值有且仅有1个
创建语法:create function 函数名(参数列表) returns 返回类型
                  begin
                        函数体(需要包含return语句)
                  end
调用函数:select 函数名(参数列表)

#1.无参有返回
CREATE FUNCTION myf1() RETURNS INT
BEGIN
      DECLARE c INT DEFAULT 0;#变量声明
      SELECT COUNT(*) INTO c#变量赋值
      FROM `employees`;
      RETURN c;#变量调用
END $$
SELECT myf1()$$
#2.函数查看
SHOW CREATE FUNCTION myf1;
#3.删除函数
DROP FUNCTION myf1;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/281090.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号