好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Mysql高级编程_存储过程类型(in/out/inout)

create procedure p1() begin declare i int default 10 ; select concat ( ‘ i的取值是: ‘ ,i) as QuZhi; end $ delimiter $ create procedure p2(width int , hegit int ) begin select concat( ‘ 它的面积是: ‘ ,width * hegit) as area; if width > hegit then select ‘ 比较瘦 ‘ as Xingzhuang ; elseif width < hegit then select ‘ 比较方 ‘ as Xingzhuang ; end if ; end $ -- ---->这里求的是1+100之间的和,这里是固定的求和 delimiter $ create procedure p3() begin declare total int default 0 ; declare num int default 0 ; while num <= 100 do set total : = total + num; set num : = num + 1 ; end while ; select concat( ‘ total的大小是: ‘ ,total) as total; end $ -- ->需求:如果这里想要计算1+N ? -- ->in型参数表示往存储过程中传输参数 delimiter $ create procedure p4( in n int ) begin declare total int default 0 ; declare num int default 0 ; while num <= n do set total : = total + num; set num : = num + 1 ; end while ; select concat( ‘ total的大小是: ‘ ,total) as total; end $ -- -看看out型参数? create procedure p5( in n int ,out total int ) begin declare num int default 0 ; set total : = 0 ; while num <= n do set total : = total + num; set num : = num + 1 ; end while ; end $ -- 看看inout型参数? delimiter $ create procedure p6(inout age int ) begin set age : = age + 10 ; end $ -- 具体操作-- root @localhost 22 : 57 : [ liulin ] > set @current = 18 $ -- 这里先要设置一个变量-- Query OK, 0 rows affected ( 0.00 sec) root @localhost 22 : 58 : [ liulin ] > call p6( @current ) $ -- 然后再将这个变量传入存储过程中inout类型中-- Query OK, 0 rows affected ( 0.00 sec) root @localhost 22 : 58 : [ liulin ] > select @current $ -- 最后再查看该变量是否修改-- + -- --------+ | @current | + -- --------+ | 28 | + -- --------+ 1 row in set ( 0.00 sec)

 

Mysql高级编程_存储过程类型(in/out/inout)

标签:编程   localhost   mys   ota   begin   class   current   参数表   变量   

查看更多关于Mysql高级编程_存储过程类型(in/out/inout)的详细内容...

  阅读:32次