美文网首页
MySQL存储过程和函数(1)

MySQL存储过程和函数(1)

作者: 李白开水 | 来源:发表于2020-06-27 22:11 被阅读0次

    概述

    存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的效率提升

    存储过程和函数是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程实际上就是就是执行这一段SQL语句。
    使用存储过程,可以减少和应用程序之间的交互。
    存储函数有返回值,而存储过程没有返回值。

    语法

    创建存储过程

    CREATE PROCEDURE procedure_name ([proc_parameter[,...]])
    begin
    -- SQL语句
    end ;
    

    因为SQL语句要用到一个";",而创建存储过程末尾也需要一个分号,所以在SQL语句使用完分号回车之后,就会直接出错:


    image.png

    如果把end;写在SQL语句的同一行,也会出错:


    image.png

    解决办法是新指定一个特殊的分隔符。
    使用delimiter + 分隔符来指定。
    将分隔符指定为美元符号'$':

    image.png
    重新创建存储过程:
    image.png

    调用存储过程

    call procedure_name() ;
    

    注意分隔符已经指定为'$'符号了。


    image.png

    查询存储过程

    -- 查询db_name数据库中的所有的存储过程
    select name from mysql.proc where db='db_name';
    
    -- 查询存储过程的状态信息
    show procedure status;
    show procedure status\G;
    
    -- 查询某个存储过程的定义
    show create procedure test.pro_test1 \G;
    

    第一种方式:


    image.png

    这个过程实际上是从MySQL数据结构中的表proc中查询的,所以要指定数据库的名字。

    删除存储过程

    DROP PROCEDURE [IF EXISTS] sp_name ;
    
    image.png

    再查询一下存储过程:


    image.png

    已经没有啦~

    相关文章

      网友评论

          本文标题:MySQL存储过程和函数(1)

          本文链接:https://www.haomeiwen.com/subject/asjvfktx.html