当前位置:网站首页 > SQL数据库编程 > 正文

sql for loop循环(sqlplus 循环)



基本上每一种数据库,都会对 SQL 语句进行扩展。PL/SQL 则是 Oracle 数据库对于 SQL 语言的扩展

,PL/SQL 全称是 Procedural Language/SQL,即过程化 SQL 语言。

PL/SQL 在普通 SQL 语言上添加了编程语言的特点,可以把数据操作和查询语句组织在 PL/SQL 代码的过程性单元中,通过逻辑判断、循环等操作,实现复杂的功能或者计算

PL/SQL 有专门的开发工具 PL/SQL Developer,我们可以通过 PL/SQL Developer 工具的 Test Window 创建程序模板或者通过语句在 SQL Window 编写。

PL/SQL 是不区分大小写的

,所以我们编写 PL/SQL 时不用区分大小写。

PL/SQL 的程序结构,可以分为三个部分,声明部分、可执行部分、异常处理部分。

DECLARE 部分用来声明变量或者游标(结果集类型变量),如果程序中无变量声明,可以省略,异常处理部分也是可以省略。

BEGIN 和 END「;」「/」 不能省略。在 PL/SQL中,「;」冒号表示每条语句结束,「/」表示整个 PL/SQL 程序结束。

了解完 PL/SQL 的程序结构后,我们就开始写 PL/SQL 的第一个 hello world 了。

DBMS_OUTPUT 是 Oracle 中的一个输出对象,PUT_LINE 是上述对象的一个方法,用于输出一个字符串自动换行。SQLPLUS 或者「命令窗口」中如果没有输出,可以使用 set serveroutput on/off 命令更改设置。 

PL/SQL 既然有了编程语言的特点,自然也支持变量,

PL/SQL 的变量可以分为两种,「普通变量」和「特殊变量」,特殊变量又分为引用型和记录型。

56d1e3f106a2de4f02d4d919125bde4f.png

普通变量就是 Oracle 的数据类型,包括 char、varchar2、date、number、boolean、long。

PL/SQL 变量有两种赋值方式:

PL/SQL 中的连接使用「||」,和 Java 中「+」号一样,下面是实例,我们输出一个变量:

我们来看一下引用型变量,顾名思义,引用型变量它的类型和大小是引用数据库表中字段的类型和大小

记录型变量是用于保存一行记录,相当于 Java 中的一个对象。

学完变量,我来学习一下流程控制,流程控制有条件分支和循环,PL/SQL 有三种循环,这里我们只学习 LOOP 循环。

eeec9715f86534a204222f239aa0bdce.png

条件分支就是我们常见的 if...else... 下面看一下它的格式:

这里需要注意的是,这里是「ELSIF」,并没有写错,不是我们编程中常见的「else if」。有 IF 就要有 END IF,这个好比 Java 中条件判断开始和结束的大括号。

PL/SQL 中 LOOP、FOR、WHILE 三种循环,这里我们主要学习 LOOP 循环。

这里和分支控制一样,LOOP 完成后要有 END LOOP,也是相当于 Java 中循环开始和结束的大括号。

接着我们学习一个 SQL 编程中很重要的知识点「游标」,游标在其它数据库中也有支持。

游标:用于临时存储一个查询返回的多行数据,类似于 Java 中的容器(不知道 Java 中的容器,可以参考我之前的文章Java容器框架学习整理),Java 中的容器是用于装 Java 对象的,这里的游标是用于装数据库中表的记录。

游标的使用方式为:声明 -> 打开 -> 读取 ->关闭 。

aa7cb95ff663a7df48784b71890f5103.png

游标还有属于自己的属性:

4d720fe582738dc7f45a504dba641a13.png

我们来看一个游标的使用实例:

最后我们一起学习一下「存储过程」。

存储过程是 PL/SQL 将一个个 PL/SQL 的业务处理过程,存储起来进行复用,类似于 Java 中的方法。

存储过程的参数可以分为不带参数、带输入参数、带输入输出输出参数。

229944c6578f442f8a0e33aab28e8a68.png

下面我们来看一个带有输入输出参数的存储过程示例:

创建完存储过程,成功编译一次,我们就可以按照存储过程名称进行调用,调用存储过程时需要注意传入参数的顺序需要和定义时一样,存储过程可以有三种调用方式:

0c1be91949197af3eff4fb2ff49c9b9c.png

我们在 PL/SQL 中调用我们上面创建的存储过程:

除了存储过程,PL/SQL 还支持函数,存储过程和函数很相似。但是函数必须返回参数,不如存储过程灵活,所以这里就不介绍了,大家感兴趣可以自行去了解。


能看到这里的都是真爱了,长按二维码关注

一起在知识的海洋里狗刨,一起学习成长

5b8c8e717da0d7b117b367227bf41939.png

4734fb027425ae01a7a8bdd3006312ba.png


到此这篇sql for loop循环(sqlplus 循环)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • redis用什么连接(redis怎么连接mysql)2025-08-14 14:00:04
  • sql语句中foreach循环(sql语句的for循环)2025-08-14 14:00:04
  • 安装pymysql模块(pymysql模块下载)2025-08-14 14:00:04
  • sqlwhile循环(sqlserverwhile循环表)2025-08-14 14:00:04
  • 达梦数据库执行sql脚本(达梦数据库怎么执行脚本)2025-08-14 14:00:04
  • sql数据文件存放位置(sqlyog数据库文件存放在哪里)2025-08-14 14:00:04
  • pyspark读取mysql(pyspark读取mysql过大)2025-08-14 14:00:04
  • sql循环语句怎么写出来(sql 循环语句)2025-08-14 14:00:04
  • mysql 主键重置为0(mysql修改主键值)2025-08-14 14:00:04
  • sql文件如何打开数据库(怎么用sql打开sql文件)2025-08-14 14:00:04
  • 全屏图片