• 存储过程和函数(九)


    存储过程

    含义:一组经过预先编译的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个或多个 一般用于更新
  • 相关阅读:
    来自Ext的UI边界识别函数constrain
    js模拟静态方法
    ExtJs 带参数的MVC
    call
    Ext表单验证
    【Web入门系列】初探HttpServletResponse
    【Web入门系列】初探HttpServletRequest
    【Java入门系列】面向对象特性-多态
    【Java入门系列】final关键字
    【Java入门系列】static关键字
  • 原文地址:https://www.cnblogs.com/akiz/p/11179094.html
Copyright © 2020-2023  润新知