SQL,PL-SQL和T-SQL有什么区别?

Goo*_*ber 346 sql t-sql plsql

SQL,PL-SQL和T-SQL有什么区别?

任何人都可以解释这三者之间的差异,并提供相关使用的方案吗?

Qua*_*noi 364

  • SQL 是一种对集合进行操作的查询语言.

    它或多或少是标准化的,几乎所有关系数据库管理系统都使用它:SQL Server,Oracle,MySQL,PostgreSQL,DB2,Informix等.

  • PL/SQL 是Oracle使用的专有过程语言

  • PL/pgSQL 是PostgreSQL使用的过程语言

  • TSQL 是Microsoft在SQL Server中使用的专有过程语言.

过程语言旨在扩展SQL的能力,同时能够与SQL很好地集成.添加了一些功能,如局部变量和字符串/数据处理.这些功能使语言图灵完整.

它们还用于编写存储过程:驻留在服务器上的代码片段,用于管理使用基于集合的操作很难或无法管理的复杂业务规则.

  • Sybase也使用TSQL; 至少在Oracle中,PL/SQL程序可以做的不仅仅是管理"业务规则"; PL/SQL程序可以访问网站,发送电子邮件等. (13认同)
  • PL/SQL不仅存在于数据库中,例如Oracle Forms包含PL/SQL的客户端实现. (3认同)
  • 请注意,每个数据库都有自己的SQL实现(T-SQL和PL/SQL是两种常见的实现),当使用多个后端时,经常使用ANSII标准SQL,但并非所有数据库都使用所有ANSII SQL功能.并且SQl的数据库特定实现往往是最适合该数据库的实现 - 毕竟他们必须给你一个使用他们数据库的理由,对吧? (2认同)
  • 更正:SQL是一种可在表本身上运行的语言,SQL本身为其提供了定义。SQL标准避免使用“集合”和“关系”及其派生词。未设置SQL表。 (2认同)

Aru*_*K V 104

SQL

SQL用于与数据库通信,它是关系数据库管理系统的标准语言.

详细信息结构化查询语言是一种专用编程语言,用于管理关系数据库管理系统(RDBMS)中保存的数据,或用于关系数据流管理系统(RDSMS)中的流处理.

SQL最初基于关系代数和元组关系演算,由数据定义语言和数据操作语言组成.SQL的范围包括数据插入,查询,更新和删除,模式创建和修改以及数据访问控制.虽然SQL通常被描述为,并且在很大程度上是一种声明性语言(4GL),但它也包括过程元素.

PL/SQL

PL/SQL是SQL的组合以及编程语言的过程特性.它由Oracle Corporation开发

PL/SQL的特色

  • 完全可移植的高性能事务处理语言.
  • 提供内置的解释和OS独立编程环境.
  • 直接从命令行SQL*Plus接口调用.
  • 也可以从外部编程语言调用到数据库进行直接调用.
  • 一般语法基于ADA和Pascal编程语言.
  • 除了Oracle之外,它还可以在TimesTen内存数据库和IBM DB2中使用.

T-SQL

Transaction-SQL的缩写,是一种扩展形式的SQL,它将声明的变量,事务控制,错误和异常处理以及行处理添加到SQL

结构化查询语言或SQL是一种专注于管理关系数据库的编程语言.SQL有其自身的局限性,这促使软件巨头微软利用自己的扩展构建在SQL之上,以增强SQL的功能.Microsoft向SQL添加了代码并将其称为Transact-SQL或T-SQL.请记住,T-SQL是专有的并且在Microsoft的控制之下,而SQL虽然是由IBM开发的,但已经是一种开放格式.

T-SQL添加了SQL中不可用的许多功能.

这包括过程编程元素和局部变量,以便更灵活地控制应用程序的流动方式.T-SQL还增加了许多功能,使其功能更强大; 用于数学运算,字符串运算,日期和时间处理等的函数.这些新增功能使T-SQL符合图灵完整性测试,这是一种确定计算语言普遍性的测试.SQL不是图灵完整的,它的功能范围非常有限.

T-SQL和SQL之间的另一个重要区别是对SQL中已有的DELETE和UPDATE命令所做的更改.使用T-SQL,DELETE和UPDATE命令都允许包含允许使用JOIN的FROM子句.这简化了对记录的过滤,以便轻松挑选出符合某个标准的条目,这与SQL相比可能稍微复杂一些.

在T-SQL和SQL之间进行选择完全取决于用户.当您处理Microsoft SQL Server安装时,使用T-SQL仍然更好.这是因为T-SQL也来自微软,并且使用这两者最大限度地兼容.具有多个后端的人首选SQL.

参考文献 ,Wikipedea,教程要点:www.differencebetween.com

  • IMO目前是最好的答案(但是,manoj的回答和博客文章也值得一读). (4认同)

die*_*ikh 43

  • SQL用于与数据库通信的语言.它允许您选择数据,变异和创建数据库对象(如表,视图等),更改数据库设置.
  • PL-SQL 一种过程式编程语言(带有嵌入式SQL)
  • T-SQL SQL Server使用的SQL(过程)扩展


小智 30

1. SQL或结构化查询语言由IBM为其产品"System R"开发.

后来,ANSI将其作为所有查询语言所基于的标准,并将其扩展为创建自己的数据库查询语言套件.第一个标准是SQL-86,最新的是SQL:2011

2. T-SQL或Transact-SQL由Sybase开发,后来由Microsoft SQL Server 共同拥有.

3. PL/SQL或过程语言/ SQL是Oracle数据库,当时称为"关系软件".

我在博客文章中记录了这一点.

  • 这个答案比批准的答案更彻底,博客文章是一个很好的阅读. (2认同)

Jay*_*res 7

结构化查询语言 - SQL:是世界上几乎所有SGBD供应商都使用的ANSI标准.基本上,SQL是一种用于定义和操作数据的语言[DDL和DML].

PL/SQL是Oracle Universe创建的一种语言.PL/SQL结合了编程程序指令,允许创建直接在数据库场景上运行的程序.

T-SQL是Microsoft产品对齐SQL模式,具有一些特殊性.所以,随意测试你的极限.