SQL语法参考指南
1. 简化的BNF表示法
ANSI/ISO SQL标准使用形式化的Backus Naur Form(BNF)表示法来规定SQL语言的语法。然而,该标准存在一些问题,导致其难以阅读和理解。首先,它采用自底向上而非自顶向下的方式规定语言,使得难以把握SQL语句的整体框架;其次,使用了一些不常见的术语;最后,标准中的BNF层次过深,掩盖了SQL语言相对简单的结构。
为了解决这些问题,这里提供了一个完整且简化的“标准”SQL的BNF表示法,它通常适用于大多数DBMS供应商的产品。具体特点如下:
- 描述的语言通常符合SQL标准的入门级要求,以及主要DBMS产品中常见的中级和高级特性。
- 省略了模块语言,因为在几乎所有SQL实现中,它都被嵌入式SQL或SQL API所取代。
- 语言组件使用DBMS供应商文档中常用的通用名称,而非标准中的技术名称。
BNF表示法遵循以下约定:
- SQL关键字使用全大写等宽字符表示。
- 语法元素用斜体表示。
- 符号element-list表示一个元素或由逗号分隔的元素列表。
- 竖线(|)表示在两个或多个可选语法元素中进行选择。
- 方括号([ ])表示其中的语法元素是可选的。
- 花括号({ })表示在其中的必需语法元素中进行选择。
2. 数据定义语句
数据定义语句用于定义数据库的结构,包括表、视图以及DBMS特定的“对象”。以下是一些常见的数据定义语句: