在上一篇文章:别再说不知道什么是存储过程和存储郑州市106中学函数了中简单的介绍了存储过程和存储函数以及其使用。其地形图图式实存储过程是可以进行编程的,所以可以和其他的编程语言一样使用变量、表达式以及控制结构进行编程,从而实现一些复杂和有用的功能。这篇文章就来介绍一下存储过程的一些语法,并通过一些实例来讲解如何使用。
一、声明变量在存储过程中可以通过D电视机什么牌子好eclare来定义一个局部变量,但是该变量的作用范围只是在Begin—E如何制作寿司nd块中,比如:
create procedure p1()begin declare a int default 5; select concat('a的值=',a);end$二、变量赋值对于声明的变量可以通过使用set来进行赋值,比如:
create pr11电影ocedure p2()begin declare name varchar(鲸书20); set name='Jifengjianhao'; select name;end$另外除了通过set来进行赋值以外,还可以通过select into 来进行赋值操作北京私立学校,select into就是讲一张表查询的结果赋值给声明的变量。在上篇文章创建了一张Employee表,具体创建可以阅读上篇文章,这里以该Employee来说明如何使用sel苟仲文ect into 进行赋值操作:
create procedure p4()begin declare name varchar(20); select lastname into name from employee where email='123@qq'; select name;end$这里因为存储过程中的内容为latin1字符集,而latin1字符集为8bit,这说明它是不能表示中文的,所以会报改错,这里讲对应的中文名称改为了英文:
三、参数传递在声明一个存储过程的时候可以进行传参,传递的参数类型可以有:
in:即传入参数,也是默认类型;out:该参数为输出参数,即是返回值;inout:既可以作为传入参数,也可以作为输出参数比如:
输入一个值,输出结果判断其是否大于10create procedure p6(in number int,out result varcha口罩分类r(100))begin if number>10 then set result='number>10'; elseif number=10 then set result='number=10'; else set result='number<10'; end if;end$四、条件判断条件判断就类似于其他的编红三代程语言里面的if else进行条件判断,根据不同的条件执行不同的分支,其语法结构为:
if condition then statementelseif condition 退行性关节炎then statement......else statementend if;主要这里的elseif 是一个单词,不是else if。其具体的实例可以参考上面的参数传递。
在上述的例子中,result变量前面加上了@。这时候就是result相当于用户会话变量,表示整个会话过程都是有作用的,类似于其他编程语言中的全局变量。另外还可以在变量前面加上@@符号,这时候就是什么变量为系统变量。
除了if elseif 可以进行条件判断,还可以通过case结构进行条件判断,语法结构为:
case when whenvalue then statement.....else staementend case;比如:
通过输入尺度大的美剧月份,判断属于第几季度create procedure p7(month int)begin declare result varchar(10); case when month>=1 and month<=3 then set result='第一季度'; when mo如何治荨麻疹nth>=4 and month<=6 then set result='第二季度'; when month>=7 and month<=9 then set result='第三季度'; else set result='第四季度'; end case; select result;end$五、循环结构1、while循环也是存储过程中的一种循环结构,其语法结构为:
while confition dostatementend while;比如:
计算从1加到10的结果:create procedure p8(n int)begindeclare result int default 0;declare start int default 0;while start <= 10 doset result = result+start;set st人际交往障碍art = start+1;end while;select n;end$2、repeat 是另外一种循环控制语句,它与while不同的是:while是满足条件则执行,repe教师资格证怎么报名at则是满足条件则退出执行,其语法结构为;
repeat statement ....... until condition end repeat;还是上面的计算1加到10的例子,用repeat循环结构来写就是:
create procedure p9(n int)begindeclare result int default 0;repeat set result = result+n;set n=n-1;until n=0;end repeat;select result;end$3、loop也是一种简单的循环体,退出的条件需要使其他的语句定义,通常可以通过使用leave语句实现,其具体的语法如下:
loopstatement,......end loop还是上面的例子:
create procedure p10(n int)begin declare result int default 0;s:loop set result = result+n; set n=n-1;退出条件 if n<=0 then leave s; end if;end loop s; select resule;end$六、游标游标是用来存储查询结果集的数据类型,在存储过程和存储函数中可以使用光标对结果集进行循环的处理。光标的使平底凉鞋用包括光标的声明,open、fetch、close:
声明:declare cursor_name cursor for select_statement;open:open cursor_name;fetch:fetch cursor_name into var_name,....close:close cursor_name;实例:
create procedure p11()begin declare id int(10); declare name varchar(50); declare has_data int default 1; declare result cursor for select id,lastname from employee; declare exit handler for not found set has_data=0; 光纤光学open re1998年洪水sult; repeat fetch result into id,name; select id,name; until has_data = 0 end repeat; close result;end$以上就是存储过程中的基本语法。将以上的语法进行结合可以写出复杂的和不同功能头昏恶心的存储过程,从而实现不同的需求开发。
本文原创首发于微信公众号:1024笔记,关注公众号可免费获取更多学习资源。
本文发布于:2023-06-04 06:17:27,感谢您对本站的认可!
本文链接:http://www.ranqi119.com/ge/85/213918.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |