Oracle文档中用到了两种表达语法的方法,语法图和BNF。
BNF
: Backus-Naur Form,中文是巴科斯范式:,它是由约翰·巴科斯(John Backus)和彼得·诺尔(Peter Naur)引入的用来描述计算机语言语法的符号集。
首先来看语法图。读语法图,要从左到右,顺着箭头读。
不同形状的含义:
- 长方形中的大写词语,命令。
- 椭圆形中的小写词语,参数。
- 圆形中,标点符号、操作符、分隔符、终止符。
如果图有几条路径,可以随便选择一条,每条都是正确的语法。
- 主路径(Main Path):箭头指向的一条直线。
- 必选关键词:可以是只有一个图形,说明必选这一个;也可以是垂直排列的几个图形,说明必选其一。
- 可选关键词:在主路径之外就是可选的。
- 语法循环(Sytax Loop):对一种语法循环使用。
- 标示符规则:标示符不能超过30字符,必须以字母开头。标示符不区分大小写,除非在双引号内。
每个语法图都有一个指向同义的BNF表达式的链接。
BNF表达式用到的符号含义:
- [],可选项
- {},必选其一
- |,分隔不同选项
- …,可重复语法
- 分隔符,不同之前四个其他分隔符要照其原样输入
- 粗体,粗体的是关键字,必须照其原样输入;非大写字符,是占位符,不需原样输入,得用其他值代替。
本文是SQL Language Reference的附录A [How to Read Syntax Diagrams] doc 的读书笔记,是直接从英文翻译过来的,可能只有我自己看的懂。但读完这一节后,读懂语法图对我来说再没有难度了。