mysql的储存过程
来源:互联网 发布:adobe 2017mac百度云 编辑:程序博客网 时间:2024/05/23 19:16
1.概念
网上有人总结为:该储存过程就像Java的函数一般,用于添加mysql功能的!
2.接下去来一个比较简单的储存功能.
DELIMITER $
CREATE PROCEDURE pro()
BEGIN
SELECT * FROM cba;
END $
CALL pro();
delimeter是分隔符 开始的意思
CREATE PROCEDURE pro() 创建新的一个储存过程,pro是储存过程的名字
BEGIN 存储过程的功能开始
SELECT * FROM cba; 功能语句
END $ 结束关键词
SELECT * FROM cba;
这个红色笔部分是这个储存过程的功能!查询cba表的全部信息
CALL pro(); 这句话的意思是调用名为pro()储存过程
结果如下图
其实把储存过程理解为java方法确实比较好理解,因为储存过程也有参数的,它可以装三种类型的参数
in :表示输入参数,可以携带数据带储存过程中
out :表示输出参数,可以从存储过程中返回结果
inout:表示输入输出参数,既可以输入功能,也可以输出功能.
-- + 空格 ;代表mysql的注释
使用 @会话变量加输出式的储存过程
以下是 用会话变量 加上 储存过程输出功能的 代码,out 将值输出到sam3 然后采用会话变量来接值 最后查询会话变量就可得out参数
DELIMITER $
CREATE PROCEDURE me(OUT sam3 VARCHAR(20)) -- out代表输出,sam3代表的是局部变量
BEGIN
SET sam3='ok';
END$
call me(@ni);-- 在调用储存过程中设置了会话变量
select @ni;
便可以看到,储存过程当中,输入值输出给了会话变量
最后我使用输出式的存储过程来做一个数据库小项目------> 1 代表星期一 2 代表星期二 3 代表星期三 其他代表输入错误
DELIMITER $
CREATE PROCEDURE ni(IN num INT,OUT xingqi VARCHAR(20))
BEGIN
IF num=1 THEN
SET xingqi='星期一';
ELSEIF num=2 THEN
SET xingqi='星期二';
ELSEIF num=3 THEN
SET xingqi='星期三';
ELSE
SET xingqi='错误输出';
END IF;
END $
CALL ni(2,@ni)
SELECT @ni;
再来一个关于1加到一百的小练习
-- 从1加到100的总和,算法
DELIMITER $
CREATE PROCEDURE sum_test1(IN num INT,OUT result INT)
BEGIN
DECLARE i INT DEFAULT 1;
DECLARE content INT DEFAULT 0;
WHILE i<num DO
SET content=content+i;
SET i=i+1;
END WHILE;
SET result = content;
END $
CALL sum_test1(100,@content)
SELECT @content
总结 储存过程 有点像 java的函数
- mysql的储存过程
- MySQL储存过程的步骤
- mysql 储存过程的特点 (翻译)
- mysql 储存过程的流程控制
- mysql 储存过程的一些问题
- mysql 储存过程游标的使用
- MySQL储存过程的基本操作
- mysql储存过程
- mysql 储存过程
- Mysql储存过程
- mysql储存过程
- MySQL储存过程详解
- MySQL 储存过程-原理
- MySQL---储存过程
- mysql储存过程
- mysql储存过程基础学习
- mysql 储存过程/函数调试
- mysql储存过程多游标
- ubuntu14 安装配置nginx+php5+mysql
- Android多媒体数据库及MediaProvider
- STL----vector
- 406. Queue Reconstruction by Height
- ThinkPhP中的模板常量替换机制
- mysql的储存过程
- C++中template(模版)的使用
- intellij idea 常用快捷键mac版
- servlet 与tomcat版本对照
- 注释转换(从c到c++)
- 如何查看windows系统端口号是否被占用
- 项目实战篇-餐馆管理系统—MFC,PHP,MySql:5.菜单管理模块
- Java表达式中的那些坑
- Makefile中用宏定义进行条件编译(gcc -D)/在Makefile中进行宏定义-D