一天一点MySQL复习——存储过程

一、存储过程概念



  使用SQL编写访问数据库的代码时,可用两种方法存储和执行这些代码,一种是在客户端存储代码,并创建向数据库服务器发送的SQL命令(或SQL语句),比如在C#、Java等客户端编程语言中嵌入访问数据库的SQL语句;另一种是将SQL语句存储在数据库服务器端(实际是存储在具体的数据库中,作为数据库的一个对象),然后由应用程序调用执行这些SQL语句。

  这些存储在数据库服务器端供客户端调用执行的SQL语句就是存储过程,客户端应用程序可以直接调用并执行存储过程,存储过程的执行结果可返回给客户端。

  存储过程可以:

  • 接受输入参数并以输出参数的形式将多个值返回给调用者。
  • 包含执行数据库操作的语句。
  • 将查询语句执行结果返回到客户端内存中。

  总之,存储过程实际是存储在数据库服务器上的、由SQL语句和流程控制语句组成的预编译集合,它以一个名字存储并作为一个单元处理,可由应用程序调用执行,允许包含控制流、逻辑以及对数据的查询等操作。存储过程可以接受输入参数,并可具有输出参数,还可以返回单个或多个结果集。

二、创建存储过程


create procedure 过程名字(参数列表)
begin
    --过程体
end

  简单实例:

三、查看存储过程


show procedure status [like‘procedure_name‘];

  简单实例:

  其中‘\G‘表示:以每组显示查询结果

  查看创建语句:

show create procedure procedure_name;

四、调用存储过程



  不能用select来访问存储过程:

  调用存储过程应该用 call:

五、修改&删除存储过程



  存储过程不能修改,只能删除后在添加

drop procedure 存储过程名;

六、存储过程参数



  函数的参数需要数据类型指定,过程比函数更严格

  过程还有自己的类型限定:

  • in:数据只是从外部传入给内部使用(值传递),可以是数值也可以是变量
  • out:只允许过程内部使用,只能传递变量,引用传递,外部的数据会被先清空才会进入到内部
  • inout:外部可以在内部使用,内部修改也可以在外部使用,引用传递,只能传递变量

  in参数为值传递

  out参数为引用传递,传递至过程中,会将传递参数的本身值清空

  inout参数为引用传递

  实例:

    delimiter $$
    create procedure pro2(in int_1 int,out int_2 int,inout int_3 int)
    begin
        -- 查看三个变量
        select int_1,int_2,int_3;
    end
    $$
    delimiter ;

    delimiter $$
    create procedure pro3(in int_1 int,out int_2 int,inout int_3 int)
    begin
        -- 查看三个局部变量;
        select int_1,int_2,int_3;

        -- 修改三个局部变量;
        set int_1 = 10;
        set int_2 = 100;
        set int_3 = 1000;

        -- 查看三个局部变量
        select int_1,int_2,int_3;

        -- 查看三个全局变量
        select @int_1,@int_2,@int_3;

        --修改三个全局变量
        set @int_1 = ‘a‘;
        set @int_2 = ‘b‘;
        set @int_3 = ‘c‘;
        --查看三个全局变量
        select @int_1,@int_2,@int_3;
    end
    $$
    delimiter ;

时间: 2024-08-25 15:02:37

一天一点MySQL复习——存储过程的相关文章

一天一点MySQL复习——获取数据库系统时间、变量赋值、变量比较

一.SQL获取系统时间 1 mysql> select now() from dual; 2 +---------------------+ 3 | now() | 4 +---------------------+ 5 | 2016-05-24 08:34:12 | 6 +---------------------+ 7 1 row in set (0.00 sec) 8 mysql> select curdate() from dual; 9 +------------+ 10 | cur

一点实例明白mysql数据库存储过程

mysql存储过程: 封装sql: create procedure p1() begin select * from t_news; end $ //mysql存储过程 简单实例 显示存储过程信息:  \G (横向表格采用纵向表格输出) delimiter $  改变执行符号,直到mysql碰到$ 开始执行语句命令 set  names     解决mysql乱码问题  但mysql重启后又还原到以前字符集状态 call 存储过程名字 ()  调用存储过程 参数: create procedu

mysql写存储过程/PHP写和调用存储过程

PHP调用MYSQL存储过程实例 来源: http://blog.csdn.net/ewing333/article/details/5906887 实例一:无参的存储过程 $conn = mysql_connect('localhost','root','root') or die ("数据连接错误!!!"); mysql_select_db('test',$conn); $sql = " create procedure myproce() begin INSERT IN

MySQL 中存储过程的使用

关于 MySQL 的存储过程,我所了解的一些有规模的公司,对于使用存储过程实现业务逻辑都有严格的限制.我这里搜罗了一些资料,结合自身的经验,总结一些自己关于 MySQL 中存储过程使用的认识.由于水平有限,如有纰漏错误,还请多拍砖. 存储过程的优点主要包括以下几点: 1. 性能提高.相对于不使用存储过程来说的,因为存储过程在创建的时候,数据库已经对其进行了一次解析和优化,而后每次调用都不会再次编译,这相对于传统的SQL语句中每次调用都需要编译的情况来说,性能有所提高,存储过程经过编译之后会比单独

JDBC对MySQL数据库存储过程的调用

一.MySQL数据库存储过程: 1.什么是存储过程 存储过程(英文:Stored Procedure)是在大型数据库系统中,为了完毕特定功能而编写的一组的SQL语句集.存储过程经编译存储在数据库中.用户通过指定存储过程的名字并给出參数(假设该存储过程带有參数)来运行它. 2.与一般SQL语句相比.使用存储过程有哪些长处.有哪些缺点 长处: 1).降低了脚本的运行环节,缩短了获取数据的时间.存储过程仅仅在创建的时进行编译,在调用使用的时候直接运行.不需再次编译:而一般SQL语句每次运行前都须要编译

mySQL的存储过程详解

mysql存储过程详解 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 一个存储过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和一些特殊的控制结构组成.当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的

mysql的存储过程

MySQL存储过程详解  mysql 存储过程 mysql存储过程详解 学习,存储,分享:原文地址:http://blog.sina.com.cn/s/blog_52d20fbf0100ofd5.html 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 一个

MYSQL中存储过程的创建,调用及语法

MySQL 存储过程是从 MySQL 5.0 开始增加的新功能.存储过程的优点有一箩筐.不过最主要的还是执行效率和SQL 代码封装.特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库时(例如 PHP),要组织很多 SQL 语句.特别是业务逻辑复杂的时候,一大堆的 SQL 和条件夹杂在 PHP 代码中,让人不寒而栗.现在有了 MySQL 存储过程,业务逻辑可以封装存储过程中,这样不仅容易维护,而且执行效率也高. 第一部分:创建一个简单的无参的存储过程 1 用mysql客户端登入

十八哥mysql复习集合

mysql复习 一:复习前的准备 1:确认你已安装wamp 2:确认你已安装ecshop,并且ecshop的数据库名为shop 二 基础知识: 1.数据库的连接 mysql -u -p -h -u 用户名 -p 密码 -h host主机 2:库级知识 2.1 显示数据库: show databases; 2.2 选择数据库: use dbname; 2.3 创建数据库: create database dbname charset utf8; 2.3 删除数据库: drop database d