数据库——(17)存储过程
来源:互联网 发布:美工需要学哪些东西 编辑:程序博客网 时间:2024/05/20 14:17
存储过程简称过程,procedure,一种用来处理数据的方式
存储过程是一种没有返回值的函数
创建过程
基本语法:
create procedure 过程名字([参数列表])
begin 过程体 end
查看过程
函数的查看方式完全适用于过程:关键字换成procedure
查看所有过程:show procedure status[like ‘pattern’];
查看过程创建语句:show create procedure 过程名;
调用过程
过程没有返回值,所以select不能访问。过程有一个专门调用的关键字:call
call 过程名([参数列表]);
修改过程&删除过程
过程只能先删除后新增
drop procedure 过程名;
过程参数
函数的参数需要指定数据类型,过程比函数更严格
过程有自己的类型限定:三种类型
- in: 数据只是从外部传入给内部使用(值传递):可以是数值也可以是变量。
- out :只允许过程内部使用(不用外部数据);给外部使用的(引用传递:外部的数据会先清空才会进入到内部):只能是变量。
- inout:外部可以在内部使用,内部修改也可以给外部使用:典型的引用传递,只能传变量。
基本使用:
create procedure 过程名(in 形参名字 数据类型,out 形参名字 数据类型,inout 形参名字 数据类型)
delimiter $$create procedure pro1(in int_1 int,out int_2 int,inout int_3 int)begin-- 先查看三个变量select int_1,int_2,int_3; -- int_2的值一定为NULLend$$delimiter ;
调用:out和inout类型的参数必须传入变量,而不能是数值
-- 设置变量set @int_1=1,@int_2=2,@int_3=3;call pro1(@int_1,@int_2,@int_3);
存储过程对于变量的操作(返回)是滞后的:是在存储过程调用结束的时候,才会重新将内部修改的值赋值给外部传入的全局变量。
delimiter $$create procedure pro2(in int_1 int,out int_2 int,inout int_3 int)begin-- 先查看三个变量select int_1,int_2,int_3; -- int_2的值一定为NULL,这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 ;
设置变量,调用过程
set @int_1:=1,@int_2:=2,@int_3:=3;call pro2(@int_1,@int_2,@int_3);
结果:
最后:在存储过程调用结束之后,系统会将局部变量重复返回给全局变量(out和inout)。
select @int_1,@int_2,@int_3;
结果:
阅读全文
0 0
- 数据库——(17)存储过程
- 数据库—存储过程。
- 数据库回顾(二)—存储过程
- 数据库——存储过程
- 数据库——存储过程
- (数据库)-存储过程
- 数据库——存储过程(C#实现)
- 菜鸟学数据库(三)——存储过程
- 再看数据库——(1)存储过程
- 菜鸟学数据库(三)——存储过程
- 【数据库】(二)——存储过程的本质
- 数据库原理—— 存储过程
- 数据库笔记六——存储过程
- 数据库(2)——存储过程
- mysql数据库体系结构——存储过程
- MySQL数据库学习——存储过程
- 数据库对象——序列,存储过程
- 0010 数据库对象—存储过程
- 面对对象的特征
- hdu 2018 母牛的故事
- HTTP协议笔记(一):Web网络基础
- 抽象类、接口
- STL学习之七:list用法示例
- 数据库——(17)存储过程
- opencv程序在未安装opencv环境下运行方法总结
- windows10-VS2015-Boost-Pyhton2.7-dlib配置
- Excel 技巧百例:设置下拉框
- MVC后台数据赋值给前端JS对象
- WebSocket的基础知识总结
- Android 与 web后台数据交互之解析XML和JSON
- Android实现五子棋游戏(二) 人机对战实现
- Hdu 6034 细心 数组少开