zoukankan      html  css  js  c++  java
  • MySQL的存储过程

    存储过程和存储函数经常是一组SQL语句的组合,这些语句被当作整体存入MYSQL

    数据库服务器中。用户定义的存储函数不能用于修改全局库状态,但该函数可从查询中

    被唤醒调用,也可像存储过程一样通过语句执行。

    mysql中创建存储过程的基本形式如下:

    create procedure sp_name([proc_parameter[]])

           [characteristic...]routine_body

    其中sp_name 参数是存储过程的名称;proc_parameter 表示存储过程的参数列表;

    characteristic参数指定存储过程的特性;routine_body参数是sql代码的内容,执行语句。

    其中pro_parameter中的参数由3部分组成:输入输出类型、参数名称、参数类型。形式为:

    [in|out|inout]param_name type。其中in表示输入参数;out表示输出参数;inout表示既可输出

    也可输入;param_name参数是存储过程参数名称;type参数指定存储过程的参数类型,该类型

    可以为MYSQL数据库的任意数据类型.

    例:

    delimiter//

    create procedure pro_name(in parameter integer)

    begin

    declare variable varchar(20);

    if parameter=1 then 

    set variable='MYSQL';

    else

    set variable='php';

    end if;

    insert into tb(name) values(variable);

    end;

    MYSQL中存储过程的建立以关键字create procedure 开始,后面紧跟存储过程的名称和参数。

    MYSQL的存储过程名称不区分大小写。存储过程名或存储函数名不能与MYSQL数据库中的

    内建函数重名。

    MYSQL存储过程的语句块以begin开始,以end结束。语句体中可以包含变量的声明、控制语句

    SQL查询语句等。由于存储过程内部语句要以分号结束,所以在定义存储过程前,应将语句

    结束标志‘;‘更改为其他字符,并应降低该字符在存储过程中出现的几率。

    更改结束标志可用关键字‘delimiter’定义,例如:

    mysql>delimiter//

    存储过程创建后,可以用如下语句删除,参数proc_name指存储过程名:

    drop procedure pro_name.

    存储过程例2

    delimiter//

    create procedure count_of_student(out count_num int)

    reads sql data

    begin 

    select count(*) into count_num from studentinfo;

    end

    //

    该存储过程先用select 语句从studentinfo 表中获取记录总数,然后将结果传递给变量count_num.

  • 相关阅读:
    维克里拍卖 Vickrey auction
    弱占优策略--Weakly Dominant Strategy
    乱码电路(Garbled circuits)
    P和NP问题
    揭秘Facebook首个数据中心:全球15亿用户的账户信息都在这里
    数学符号“s.t.”的意义
    PKI系统深入介绍
    [转]公钥,私钥和数字签名这样最好理解
    Exif
    任我行 CRM 9.4
  • 原文地址:https://www.cnblogs.com/Ting-light/p/9548518.html
Copyright © 2011-2022 走看看