1970 年 6 月,IBM 公司 San Jose,California 实验室的 E. F. Codd 博士在 ACM(Association for Computing Machinery)期刊上发表了论文《大型共享数据银行的关系模型》(A Relational Model of Data for Large Shared Data Banks)并首次提出了关系模型的概念。

1974 年,同实验室的 D.D.Chamberlin 和 R.F.Boyce 在 IBM 公司研制的关系数据库系统 SystemR 中,研制出了一套规范语言 SEQUEL(Structured English QUEry Language),并在 1976 年 11 月的 IBM Journal of R&D 上公布了新版本的 SQL(称为 SEQUEL/2,1980年改名为 SQL)。

1979 年,Oracle 公司首先提供商用的 SQL,同时 IBM 公司在 DB2 和 SQL/DS 数据库系统中也实现了 SQL。

时至今日,SQL 已经成为了关系数据库管理系统(Relational Database Management System:RDBMS)的标准语言。

1986 年 10 月,美国国家标准协会 ANSI 采用 SQL 作为关系数据库管理系统的标准语言,并命名为 ANSI X3. 135-1986,后来国际标准化组织(ISO)也采纳 SQL 作为国际标准。

1989 年,ANSI 采纳并使用了在 ANSI X3.135-1989 报告中定义的 SQL 标准语言,并称之为 ANSI SQL 89,该标准替代了之前的 ANSI X3.135-1986 版本。

下面是 SQL 发展的简要历史:

  • 1986年,ANSI X3.135-1986,ISO/IEC 9075:1986,SQL-86。

  • 1999年,ISO/IEC 9075:1999,SQL:1999(SQL3)。

  • 2003年,ISO/IEC 9075:2003,SQL:2003。

  • 2008年,ISO/IEC 9075:2008,SQL:2008。

  • 2011年,ISO/IEC 9075:2011,SQL:2011。

现在,绝大多数被提及的 SQL 标准,其中涉及的内容其实都是 SQL 92 里最基本、最核心的一部分。OceanBase 目前也遵循的是 SQL 92 标准。

SQL 是用来访问关系数据库,如 OceanBase、Oracle 和 MySQL 的接口,所有的 SQL 语句都是对数据库的指令。

通常,SQL 可以分为 5 个部分:

  1. 数据操作语言 DML(Data Manipulation Language):用以改变数据库中存储的数据内容,即增加、修改和删除数据。

  2. 数据控制语句 DCL(Data Control Language):对数据访问权限控制的命令。可以控制特定账号对特定数据库资源的访问权限。

  3. 数据定义语言 DDL(Data Definition Language):对数据库中资源进行定义、修改和删除,如新建表和删除表等。

SQL 是访问数据库的标准语言,所有的主要关系数据库都支持 SQL,因此所有用 SQL 编写的程序都是可移植的。通常进行少量的修改就可以从一个关系数据库移植到另一个关系数据库上。

  • 粗体 表示与操作或以文本或词汇表定义的术语相关联的图形用户界面元素。
  • 保留字、关键字、标识符和参数中的大小写不敏感。为方便阅读与识别,这些字会以大写形式书写。

  • 在不同的编程环境中,SQL 语句终止方式不同。本文档中以分号 “;” 来标识一个 SQL 的结尾。

  • 表示文档中引用的代码。

  • 本文档中可选参数文本用方括号括起,如 [-n, -quiet]。