• MySQL存储过程


    存储过程
    存储过程是SQL语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理
     
    存储过程的优点
    1.增强SQL语句的功能和灵活性
    2.实现较快的执行速度
    3.减少网络流量
     
    创建存储过程
    CREATE
    [DEFINER = {user丨CURRENT USER}]
    PROCEDURE sp_name ([proc_parameter[,...]])
    [characteristic ...] routine_body
     
    proc_parameter:
    [ IN丨OUT丨INOUT ] param_name_type
     
    参数
    IN,表示该参数的值必须在调用存储过程时指定
    OUT,表示该参数的值可以被存储过程改变,并且可以返回
    INOUT,表示该参数的调用时指定,并且可以被改变和返回
     
    特性
    COMMENT 'string'
    丨{CONTAINS SQL丨NO SQL丨READS SQL DATA丨MODIFIES SQL DATA}
    丨SQL SECURITY {DEFINNER丨INVOKER}
     
    COMMENT:注释
    CONTAINS SQL:包含SQL语句,但不包含读或写数据的语句
    NO SQL:不包含SQL语句
    READS SQL DATA:包含读数据的语句
    MODIFIES SQL DATA:包含写数据的语句
    SQL SECURITY {DEFINER丨INVOKER}指明谁有权限来执行
     
    过程体
    过程体由合法的SQL语句构成;
    过程体可以是任意SQL语句;
    过程体如果为复合结构则使用BEGIN...END语句;
    复合结构可以包含声明、循环、控制结构;
     
    调用存储过程
    CALL sp_name([paremeter[,...]])
    CALL sp_name[()]
     
    修改存储过程
    ALTER PROCEDURE sp_name [characteristic ...]
    COMMENT 'string'
    丨{CONTAINS SQL丨NO SQL丨READS SQL DATA丨MODIFIES SQL DATA}
    丨SQL SECURITY {DEFINNER丨INVOKER}
    删除存储过程
    DROP PROCEDURE [IF EXISTS] sp_name
     
    小结
    1、存储过程:是SQL语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理
    2、参数:输入类型 输出类型 输入&&输出
    3、创建:CREATE......PROCEDURE......
    4、注意事项:(1)创建存储过程或者自定义函数时需要通过DELIMITER语句修改定界符
                           (2)如果函数体或过程体有多个语句,需要包含在BEGIN......END语句块中
                           (3)存储过程通过CALL来调用
  • 相关阅读:
    luogu P3704 [SDOI2017]数字表格
    「雅礼集训 2018 Day4」Magic(分治NTT)
    「清华集训 2017」小 Y 和恐怖的奴隶主
    [WC2019]数树(树形dp+多项式exp)
    「FJWC2020Day5-zzq」lg (容斥)
    BoundedOptimization TopCoder
    MapGuessing TopCoder
    线性递推(Berlekamp-Massey 算法)
    杜教筛小记
    「余姚中学 2019 联测 Day 6」解码
  • 原文地址:https://www.cnblogs.com/zxy1993/p/4667728.html
Copyright © 2020-2023  润新知