zoukankan      html  css  js  c++  java
  • MySql 存储过程一--基本语法及参数介绍

    存储过程是为了完成特定功能的SQL语句集,经过第一次编译后,之后调用都不用再进行编译

    • 创建:
    create procedure procedure_name ([parameter list])
    [characteristic ...]
    begin routine_body
    end

    其中,

    procedure_name: 为存储过程名称;

    parameter list: 为参数列表,可以包含零个或多个参数,参数与参数之间逗号(,)分隔。

                            每个参数的形式为:参数类型  参数名称  数据类型

                            参数类型:in(输入参数) out(输出参数) inout(输入输出参数,调用时被指定,可以被修改和返回)

    characteristic:该项可选,表示存储过程特性,有如下取值:

                         1)language sql: 存储过程由SQL语句组成,目前sql是language特性的唯一值;

                         2)[not] deterministic: 表示结果是否为确定的值,即相同输入是否一定能得到相同输出,默认为not deterministic;

                         3)contains sql(存储过程包含sql语句,但不包含读写数据的语句)| no sql(存储过程不包含sql语句)| reads sql data(存储过程包含读数据的语句)|modifies sql data(存储过程包含读写数据的语句)

                         4)sql security {definer(只有定义者可以执行该存储过程)|invoker(拥有权限的调用者可以执行)} ,默认definer

                         5)comment 'string'(注释,描述存储过程)

    routine_body: 程序体。  

                       

    • 调用:
    call procedure_name(parameter list);
    
    • 删除:
    drop procedure procedure_name;
    

      

    PS:

    1、创建存储过程前,要先指定存储过程所属的数据库;

    2、查询某个数据库所包含的存储过程(设数据库名称为factory,包含一个名为sum_app的存储过程):

    3、查询存储过程创建语句:

    4、可以在一个存储过程中调用另一个存储过程,但是不能删除另一个存储过程。

  • 相关阅读:
    在 Eclipse Workbench 之外使用 Eclipse GUI
    GB2312,GBK,Unicode
    木偶一之推荐系统
    Matlab:任意矩阵计算分布密度(海明距离的分布密度)
    live555在arm linux下的交叉编译,并下载的Arm板播放H264文件
    java设计模式之原型模式
    HDU 1102
    poj3661另一种做法(滚动数组)
    基于QT的小游戏细菌病毒战
    某代码查看器的保护突破
  • 原文地址:https://www.cnblogs.com/yuanfy/p/6714619.html
Copyright © 2011-2022 走看看