Structured Query Language
SQL 是用于 关系型数据库 的声明式 查询语言。用户只需要声明需要什么,DBMS 负责尽可能高效地获取结果。
SQL 历史
SQL 在 1970 年代由 IBM 的 System R
项目研发,一开始叫 SEQUEL
(Structured English Query Language)。在 1980 年代改名为 SQL
(Structured Query Language)。
SQL 的理论依据是 关系代数。
SQL 基于袋子(bags,无序,可以重复)。
SQL 标准
SQL 仍在不断演化,每过几年都会更新新的功能。每个关系数据库实现者都一定程度实现 SQL 标准,但几乎都有自己的专有扩展。
一些主要 SQL 标准罗列如下:
- SQL-99: 正则;触发器
- SQL-03: XML;窗口函数;Sequences;
- SQL-08: 事务;Fancy sorting
- SQL-11: 临时表;Pipelined DML
- SQL-16: JSON;Polymorphic tables
SQL-92 是支持 SQL 的 数据库管理系统 需要支持的最小标准。
- CMU 15-445
SQL 分类
SQL 可以分为以下五类:[2]
CMU 15-445
The user only needs to specify the result that they want using a declarative language (i.e., SQL). The DBMS is responsible for determining the most efficient plan to produce that answer.[3]
CMU 15-445
SQL is based on bags(unordered, allows duplicates).[3:1]