SQL 手册

数据库应用程序的实际语言是 SQL。

它经过多个标准化阶段演变为目前称为 SQL:2016 的版本。就标准化委员会的观点而言,SQL 标准提供了一个理想的语言框架。然而,任何现有的(商业)实现都很难满足它。这主要是由于软件遗留问题、客户群的向后兼容性要求以及新功能的引入。参见例如关于 SQL 标准的维基百科在线文章和主流系统的 SQL 特性概述。

2002 年,MonetDB 的 SQL 前端的第一个版本出现了。这种较晚的发展使得立即从 SQL’99 定义开始成为可能。 SQL’03 规范一经推出,其内容就被作为参考框架。 SQL 开发策略是由用户群的即时需求驱动的,因此不常用的功能最终会在开发堆栈中处于低位。超出标准的功能在其描述中被标记为非标准 SQL。

该架构基于编译器,它将 SQL 语句转换为 MAL(MonetDB 汇编语言)语句。在这个过程中,执行特定于关系代数的常见优化启发式。 SQL 与编程语言有绑定:C(ODBC、Mapi、MonetDB/e)、Java (JDBC)、Python、PHP、Ruby on Rails,可无缝集成到现有的应用程序开发环境中。

本手册的其余部分提供了 SQL 语言功能的概要。它提供了有关当前实现范围的快速介绍。假定精通 SQL 的基本使用。如果您是这个世界的新手,那么请拿起任何介绍书籍并仔细研究,例如J. 梅尔顿和 A.R. Simon,SQL:1999 了解关系语言组件,ISBN 1558604561。

识别的语言特征以简化的 BNF 表示法表示。所有保留字都用大写字母表示。

可选结构用方括号 (‘[’,’]’) 括起来,替代选项用竖线 (‘ ’) 分隔,最多可以选择一个。一组选项用大括号 ‘{‘,’}’ 括起来,必须选择一个。语言结构的重复由列表结构描述,例如A ‘,’ … 表示由逗号分隔的至少一个 A 的序列。

标识符是可选的,带有语义标签,例如authid 表示授权用户的名称。

参考资料

https://www.monetdb.org/documentation-Jan2022/user-guide/sql-manual/