什么是PL/SQL?
PL/SQL是Oracle中使用的结构化查询语言(SQL)的扩展。 与SQL不同,PL/SQL允许程序员以过程编写代码,即:Procedural Language extensions to SQL。它结合了SQL的数据处理能力和过程语言的处理能力,以创建超级强大的SQL查询。
PL/SQL意味着通过SQL指导编译器“做什么”和通过其程序方式“如何做”。
与其他数据库语言类似,它通过使用循环,条件和面向对象的概念为程序员提供更多控制。
PL/SQL的架构
图片.pngPL/SQL block
- 具有实际PL/SQL代码的组件。
- 这包括用于逻辑划分代码的不同部分(用于声明目的的声明部分,用于处理语句的执行部分,用于处理错误的异常处理部分)
- 它还包含用于与数据库服务器交互的SQL指令。
- 所有PL/SQL单元都被视为PL/SQL块,这是作为主要输入的体系结构的起始阶段。
- 以下是不同类型的PL/SQL单元。
- 匿名Block
- 函数
- 库
- 过程
- Package体
- Package规范
- 触发器
- 类型
- 类型Body
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紧密集成
- 完全可移植
- 安全
- 支持面向对象的编程概念。
SQL和PL/SQL之间的区别
SQL | PL/SQL |
---|---|
用于执行DML和DDL操作的单个查询。 | 编写整个程序块/过程/函数等的代码块。 |
声明性的,它定义了需要完成的任务,而不是需要如何完成的事情。 | PL/SQL是程序,用于定义需要完成的事情。 |
作为单个语句执行。 | 执行整个块。 |
主要用于操纵数据。 | 主要用于创建应用程序。 |
与数据库服务器的交互。 | 没有与数据库服务器的交互。 |
不能包含PL/SQL代码。 | 它是SQL的扩展,因此它可以在其中包含SQL。 |
参考资料
- python测试开发项目实战-目录
- python工具书籍下载-持续更新
- python 3.7极速入门教程 - 目录
- 讨论qq群630011153 144081101
- 原文地址
- 本文涉及的python测试开发库 谢谢点赞!
- 本文相关海量书籍下载
T-SQL和PL-SQL之间的区别
T-SQL | PL/SQL |
---|---|
T-SQL是Microsoft的产品。 | PL-SQL由Oracle开发。 |
Transact Structure Query语言。 | PL SQL的完整形式是程序语言结构查询语言。 |
T-SQL为程序员提供了高度的控制。 | 自然的编程语言,可以轻松地与SQL混合 |
T-SQL在Microsoft SQL服务器上表现最佳 | PL-SQL在Oracle数据库服务器上表现最佳。 |
理解起来简单易行 | PL-SQL很难理解。 |
T-SQL允许使用BULK INSERT语句将多行插入表中。 | PL/SQL支持oops概念,如数据封装,函数重载和信息隐藏。 |
T-SQL中使用的SELECT INTO语句 | 使用INSERT INTO语句 |
NOT EXISTS子句中与SELECT语句一起使用。 | 有一个MINUS运算符,可以与SELECT语句一起使用 |
SQL和T-SQL之间的区别
SQL | T-SQL |
---|---|
SQL是一种编程语言,专注于管理关系数据库。 | T-SQL是SQL Server使用的过程扩展。 |
用于控制和操纵存储有关产品,客户等的大量信息的数据。 | T-SQL具有SQL中不可用的一些功能。与过程编程元素和局部变量一样,可以更灵活地控制应用程序的流动方式。 |
SQL查询单独提交给数据库服务器。 | 所有命令一次性提交给服务器 |
语法为许多命令形式化; 其中一些是SELECT,INSERT,UPDATE,DELETE,CREATE和DROP。 | 它还包括特殊函数,如转换后的date()和其他一些不属于常规SQL的函数。 |
网友评论