暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

sql语法扩展之循环语句语法

数据库精要 2021-09-27
2581

    标准sql语法里没有循环语句,但是各个数据库管理系统为了提供更灵活实用的处理功能,都对标准sql进行了扩展。当程序需要反复执行某一操作时,就必须使用循环结构,今天重点研究循环语句语法。

oracle:主要包括loop语句、while语句和for语句3种

loop循环

       至少进入循环体一次,循环后判断退出条件是否为真,为真退出,loop循环必须包含exit 退出语句,并且退出条件的值需要在循环内进行改变,否则进入死循环。

LOOP

   sql_statement ;

   EXIT WHEN condition;

END LOOP;

while循环:只有条件为TRUE时,才会进入循环执行循环体内的语句,当使用WHILE循环时,应该定义循环控制变量,并在循环体内改变循环控制变量的值,否则也会跳不出循环。

WHILE  condition  LOOP

     sql_statement ;

END LOOP; 

for循环:可以预置循环次数的循环控制语句,循环控制变量不需要显式赋值,for循环体自动加减控制变量。for循环可以从小到大循环也可以通过reverse实现从大到小循环。

FOR counter in [REVERSE] lower_bound. .upper_bound LOOP

    sql_statement ;

END LOOP;


sqlserver: 只有while循环没有loop和for循环。但是可以使用while 配合break和continue替代loop和for循环。

while循环:只要指定的条件为真,就重复执行语句。可以使用 BREAK 和 CONTINUE 关键字在循环内部控制 WHILE 循环中语句的执行。如果嵌套了两个或多个 WHILE 循环,内层的 BREAK 将导致退出到下一个外层循环。首先运行内层循环结束之后的所有语句,然后下一个外层循环重新开始执行。需要在循环体内对判断条件进行改变。

WHILE condition 

 begin

       sql_statement

      [ BREAK ]

       sql_statement 

      [ CONTINUE ]

 end


mysql:有while 、repeat和loop三种循环

while循环:只有条件为TRUE时,才会进入循环执行循环体内的语句,当使用WHILE循环时,应该定义循环控制变量,并在循环体内改变循环控制变量的值。

[label] while condition  do 

   sql_statement ;

end while;


repeat循环:repeat循环先进入循环体,至少执行一次。

repeat 

     sql_statement;

until condition  

end repeat;


loop循环:

label:loop

     sql_statement ;


     leave  label//退出循环

end   loop;

学习更多数据库知识,请扫描下方二维码,移步知识星球:


文章转载自数据库精要,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论