SQL循环:使用循环有效地遍历代码
SQL代表结构化查询语言。它是专门设计用于从关系数据库中检索和操作数据的。PL/SQL是SQL的过程扩展,可以很好地与后者集成。该语言包含重要的编程特性,这些特性与SQL相结合,可以创建有用的数据驱动应用程序。PL/SQL代码可以从SQL命令行调用。它支持多种数据类型,并合并了许多有用的编程结构。PL/SQL既可以用于结构化编程,也可以用于面向对象编程。
本教程要求您对PL/SQL有基本的了解。如果您是SQL的新手,您可能会想要先学习一下乘坐SQL播放此课程开始。
PL / SQL循环语句
循环是重复执行语句的程序结构。这避免了重复的程序代码,因为我们可能不知道应该执行相关语句的次数。通常,建议使用退出条件来终止循环。否则,循环可能无限遍历。
PL / SQL中有三种主要类型的循环
- 简单的循环
- 循环时
- 对于循环
使用Loop语句时需要考虑一些事情。他们列于下面。
- 初始化变量——这应该在循环语句之前完成。
- 递增变量 - 这是在循环内完成的。
- EXIT语句——如果单独使用,它将导致语句只执行一次。
- 陈述时退出 - 这用于退出循环。
第一类PL / SQL循环:简单的循环
当语句至少需要执行一次时,可以使用这个函数。简单的循环必须有退出条件。这是为了避免无限处决。如果满足退出条件,循环终止。看一下语法
环形
陈述序列;
结束循环;
您也可以使用以下版本
环形
陈述;
出口;
{或退出条件;}
结束循环;
通过以下示例的帮助,让我们更好地了解循环的概念。
示例1A:带有退出的循环语句
声明计数器编号:= 0;
开始
环形
计数器:=计数器+ 1;
DBMS_OUTPUT.PUT_LINE(柜台);
如果计数器= 10那么
出口;
万一;
结束循环;
结束;
/
在上面的示例中,可变计数器被初始化为0。然后我们通过将计数器值递增1.当计数器的值变为10时,满足IF条件并执行退出语句。这导致循环终止。请注意,此循环迭代10次。拿这门课程将帮助您了解如何在PL/SQL中使用IF条件。
例1b:使用EXIT WHEN的循环语句
声明计数器编号:= 0;
开始
环形
计数器:=计数器+ 1;
DBMS_OUTPUT.PUT_LINE(柜台);
计数器= 10时退出;
结束循环;
结束;
/
这类似于上述程序。但是,这可以用作替代,如果那么,则可以一起退出语句。
第二种类型的PL / SQL循环:循环时
在循环中,在开始时检查条件。如果为false,则循环终止而无需单一执行该语句。如果为true,则执行循环中的语句。循环将重复直到,条件变为假。
请注意,您应该使用while循环,当您不知道需要执行多次语句或序列时的次数。
而<条件>
循环陈述;
结束循环;
请注意,在此类型的循环中使用语句时退出和退出,但这不是一个非常常见的做法。
示例2:使用WHILE循环执行数据库事务
声明
薪水整数;
mgr_num整数;
last_name varchar2;
hight_empno常量数字(4):= 100;
开始
SELECT sal, mgr INTO salary, mgr_num FROM employee
其中empno = hight_empno;
虽然薪水<10000环
SELECT sal, mgr, ename INTO salary, mgr_num, last_name
来自EMP.
其中empno = mgr_num;
结束循环;
插入临时值(null,salary,last_name);
犯罪;
结束;
此处虽然工资变量值小于10000,但循环执行。当条件为false时,循环终止。然后执行INSERT查询,并且使用COMMINA命令使数据库事务永久性。
PL/SQL循环的第三种类型:FOR循环
当您提前知道迭代次数时,建议使用FOR循环。语法如下所示。
FOR counter IN [REVERSE] lower_bound..higher_bound
环形
陈述;
结束循环;
让我们详细检查这个语法。
- PL/SQL自动创建一个具有整型数据类型的局部变量计数器。注意,变量的作用域被限制在循环本身内。在每次迭代之后,计数器的值自动增加1。同样,它的值应该在由下限和上限值定义的给定范围内。当该值不在范围内时,循环终止。在循环的每次迭代中,都会执行给定的语句。还有另一种使用FOR循环的方法。
- 反向关键字 - 请注意,这是可选的。当包含时,计数器变量初始化为更高的界限。在每个迭代中,变量值由1.当变量值不在范围内时,循环终止并控制到循环后面的下一个语句。
- 可执行语句 - 必须具有至少1个中的一个可执行语句。
示例3:用于使用for循环插入表中的记录的程序
声明
a NUMBER:= 100;
开始
FOR i IN 1..20个循环
如果MOD(i,2) = 0,那么
INSERT INTO temp VALUES (i, a, '偶数');
别的
INSERT INTO temp VALUES (i, a, '奇数');
万一;
a:= a + 100;
结束循环;
犯罪;
结束;
for循环中的变量i被隐式声明为整数类型,并且只在for循环中具有作用域。MOD()函数确定变量的值是否能被2整除。如果为true,则insert命令使用上面提到的值将一条记录插入到临时表中。如果为false,则执行另一个insert命令。每次迭代后,i加1。
一定要研究这些示例,并尝试创建自己的代码。这是掌握编程概念最有效的方法。如果你想了解更多关于循环的知识,请上PL/SQL循环高级课程。