PL/SQL

什么是PL/SQL

PL/SOL(Procedural Language/SQL,过程语言/SQL)是结合了Oracle过程语言和结构化查询语言(SQL)的一种扩展语言。使用PL/SQL可以编写具有很多高级功能的程序,虽然通过多个 SQl语句也能实现同样的功能,但是相比而言,PL/SQL具有更为明显的一些优点。
(1)PL/SOL具有编程语言的特点,它能把一组SQL语句放到一个模块中,使其更具模块化程序的特点。
(2)PL/SQL可以采用过程性语言控制程序的结构,也就是说,我们可以在PL/SQL中增加逻辑结构,如判断、循环等程序结构。
(3)同其他的编程语言一样,PL/SQL可以对程序中的错误进行自动处理.使程序能够在遇到错误时不会中断,即它的异常处理机制。
(4)PL/SQL程序块具有更好的可移植性,可以移植到另一个Oracle数据中。
(5)PL/SQL程序减少了网络的交互,有助于提高程序性能。

PL/SQL 体系结构

PL/SQL引擎用来编译和执行PL/SQL块或子程序,该引擎驻留在 Oracle 服务器中。PL/SQL引擎仅执行过程语句,而将 SQL语句发送给 Oracle 服务器上的SOL语句执行器,由 SQL语句执行器执行这些SQL语句。

PL/SQL块简介

PL/SQL是一种块结构的语言,它将一组语句放在一个块中。PL/SQL块将逻辑上相关的声明和语句组合在一起。匿名块是一个未在数据库中命名的PL/SQL块,在运行时被传递到PL/SQL引擎以便执行。在PL/SQL 块中可以使用 SELECT、INSERT、UPDATE、DELETE 等DML语句、事务控制语句及SQL函数等。PL/SQL块中不允许直接使用CREATE,DROP或ALTER等DOL语句,但可以通过动态SQL来执行它们。

运算符和表达式

  • 关系运算符
运算符意义
=等于
<>,!=,~=,^=不等于
<小于
>大于
<=小于或等于
>=大于或等于
  • 一般运算符
运算符意义
+加号
-减号
*乘号
/除号
:=赋值号
=>关系号
范围运算符
丨丨字符连接符
  • 逻辑运算符
运算符意义
IS NULL是空值
BETWEEN AND介于俩者之间
IN在一列值中间
AND逻辑与
OR逻辑或
NOT取反,如IS NOT NULL, NOT IN
  • PL/SQL 程序设计中的标识符定义与SQL的标识符的要求相同,要求限制 如下:
    标识符名不能超过30个字符
    第一个字符必须为字母
    不区分大小写
    不能用"-"(减号)
    不能是SQL保留字
  • 变量命名方法 在这里插入图片描述

PL/SQL数据类型

在这里插入图片描述

LOB数据类型

Oracle 提供了 LOB(Large Object) 类型,用于存储大的数据对象的类型。Oracle 目前主要支持BFILE、BLOB、CLOB 及NCLOB 类型。

  • BFILE (Movie)
    存放大的二进制数据对象,这些数据文件不放在数据库里,而是放在操作系统的某个目录里,数据库的表里只存放文件的目录。

  • BLOB(Photo)
    存储大的二进制数据类型。变量存储大的二进制对象的位置。大二进制对象的大小<=4GB。

CLOB(Book)
存储大的字符数据类型。每个变量存储大字符对象的位置,该位置指到大字符数据块。大字符对象的大小<=4GB。

NCLOB

存储大的NCHAR字符数据类型。每个变量存储大字符对象的位置,该位置指到大字符数据块。大字符对象的大小<=4GB。

数据类型

%TYPE特性的优点在于:
1.所引用的数据库列的数据类型可以不必知道;
2.所引用的数据库列的数据类型可以实时改变,容易保持一致,也不用修改PL/SQL程序。
%ROWTYPE特性的优点在于:
所引用的数据库中列的个数和数据类型可以不必知道;
所引用的数据库中列的个数和数据类型可以实时改变,容易保持一致,也不用修改PL/SQL程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值