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.

  • 相关阅读:
    poj 3666 Making the Grade
    poj 3186 Treats for the Cows (区间dp)
    hdu 1074 Doing Homework(状压)
    CodeForces 489C Given Length and Sum of Digits...
    CodeForces 163A Substring and Subsequence
    CodeForces 366C Dima and Salad
    CodeForces 180C Letter
    CodeForces
    hdu 2859 Phalanx
    socket接收大数据流
  • 原文地址:https://www.cnblogs.com/Ting-light/p/9548518.html
Copyright © 2011-2022 走看看