美文网首页
MySQL存储过程

MySQL存储过程

作者: 老衲灬 | 来源:发表于2018-09-19 20:33 被阅读5次

1、简介

说明:MySQL执行语句是要先编译,然后再执行的,会浪费很多资源和时 间。
解决:通过存储过程提前封装并编译,后期直接调用传递参数即可
作用:提升性能

2、语法

-> 创建存储过程:

#修改SQL语句结束符号
delimiter //

create procedure 存储过程名称([选项] 参数 类型,...,[选项] 参数n 类型n)
begin
     SQL语句等代码
end //

delimiter;

-> 调用存储过程:call 存储过程名称(参数)
-> 删除存储过程:drop procedure 存储过程名称
-> 显示创建的所有存储过程:show procedure status\G
-> 查看存储过程的创建语句:show create procedure 存储过程名称

示例:通过存储过程显示stu表的数据

#修改结束符
delimiter //
#创建存储过程
create procedure p1()
begin
    select * from stu;
end //
#修改结束符
delimiter ;
#调用
call p1();

3、全局变量

设置全局变量:set @变量名 = 值;(注:退出MySQL自动销毁)
查看全局变量:select @变量名;

4、局部变量(declare)

定义局部变量:declare 变量名 变量类型 [default 默认值];
局部变量赋值:

#直接给变量值
set 变量名 = 值;

#查询表数据赋给变量
select 字段名1,...,字段名n from 表名 into 变量名1,...,变量名n;

示例:

delimiter //

drop procedure if exists p3;
create procedure p3() 
begin
    #1.定义局部变量
    declare data1 varchar(30);
    #2.定义局部变量(给局部变量设置默认值)
    declare data2 varchar(30) default 222;
    #3.定义局部变量(并设置333)
    declare data3 int;
    #4.定义局部变量(值来源于其他表)
    declare data4 int;

    set data3 = 333;
    select age from stu where id = 4 into data4;

    #结果:  null  222    333    18
    select data1,data2,data3,data4;
end //

delimiter ;

#调用
call p3();

5、形参修饰符(in、out、inout)

in:可以传递参数(默认)
out:不可以传递参数,但是可以输出参数(必须定义变量来接受输出参数)
inout:既可以传递参数,又可以输出参数
示例:

delimiter //
create procedure p6(num1 int, in num2 int, out num3 int)
begin
     #因为num3修饰符是out所以将返回所有代码运行完毕num3的值给变量
     set num3 = num1 + num2;
end//

#定义全局变量
set @testReturnVal = 0//
#调用p6存储过程
call p6(1, 1, @testReturnVal)//

select @testReturnVal//

delimiter ;

相关文章

  • 15 MySQL 存储过程

    MySQL 存储过程 [toc] 存储过程概述 存储过程介绍 存储过程,相当于是 MySQL 语句组成的脚本 指的...

  • 存储过程

    使用存储过程 1.存储过程 ​ 需要MySQL5---->> MySQL5添加了对存储过程的支持。 ​ 迄...

  • MySQL存储过程详解 mysql 存储过程

    原文链接 MySQL存储过程详解 1.存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然...

  • Mysql存储过程

    阅读目录:MySQL存储过程_创建-调用-参数 存储过程:SQL中的“脚本” 创建存储过程 调用存储过程 存储过程...

  • 面试官突然问我MySQL存储过程,我竟然连基础都不会!(详细)

    MySQL存储过程 一、存储过程 1.1 什么是存储过程 存储过程(Stored Procedure)是在大型数据...

  • MySQL存储过程创建及调用方法

    MySQL存储过程是一个sql语句,那么我们如何创建呢,MySQL存储过程创建及修改,删除操作。 1,存储过程创建...

  • 存储过程

    创建存储过程 mysql: 执行存储过程 mysql: 使用OUT参数和INOUT参数: PREPARE和EXEC...

  • SQL基本语句(以MySQL为例)-- 第五部分

    19、使用存储过程MySQL的存储过程的语句跟这本书上的差太远了吧,以下参考自:MySQL存储过程教程 20、管理...

  • MySQL存储过程和存储函数

    一、存储过程 MySQL存储过程存储过程和存储函数参考文章 SQL语句需要先编译然后执行,而存储过程(Stored...

  • MySQL存储过程

    1、关于MySQL的存储过程 存储过程是数据库存储的一个重要的功能,但是MySQL在5.0以前并不支持存储过程,这...

网友评论

      本文标题:MySQL存储过程

      本文链接:https://www.haomeiwen.com/subject/qylwnftx.html