本章提供了有关如何使用 SQL 语句、 SPL 语句和语法段的信息。
本章组织为以下几节。
节 |
范围 |
如何输入 SQL 语句 |
如何使用语法图和描述以正确输入 SQL 语句 |
如何输入 SQL 注释 |
如何在 SQL 语句中输入注释 |
SQL 语句的类别 |
SQL 语句, 按功能类别列出 |
ANSI/ISO 的一致性和扩展 |
SQL 语句, 按与 ANSI/ISO 的一致性程度列 出 |
1.1 如何输入 SQL 语句
SQL 语言是自由格式的(如同 C 或 PASCAL), 通常忽略空格字符(例如 TAB 、LINEFEED 和各语句或语句元素之间额外的空格)。然而,必须至少有一个空白字符或其它定界符将关键字和 标识与其它语法标记分开。
除了在带引号字符串中以外, SQL 是不区分大小写的;另见 标识符。在符合 ANSI 的数据库中, 如果没有用双引号 ( " ) 定界对象的 owner ,而且当初始化数据库服务器时没有将 ANSIOWNER 环境变量设置为 1 ,则数据库服务器会以大写字母存储 owner 名称。
在本手册中提供了语句描述以帮助您成功输入 SQL 语句。语句描述包括以下信息:
• 用来说明语句作用的简短介绍
• 用来显示如何正确输入语句的语法图
• 用来说明语法图中的每个输入参数的语法表
• 用法规则, 通常带有说明这些规则的示例
对于某些语句, 只为单独的子句提供了这些信息。
大多数语句描述的最后都带有本手册和其它手册中的相关信息的引用。
SQL 语句 提供了每个 SQL 语句的描述,是以字母顺序排列的。 SPL 语句 使用相同格式描述了 每个 SPL 语句。
输入 SQL 语句的主要帮助包括:
• 语法图和语法表的组合
• 出现在用法规则中的语法示例
• 对相关信息的引用
使用语法图和语法表
在您尝试使用本章中的语法图之前, 先阅读介绍中的语法图一节会有所帮助。本节是理解语法图的 关键, 并说明了可出现在语法图中的元素和这些元素互连的路径。本节还包括说明典型语法图元素 的示例。示例图后面的叙述显示了如何阅读该图以便成功输入语句。
语法图可以参考其他的语法部分或可以指定不同的限制。如果您正在使用应用程序接口(例如: ESQL/C),那么只有客户端应用和数据库服务器都支持的 SQL 语法规则是有效的。
当语法图包括输入规范(如标识、表达式、文件名、主机变量或其它项)时,语法图后跟着一个 表,该表描述如何输入该项而不生成错误。每个语法表包含四列:
• Element 列列出了语法图中的每个变量项。
• Description 列简述了该项并标识缺省值(如果该项有缺省值的话) 。
• Restrictions 列总结了该项的限制,例如值的可接受范围。(对于某些语法图,无法概括总 结的限制显示在 Usage 注解中而不是在此列中。)
• Syntax 列指向给出该项的详细语法的 SQL 段。对于某些项(如主变量名称、路径名或文 字字符), 未提供页码索引。
这些图表通常提供给定的 SQL 语句中有效内容的直观注解,但对于某些语句,语法元素之间的相 关性或限制仅在用法部分中的文本中作出标识。
使用示例
要理解某个语句的主要语法图和子图,请研究在每个语句的用法规则中显示的语法示例。这些示例 有两个作用:
• 显示如何使用语句或子句完成特定任务
• 显示如何以具体的方法使用语句或其子句的语法
提示: 理解语法图的一个有效方法是,查找语法示例并将其与语法图中的关键字和参数作比较。
通过将示例的具体元素映射到语法图的抽象元素, 可以有效地理解和使用语法图。 对于在本手册示例中使用的约定的说明, 请参阅介绍中的语法图的章节。
这些代码示例是用以说明有效语法的程序分段,而不是完整的 SQL 程序。在一些示例代码中, 省 略号( . . . )表示剩下的代码已省略。但为了节省空间, 在程序分段的开头和结尾不显示省略号。
使用相关信息
为了帮助理解 SQL 语句描述中的概念和项, 请查看每个语句结尾处的“相关信息”部分。
本部分指向本手册和其它手册中的相关信息, 以帮助您理解讨论中的语句。本部分提供以下某些或 全部信息。
• 相关语句的名称,这些相关语句可能包含词语中主题的更完整讨论
• 提供此语句中主题的展开讨论的其它手册的标题
提示: 如果您对 SQL 没有广泛的知识和经验, GBase 8s SQL 教程指南会给予您所需的基本 SQL
知识, 供您理解并使用本手册中的语句描述。
1.2 如何输入 SQL 注释
您可以添加注释以阐明特定 SQL 语句的作用和影响。您还可以在程序开发期间使用注释符号以禁 用个别语句,而无需从源代码中删除它们。
您的注释可帮助您或其他人理解程序、 SPL 例程或命令文件中的语句角色。本手册中的代码示例有 时包括阐明代码中的 SQL 语句角色的注释, 但如果在写程序时经常使用注释,那么您自己的 SQL 程序将更容易阅读和维护。
下表显示了可在代码中输入的 SQL 注释指示符。这里列中的 Y 表示您可以将此符号与列标题中 标识的产品或数据库类型一起使用。列中的 N 表示不能将此符号与指出的产品或指出的 ANSI 一 致性状态的数据库一起使用。
数据库服务器忽略注释中的字符。
优化程序伪指令 这一部分描述了上下文, 在该上下文中注释内的信息可以影响 GBase 8s 的查询计 划。
如果您使用的产品支持所有这些注释符号,则您选择的注释符号取决于对 ANSI/ISO 一致性的需 求:
• 双连字符( -- )符合 SQL 的 ANSI/ISO 标准。
• 花括号( { } )是 ANSI/ISO 标准 的 GBase 8s 扩展。
• C 语言样式的斜杠和星号( /* . . . */ )符合 SQL-99 标准。
只要符合 ANSI/ISO 一致性,您对注释符号的选择纯属个人偏好。
在 DB-Access 中, 当您使用 SQL 编辑器输入 SQL 语句和当您使用 SQL 编辑器或系统编辑器创 建 SQL 命令文件时,可以使用这些注释符号中的任何符号。
SQL 命令文件是包含一条或多条 SQL 语句的操作系统文件。命令文件也称为命令脚本。关于命令 文件的更多信息,请参阅 GBase 8s SQL 教程指南 中命令脚本的讨论。关于如何在 DB-Access 中 使用 SQL 编辑器或系统编辑器创建和修改命令文件的信息, 请参阅 GBase 8s DB-Access 用户指 南 。
您可以在 SPL 例程的任意一行中使用任意一种注释符号。请参阅 GBase 8s SQL 教程指南 中关于 如何注释和记录 SPL 例程的讨论。
在 GBase 8s ESQL/C 中, 以连字符(--)开始的注释可以延伸到同一行的末尾。关于 GBase 8s ESQL/C 程序中特定于语言的注释符号的信息,请参阅 GBase 8s