标准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;
学习更多数据库知识,请扫描下方二维码,移步知识星球:





