跳转到内容

SQL 方言参考/简介

来自维基教科书,开放书籍,开放世界

SQL(结构化查询语言)是最古老的编程语言之一,其最早版本可追溯到 1969 年。不幸的是,尽管 SQL 自 1986 年以来一直是标准化的,但仍存在许多不同的实现。它们或多或少地相互偏离,使得开发与各种 SQL 服务器一起使用的应用程序变得特别困难。

这本维基教科书是针对几种 SQL 语言方言的简明比较参考。它列出了几种流行的 SQL 服务器实现中解决的特定常见任务和问题。在可能的情况下,它试图强调通用的解决方案。如果无法实现,它会尝试列出最佳实践。

本书的两个主要目标是 **简洁性** 和 **完整性**。明显的信息,例如特定函数或查询在所有实现中执行相同操作,不会被列出。但是,当某些实现具有重要的(即使是轻微的)偏差,这些偏差可能成为开发人员的主要陷阱时,此类信息绝对应该被列出。

谁应该使用这本书

[编辑 | 编辑源代码]

目标受众是

  • 了解一种 SQL 方言的开发人员,希望立即为其他 SQL 实现开发(这是一种简单的方法)。
  • 将已完成的项目从一个 SQL 实现移植到另一个 SQL 实现或多个 SQL 实现的开发人员。
  • 希望他们的应用程序能够在多个 SQL 服务器上移植的开发人员(对于希望确保其应用程序可以在各种平台上使用的开源项目开发人员来说,这尤其有用)。
  • 必须支持各种 SQL 服务器并且不想为每个服务器记住所有可能的查询和细微差别的系统管理员。
  • 希望评估最适合其项目的 SQL 服务器,并在给定一系列需求的情况下,项目经理或首席开发人员。

谁不应该使用这本书

[编辑 | 编辑源代码]

本书不是一个通用的学习课程,也不是一份全面的手册 - 它是一个快速而简明的参考,假设读者了解 SQL 的基本概念以及确切的需要。本书讨论了相当高级的主题以及 SQL 实现中细微但重要的差异,初学者/学习者通常不必担心。

技术说明

[编辑 | 编辑源代码]

只要有可能,本书都会尝试引用网络发布的文档,以便读者始终可以检查特定的细节,因此页面通常包含大量外部文档链接。

由于实现的全名很长,每次都完整拼写起来很不方便,因此我们将使用常见的缩写(以 **粗体** 显示)来区分 SQL 方言。此外,我们只提供指向相应维基百科文章的链接,而不是在每次都提供。

本书中的许多页面都包含可能很长的比较表。建议安装比较表扩展以舒适地查看这些表。

本书涵盖的 SQL 实现

[编辑 | 编辑源代码]

本书涵盖了多种 SQL 方言。请注意,在所有特定实现的情况下,只描述了最新的稳定版本。

  • 标准。SQL 标准有多个版本(SQL-86、SQL-89、SQL-92、SQL:1999、SQL:2003、SQL:2011)。本书将列出在所有实现中执行某项工作的常见做法,尤其强调特定解决方案适用的 SQL 版本(即,如果某些功能从版本 X 开始成为标准,则会说明该解决方案从版本 X 开始适用)。
  • DB2(IBM DB2)。
  • Firebird(Firebird 2.5)。一个从 InterBase 源代码分支出来的开源 RDBMS,这些代码于 2000 年 7 月 25 日由 Borland 发布。Firebird 与 Interbase 不同,它试图尽可能地接近 SQL 标准
  • MonetDB 一个开源列存储。(MonetDB。V11)
  • MySQL(MySQL 5.0)
  • MSSQL(Microsoft SQL Server 2008)。由微软生产的专有 RDBMS,针对企业市场。原始代码库源自 Sybase SQL Server,但大部分已被重写。文档以结构良好的形式在 MSDN 中提供,非常便于参考。
  • Oracle(Oracle Database 11g2)
  • PostgreSQL(PostgreSQL 13)
  • SQLite.
  • Virtuoso(在 Virtuoso Universal Server 上运行的 OpenLink Virtuoso)。
  • 代码检查器
华夏公益教科书