什么是 PL/SQL?全称、开发者和 PL/SQL 架构
什么是 PL/SQL?
Oracle PL/SQL 是 SQL 语言的扩展,它将 SQL 的数据处理能力与过程语言的处理能力相结合,以创建功能强大的 SQL 查询。PL/SQL 通过增强数据库的安全性、可移植性和健壮性,确保 SQL 语句的无缝处理。
PL/SQL 意味着通过 SQL 指示编译器“做什么”,并通过其过程方式指示“如何做”。与其他数据库语言类似,它通过使用循环、条件和面向对象的概念,为程序员提供了更多的控制。PL/SQL 的全称是“用于 SQL 的过程语言扩展”。
PL/SQL 全称
PL/SQL 代表“用于结构化查询语言的过程语言扩展”。PL/SQL 是 Oracle Corporation 为 SQL 和 Oracle 关系数据库提供的过程语言扩展。它是一种高性能、高度集成的数据库语言。
什么是 PL/SQL Developer?
PL/SQL Developer 是 Oracle 提供的一个免费集成开发环境,用于在 Oracle 数据库环境中开发软件并轻松执行各种数据库任务。PL/SQL Developer IDE 提供 GUI 和插件供用户使用,以帮助最终用户节省数据库任务的时间。
PL/SQL 架构
下面的 PL/SQL 示例是 PL/SQL 架构的图示。
PL/SQL 架构主要包含以下三个组件
- PL/SQL 块
- PL/SQL 引擎
- 数据库服务器
PL/SQL 块
- 这是包含实际 PL/SQL 代码的组件。
- 它包含不同的部分,用于逻辑上划分代码(声明部分用于声明,执行部分用于处理语句,异常处理部分用于处理错误)
- 它还包含用于与数据库服务器交互的 SQL 语句。
- 所有 PL/SQL 单元都被视为 PL/SQL 块,这是架构的起始阶段,作为主要输入。
以下是不同类型的 PL/SQL 单元。
- 匿名块
- 函数
- 库
- 过程
- 包体
- 包规范
- 触发器
- 类型
- 类型体
PL/SQL 引擎
- PL/SQL 引擎是实际处理代码的组件。
- PL/SQL 引擎会将输入(如下图所示)中的 PL/SQL 单元和 SQL 部分分开。
- 分离出的 PL/SQL 单元将由 PL/SQL 引擎本身处理。
- SQL 部分将被发送到数据库服务器,在那里与数据库进行实际交互。
- 它可以安装在数据库服务器和应用程序服务器中。
数据库服务器
- 这是 PL/SQL 单元中最重要的组件,用于存储数据。
- PL/SQL 引擎使用 PL/SQL 单元中的 SQL 与数据库服务器进行交互。
- 它包含 SQL 执行器,负责解析和执行输入的 SQL 语句。
PL/SQL 的特性与优势
- 性能更好,因为 SQL 是批量执行的,而不是单个语句执行
- 高生产力
- 与 SQL 紧密集成
- 完全可移植
- 严格的安全性
- 支持面向对象编程概念。
- 可伸缩性和可管理性
- 支持 Web 应用程序开发
- 支持服务器页面开发
PL/SQL 的缺点
- PL/SQL 中的存储过程占用大量内存
- 存储过程中缺乏功能调试
- 底层数据库的任何更改都需要更改表示层
- 不完全分离后端开发人员和前端开发人员的角色
- HTML 开发与 PL/SQL 开发难以分离
SQL 和 PL/SQL 的区别
以下是 SQL 和 PL/SQL 之间的一些重要区别
SQL | PL/SQL |
---|---|
SQL 是用于执行 DML 和 DDL 操作的单个查询。 | PL/SQL 是一个代码块,用于编写整个程序块/过程/函数等。 |
它是声明性的,定义了“需要做什么”,而不是“如何做”。 | PL/SQL 是过程性的,定义了“如何做”。 |
作为单个语句执行。 | 作为一个整体块执行。 |
主要用于数据操作。 | 主要用于创建应用程序。 |
与数据库服务器交互。 | 不与数据库服务器交互。 |
不能包含 PL/SQL 代码。 | 它是 SQL 的扩展,因此可以包含 SQL。 |
摘要
- PL-SQL 由 Oracle 开发。
- PL SQL 的全称是“用于结构化查询语言的过程语言扩展”。
- PL-SQL 与 Oracle 数据库服务器配合使用效果最佳。它是一种高性能、高度集成的数据库语言。
- PL/SQL 支持面向对象概念,如数据封装、函数重载和信息隐藏。