Search CTRL + K

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-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]


  1. https://youtu.be/II5qNuxfSoo?t=524 ↩︎

  2. https://www.geeksforgeeks.org/sql-ddl-dql-dml-dcl-tcl-commands/ ↩︎

  3. https://15445.courses.cs.cmu.edu/fall2023/notes/02-modernsql.pdf ↩︎ ↩︎