T-SQL、SQL Server和SQL之间有什么区别?

53
我了解足够的SQL技术以完成我的工作,但是在阅读不同的文章时,我发现T-SQL、SQL Server和SQL。它们都是相同的吗?它们之间的主要区别是什么?
我知道SQL是ANSI标准,那么另外两个是什么呢?

2
TSQL是由微软开发的一种SQL语言,用于其数据库产品MS SQL Server。除了基本的SQL语句外,TSQL还有自己的扩展(就像其他任何数据库供应商一样)。我不确定它是否完全支持ANSI SQL标准。 - shahkalpesh
3
没有一种数据库完全支持 ANSI SQL 标准。 - John Saunders
3
实际上,T-SQL/Transact-SQL是由Sybase为他们的数据库服务器开发的,随后被微软授权使用。 - marc_s
哪个 ANSI 标准??有很多.....而且你可以以不同程度支持它们......“标准”(复数)应该被禁止! - marc_s
5个回答

101

SQL是访问关系型数据库中数据的基本 ANSI 标准。当您看到“MSSQL”时,它指的是 Microsoft SQL Server,这是整个数据库架构而不是一种语言。T-SQL 是 Microsoft SQL Server 使用的专有形式的 SQL,它包含特殊函数,如 cast、convert、date() 等,这些函数不是 ANSI 标准的一部分。

您还会看到像 plSQL 这样的东西,它是 Oracle 版本的 SQL,还有其他版本(例如 mySQL 有自己的版本,Microsoft Access 使用 Jet SQL)。

需要注意的是,ANSI SQL 标准具有不同的版本(例如 92 或 99,代表发布年份),不同的数据库引擎将宣传自己是“大多符合 ANSI-92”或“完全符合 ANSI-99”等,并且任何异常通常都会有记录。

因此,虽然“SQL 就是 SQL”,但每个引擎都使用其自己的“风格”,在您深入学习之前确实需要对特定平台进行一些阅读。

另外需要注意的是,像 T-SQL 这样的 SQL 扩展通常被认为是完整的编程语言,包括循环、if/then、case 语句等。SQL 本身仅限于查询和更新数据,不被视为真正的编程语言。

维基百科在这里提供了一个概述:http://en.wikipedia.org/wiki/SQL


3
非常好的澄清说明。谢谢! - Matt P
2
PL/SQL(不是plSQL)是一种数据库内编程语言,而不是“SQL的版本”(甚至不是查询语言)。我想编辑这个答案,但无论如何问题都已经关闭了。 - William Robertson
那么,更像是 ANSI SQL 是基础,T-SQL、Oracle 的 SQL 等在 ANSI SQL 的基础上添加了功能?类似于 JS 和 jQuery、React 等吗? - Amateur_coder

15

这取决于这些术语在什么情况下使用。

在某些情况下,它们可能完全相同,或者在某些情况下略有不同的含义。

  • T-SQL - SQL 语言的方言,用于 Microsoft Sql Server。
  • MSSQL - Microsoft SQL Server 软件。
  • SQL - 结构化查询语言(Structured Query Language),根据上下文,它可能表示 SQL 语言本身,任何类型的 SQL 数据库或 SQL 数据库服务器。

8

T-SQL是Transact-SQL的简称,它是微软的SQL方言,而MSSQL通常指SQL Server引擎本身。


4
实际上,T-SQL/Transact-SQL是由赛伯数据库服务器开发的,后来被微软授权使用。 - marc_s
9
伊拉克曾经是奥斯曼帝国的一部分,然而我们在讨论最近的战争时并没有听到这一点,这总是让我很不舒服! - Ben M

7

1.SQL是一种编程语言,而T-SQL是SQL的扩展。

2.T-SQL是专有的,而SQL是开放格式的。

3.T-SQL包含过程性编程,局部变量等内容,而SQL没有。

4.T-SQL是图灵完备的,而SQL不是。

5.T-SQL对DELETE和UPDATE的实现与SQL不同。

6.如果使用Microsoft SQL服务器,最好使用T-SQL。


6
与奥斯曼帝国不同,Sybase仍然存在,并仍然使用Transact SQL。 Sybase(ASE)的实现与Microsoft的实现并不完全相同。
请参考Sybase TSQL指南

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接