zoukankan      html  css  js  c++  java
  • 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来调用
  • 相关阅读:
    BZOJ 5358 口算训练/HDU 6287(可持久化线段树)
    HDU 4288 Coder
    FZU 2289 项链
    jQuery
    HTML5存储技术Storage
    JS第三部分--BOM浏览器对象模型
    JS第二部分--DOM文档对象模型
    JS第一部分--ECMAScript5.0标准语法 (JS基础语法)
    python离线安装包
    DB2不记日志插入,python迭代器操作xlrd,python操作xlwt
  • 原文地址:https://www.cnblogs.com/zxy1993/p/4667728.html
Copyright © 2011-2022 走看看