• Mysql存储过程


    此文仅作简单的说明

     

    一、简介

    我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。

    一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对象方法的模拟。它允许控制数据的访问方式。MySQL在5.0以前并不支持存储过程

     

    二、创建存储过程

    (一)修改结束符:

    因为sql语句以分号";"结束,为了创建存储过程首先要修改一个结束符:

     

    delimiter // 
    select * from tablename  //

     

    上边代码将结束符换成了"//"

      (二)创建存储过程:

    现在可以创建一个存储过程了:

    create procedure finduser (out username varchar(255))
    reads sql data
    begin
    select name into username from userinfo where id=1; 
    end
    //
    procedure是程序步骤的意思,可以理解为存储过程.其中finduser就是这个存储过程的名字 
    括号中是存储过程的参数,out表示是输出参数,in表示输入参数。

    MySQL存储过程的参数用在存储过程的定义,共有三种参数类型,IN,OUT,INOUT,形式如:
    CREATE PROCEDURE([[IN |OUT |INOUT ] 参数名 数据类形...])
    IN 输入参数:表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值
    OUT 输出参数:该值可在存储过程内部被改变,并可返回
    INOUT 输入输出参数:调用时指定,并且可被改变和返回

    username就是参数名 而varchar(255)则是参数类型。参数类型有:int, float, date, varchar(length)
    reads sql data 表明这个存储过程下面要用sql读取数据。
    begin和end代表开始和结束

    (三)调用存储过程:
    call finduser(@n)//
    select @n//
    第一句敲回车执行后,会提示执行成功。第二步执行后或获取到结果。
    在这里@后面即一个字符串,表明一个会话变量,在MYSQL中会话变量不用声明即可使用,会话变量在整个过程中都 有效,在这里,调用了存储过程,然后把结果存入了会话变量中,然后查询会话变量,即可查询到结果

    (四)查询存储过程
      1、查询数据库下有哪些存储过程:

    select name from mysql.proc where db=’数据库名’;

     

    select routine_name from information_schema.routines where routine_schema='数据库名';

     

    show procedure status where db='数据库名';

    2、查询存储过程详细:

     

    show create procedure  数据库.存储过程名;

     

    (五)修改存储过程

    ALTER PROCEDURE

    更改用CREATE PROCEDURE 建立的预先指定的存储过程,其不会影响相关存储过程或存储功能。

    (六)删除存储过程

    删除一个存储过程比较简单,和删除表一样:

    DROP PROCEDURE

    从MySQL的表格中删除一个或多个存储过程。

     

     

     

     

     

     

     

  • 相关阅读:
    ? ?? 类?
    类 建索引
    访问局域网计算机文件
    JS 在元素后面添加新的元素
    js 网页加载完毕,执行js函数
    设置快捷键(3种方式)
    winform设置textbox设置水印
    ADO.NET 学生管理
    C#整理 条件语句
    ADO.NET 数据访问类查询、属性扩展
  • 原文地址:https://www.cnblogs.com/orlion/p/4800854.html
Copyright © 2020-2023  润新知