zoukankan      html  css  js  c++  java
  • 存储过程和函数(九)

    存储过程

    含义:一组经过预先编译的sql语句的集合
    好处:

    1、提高重用性
    2、sql语句简单
    3、减少了和数据库服务器连接的次数,提高了效率
    

    分类:

    1、无返回无参
    2、仅仅带in类型,无返回有参
    3、仅仅带out类型,有返回无参
    4、既带in又带out,有返回有参
    5、带inout,有返回有参
    注意:in、out、inout都可以在一个存储过程中带多个
    

    创建

    语法:

    create procedure 存储过程名(in|out|inout 参数名  参数类型,...)
    begin
    	存储过程体
    end
    

    注意

    1.参数模式:in、out、inout,其中in可以省略
    2.存储过程体的每一条sql语句都需要用分号结尾

    1、需要设置新的结束标记
    	delimiter 新的结束标记
    示例:
    delimiter $
    
    CREATE PROCEDURE 存储过程名(IN|OUT|INOUT 参数名  参数类型,...)
    BEGIN
    	sql语句1;
    	sql语句2;
    
    END $
    
    2、存储过程体中可以有多条sql语句,如果仅仅一条sql语句,则可以省略begin end
    
    3、参数前面的符号的意思
    in:该参数只能作为输入 (该参数不能做返回值)
    out:该参数只能作为输出(该参数只能做返回值)
    inout:既能做输入又能做输出
    

    调用

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

    举例:
    调用in模式的参数:call sp1(‘值’);
    调用out模式的参数:set @name; call sp1(@name);select @name;
    调用inout模式的参数:set @name=值; call sp1(@name); select @name;

    查看

    show create procedure 存储过程名;
    

    删除

    drop procedure 存储过程名;
    

    函数

    创建

    学过的函数:LENGTH、SUBSTR、CONCAT等
    语法:

    CREATE FUNCTION 函数名(参数名 参数类型,...) RETURNS 返回类型
    BEGIN
    	函数体
    
    END
    

    调用

    select 函数名(实参列表);

    查看

    show create function 函数名;

    删除

    drop function 函数名;

    函数和存储过程的区别

    关键字 调用语法 返回值 应用场景
    函数 FUNCTION SELECT 函数() 只能是一个 一般用于查询结果为一个值并返回时,当有返回值而且仅仅一个
    存储过程 PROCEDURE CALL 存储过程() 可以有0个或多个 一般用于更新
  • 相关阅读:
    微软小冰迎来了一个新姐妹:“欣小然”
    终极之战:Linux & Windows
    逆天!百度AI音箱重磅升级:最大梦想实现
    国货之光!百度飞桨与华为麒麟重磅合作
    4天如何完爆Kafka源码核心流程!
    免费P7架构师直播课!技术人员如何提升职场技能?
    ZooKeeper核心原理及应用场景
    IT自由职业者是怎么样的感受和体验
    系统梳理主流定时器算法实现的差异以及应用
    微服务架构中分布式事务实现方案怎样何取舍
  • 原文地址:https://www.cnblogs.com/akiz/p/11179094.html
Copyright © 2011-2022 走看看