mysql存储过程学习随笔(2)
2010-09-10 17:07
363 查看
今天开始带参数的学习,这个参数貌似是很重要的哦,嘿嘿
create procedure p5(in p int) set @x=p;
然后执行这个存储过程
call p5(1231231);
这样就在用户变量中存储了一个@a的用户变量
select @a ; 嘿嘿,看会有什么结果?
同样,看看输出是则么输出的
create procedure p6(out p int) set p=-5;
然后执行他
call p6(@y);
然后
select @y;看看什么结果,嘿嘿
这个输出值就是靠用户变量进行传参的。
DECLARE 定义变量
DECLARE 变量名 类型 DEFAULT 默认值;;
一直觉得这个
begin 和end 很神奇,,,
剥去她的外衣才发现,只是个大括号的意思。。。。。
需要注意的是定义域,这个定义域和java的定义域基本一样。但是内外定义与的变量名可以相同。。。。
下面应该是逻辑结构了吧。。
判断
IF abc = 0 THEN
DO SOMETHING.....
ELSE
DO OTHER THINGS......
END IF
分支
CASE variable1
WHEN 0 THEN
DO SOMETHING...
WHEN 1 THEN
DO SOMETHING..
ELSE
DO SOMETING....
END CASE
循环
WHILE v < 5 DO
DO SOMETHING....
END WHILE;
REPEAT --大概类似于do while?
DO SOMETHING...
UNTIL v >= 5 ;
END REPEAT;
loop_label: LOOP --标号。。
DO SOMETHING...
SET v = v + 1;
IF v >= 5 THEN
LEAVE loop_label;
END IF;
END LOOP;
CREATE PROCEDURE p17 ()
label_1: BEGIN
label_2: WHILE 0 = 1 DO
LEAVE label_2;
END WHILE;
label_3: REPEAT
LEAVE label_3;
UNTIL 0 =0
END REPEAT;
label_4: LOOP
LEAVE label_4;
END LOOP;
END;
标号结束符(可选,但是为了可读性,可能的话,还是加上为好)
CREATE PROCEDURE p18 ()
label_1: BEGIN
label_2: WHILE 0 = 1 DO
LEAVE label_2;
END WHILE label_2;
label_3: REPEAT
LEAVE label_3;
UNTIL 0 =0
END REPEAT label_3 ;
label_4: LOOP
LEAVE label_4;
END LOOP label_4 ;
END label_1 ;
还有游标,以及函数。。。。
据说函数不支持对表的操作。。。 汗死。。郁闷死。。
这本书。。很失落。。。。。。 2004年的。。。。 伤心,,,学的是过时的东西。。。
create procedure p5(in p int) set @x=p;
然后执行这个存储过程
call p5(1231231);
这样就在用户变量中存储了一个@a的用户变量
select @a ; 嘿嘿,看会有什么结果?
同样,看看输出是则么输出的
create procedure p6(out p int) set p=-5;
然后执行他
call p6(@y);
然后
select @y;看看什么结果,嘿嘿
这个输出值就是靠用户变量进行传参的。
DECLARE 定义变量
DECLARE 变量名 类型 DEFAULT 默认值;;
一直觉得这个
begin 和end 很神奇,,,
剥去她的外衣才发现,只是个大括号的意思。。。。。
需要注意的是定义域,这个定义域和java的定义域基本一样。但是内外定义与的变量名可以相同。。。。
下面应该是逻辑结构了吧。。
判断
IF abc = 0 THEN
DO SOMETHING.....
ELSE
DO OTHER THINGS......
END IF
分支
CASE variable1
WHEN 0 THEN
DO SOMETHING...
WHEN 1 THEN
DO SOMETHING..
ELSE
DO SOMETING....
END CASE
循环
WHILE v < 5 DO
DO SOMETHING....
END WHILE;
REPEAT --大概类似于do while?
DO SOMETHING...
UNTIL v >= 5 ;
END REPEAT;
loop_label: LOOP --标号。。
DO SOMETHING...
SET v = v + 1;
IF v >= 5 THEN
LEAVE loop_label;
END IF;
END LOOP;
CREATE PROCEDURE p17 ()
label_1: BEGIN
label_2: WHILE 0 = 1 DO
LEAVE label_2;
END WHILE;
label_3: REPEAT
LEAVE label_3;
UNTIL 0 =0
END REPEAT;
label_4: LOOP
LEAVE label_4;
END LOOP;
END;
标号结束符(可选,但是为了可读性,可能的话,还是加上为好)
CREATE PROCEDURE p18 ()
label_1: BEGIN
label_2: WHILE 0 = 1 DO
LEAVE label_2;
END WHILE label_2;
label_3: REPEAT
LEAVE label_3;
UNTIL 0 =0
END REPEAT label_3 ;
label_4: LOOP
LEAVE label_4;
END LOOP label_4 ;
END label_1 ;
还有游标,以及函数。。。。
据说函数不支持对表的操作。。。 汗死。。郁闷死。。
这本书。。很失落。。。。。。 2004年的。。。。 伤心,,,学的是过时的东西。。。
相关文章推荐
- mysql存储过程学习随笔
- MySQL存储过程的学习(二)
- mysql 存储过程简单学习
- MySql的存储过程学习小结
- MYSQL存储过程学习
- mysql 5.0存储过程学习总结
- MySQL存储过程学习
- MySQL存储过程和触发器的实现--数据库学习笔记
- mysql存储过程学习及java调用存储过程
- mysql 5.0存储过程学习总结
- MYSQL存储过程学习小结
- mysql存储过程学习及java调用存储过程
- mysql 5.0存储过程学习总结
- mysql 5.0存储过程学习总结
- MySql存储过程学习知识小结
- mysql存储过程语法学习
- mysql 存储过程学习
- mysql 5.0存储过程学习总结
- mysql学习笔记之存储过程学习笔记
- mysql 5.0存储过程学习总结