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个或多个 一般用于更新
  • 相关阅读:
    mybatis-plus 错误 java.lang.NoClassDefFoundError
    MySQL+navicat-1064 Error解决方案
    cnblogs博客园修改网站图标icon
    python+pycharm+PyQt5 图形化界面安装教程
    vuex的安装与使用
    vue-router的安装和使用
    VUE-CLI3如何更改配置
    VUE-CL3创建项目
    VUE-CLI2的初始化项目过程
    vuecli脚手架的安装与配置
  • 原文地址:https://www.cnblogs.com/akiz/p/11179094.html
Copyright © 2011-2022 走看看