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.

  • 相关阅读:
    Android中,粗暴的方式,修改字体
    Android 修改字体,跳不过的 Typeface
    Android 字体修改,所有的细节都在这里 | 开篇
    当你在设置里修改字体大小的时候,到底在修改什么
    使用 Palette 让你的 UI 色彩与内容更贴合
    View.post() 不靠谱的地方你知道吗?
    九月了,回头看看八月你错过的原创好文
    海外 App 的推送服务,试试 FCM 吧!!!
    微信原图泄露的只能是 Exif ,你的隐私不在这!!!
    RecyclerView 配合 DiffUtil,好用到飞起
  • 原文地址:https://www.cnblogs.com/Ting-light/p/9548518.html
Copyright © 2011-2022 走看看