SQL中的命名约定
命名规则取决于名称所指定的对象类型。
许多数据库对象都有模式限定名称。 模式限定名称可以由单个 SQL 标识符(在这种情况下, 模式名称是隐含的)或模式名称后跟句点和 SQL 标识符组成。 有关SQL标识符规则的更多信息,请参阅 SQL中的标识符。
- 加速器名称
- 一个仅用于加速器的表格名称。 加速器名称由1至8个字符或数字组成,且必须为大写。 该名称在 Db2 子系统或数据共享组中必须是唯一的。
- 别名
一个有资格或无资格的名称,用于指代别名。 一个完全合格的别名由三个部分组成。 第一部分是数据库管理系统的名称,用于定义别名。 第二部分是模式名称。 第三部分是SQL标识符。 必须用句点分隔各个部分。当前服务器所在地的名称隐含地限定了一个由两部分组成的序列。 第一部分是模式名称。 第二部分是SQL标识符。 两部分之间必须有一个间隔。
单部分或无限制的别名是带有两个隐式限定符的 SQL 标识符。 第一个隐含限定符是当前服务器的位置名称。 第二个是模式名称,由 “非限定别名”、“索引”、“JAR文件”、“掩码”、“权限”、“序列”、“表”、“触发器”和“视图名称” 中指定的规则确定。
更多信息,请参阅别名。

- 数组类型名称
- 指定数组类型的限定或非限定名称。
合格的数组类型名称由两部分组成。 第一部分是数组类型的模式名称。 第二部分是SQL标识符。 必须用句点分隔各个部分。
无限制的数组类型名称是带有隐式限定符的SQL标识符。 隐式限定符是模式名称,由数组类型出现的上下文决定,如非限定对象名称解析中的规则所述。
- 授权名称
- 一个SQL标识符,用于指定一组权限。 它也可以指定一个用户、一组用户或一个角色。 对于用户或用户组, Db2 不控制此属性。 对于某个角色, Db2 确实控制着这个属性。 请参阅授权 ID、角色和授权名称以了解授权名称和授权 ID 之间的区别。
- aux-table-name
- 一个指定辅助表的合格或不合格的名称。 名称规则与表名规则相同。 见表名。
- bpname
- 缓冲池的名称。 下表列出了不同缓冲池大小的名称。
- 4KB
- BP0, BP1, BP2, …, BP49
- 8KB
- BP8K0, BP8K1, BP8K2, …, BP8K9
- 16KB
- BP16K0, BP16K1, BP16K2, …, BP16K9
- 32KB
- BP32K, BP32K1, BP32K2, …, BP32K9
- built-in-type
- 一个标识 IBM® 提供的数据类型的合格或不合格名称。 一个合格的名称是SYSIBM,后跟一个句点和内置数据类型的名称。 一个非限定名称有一个隐含限定符,即模式名称,它由非限定对象名称解析中的规则确定。
- 目录名称
一个SQL标识符,用于指定集成目录设施(ICF)目录。 标识符必须以字母开头,且不得包含特殊字符或各国语言的字母扩展字符(美国为$、#和@)。 应避免使用这三个代码点( X'5B',、 X'7B', 和 X'7C' ),因为它们根据CCSID的不同而代表不同的字符。
- 克隆表名
- 一个合格或不合格的名称,用于指定克隆表的名称。 请参阅表名定义,了解有关表名限定条件的更多信息。
- 收藏-ID
- 一个SQL标识符,用于标识软件包集合,例如集合ID作为软件包ID的限定符。
- column-name
- 指定表格或视图列的限定或非限定名称。
合格的列名由限定符、句点和SQL标识符组成。 限定词可以是表名、视图名、同义词、别名或关联名。 无限制的列名是SQL标识符。
- constraint-name
- SQL标识符,用于指定表的主键、检查、参照或唯一约束。
- 上下文名称
- 一个SQL标识符,用于指定可信环境。
- 相关名称
- 一个SQL标识符,用于指定表、视图或表或视图中的单独行。
- cursor-name
- 一个用于指定SQL游标的SQL标识符。 在SQLJ中, 游标名称是一个主机变量(不带指示变量),用于标识迭代器的实例。
- 数据库名称
- 用于指定数据库的SQL标识符。 标识符必须以字母开头,且不得包含特殊字符。
- 描述符名称
- 用于指定SQL描述符区域(SQLDA)的主机标识符。 请参阅主机变量 ,了解主机标识符的说明。 描述符名称中从不包含指示变量。
- distinct-type-name
- 一个限定或非限定名称,用于指代一种独特的类型。
一个合格的独特类型名称由两部分组成。 第一部分是不同类型的模式名称。 第二部分是SQL标识符。 必须用句点分隔各个部分。
无限制的特定类型名称是带有隐式限定符的 SQL 标识符。 隐式限定符是模式名称,由不同类型出现的上下文决定, 如非限定类型、函数、过程、全局变量和特定名称中的规则所述。
- 外部程序名称
- 在调用函数时指定运行程序的名称,或在CALL语句中指定过程名称。
- 功能名称
- 一个指定用户定义函数、创建不同类型时生成的转换函数或内置函数的限定或非限定名称。
一个合格的函数名由两部分组成。 第一部分是函数的模式名称。 第二部分是SQL标识符。 必须用句点分隔各个部分。
无限制函数名是带有隐式限定符的SQL标识符。 隐式限定符是模式名称,由非限定名称出现的上下文决定,如非限定类型、函数、过程、全局变量和特定名称中的规则所述。
- global-variable-name
- 一个指定全局变量的合格或不合格的名称。
一个合格的全球变量名由两部分组成。 第一部分是全局变量的模式名称。 第二部分是SQL标识符。 必须用句点分隔各个部分。
无限制的全局变量名是带有隐式限定符的SQL标识符。 隐式限定符是模式名称,由非限定名称出现的上下文决定,如非限定类型、函数、过程、全局变量和特定名称中的规则所述。
- 主机标签
- 在宿主程序中指定标签的标记。
- 宿主变量
- 用于指定宿主变量的标记序列。 主机变量至少包含一个主机标识符,如主机变量中所述。
- 索引名称
- 一个指定索引的合格或不合格的名称。
合格的索引名称是授权ID或模式名称,后跟句点和SQL标识符。
无限制的索引名称是带有隐式限定符的SQL标识符。 隐式限定符是一个授权ID,由非限定名称出现时的上下文决定,如非限定对象名称解析中的规则所述。
对于已声明的临时表的索引,限定符必须为SESSION。
FL 502 关键标签名称
一个与集成加密服务设施(ICSF)密钥标签值相对应的SQL标识符。 一个键标名称最多可包含64个字符。 第一个字符必须是字母或国家字符(#、$、@)。建议不要使用国家字符(@( X'7C' )、#( X'7B' ) 或$( X'5B' ))。
标识符中不得包含下划线(_)字符。 分隔格式中允许使用的字符与普通格式中允许使用的字符相同,但分隔格式中可以包含句点(.),但句点不能作为第一个字符。 更多信息,请参阅关键标签( z/OS ICSF )。

- 地点名称
- 一个SQL标识符,用于指定位置名称。 地点名称的长度为1至16字节,不包括字母扩展(国家字符)、小写字母或片假名。 限定格式中允许使用的字符与普通格式中允许使用的字符相同。
- 假名
- 一个指定面具的合格或不合格的名字。
合格的口罩名称由两部分组成。 第一部分是架构名称。 第二部分是SQL标识符。 必须用句点分隔各个部分。
单部分或不合格的掩码名称是带有隐式限定符的 SQL 标识符。 隐式限定符是一个授权ID,由非限定名称出现时的上下文决定,如非限定对象名称解析中的规则所述。
- 程序包名
- 一个指定软件包的合格或不合格名称。 包名称的不限定形式是SQL标识符。 包名称不能是包含小写字母或特殊字符的分隔标识符。 SQL语句中的包名称必须限定。 在SQL之外的一些情况下,包名称可以指定为非限定名称。
- parameter-name
- 在SQL程序或SQL函数中指定参数的SQL标识符。
- 权限名称
- 表示许可的合格或不合格名称。
合格的权限名称由两部分组成。 第一部分是架构名称。 第二部分是SQL标识符。 必须用句点分隔各个部分。
单部分或无限制的权限名称是带有隐式限定符的 SQL 标识符。 隐式限定符是一个授权ID,由非限定名称出现时的上下文决定,如非限定对象名称解析中的规则所述。
- 计划名称
- 一个指定应用程序计划的SQL标识符。 标识符不能是包含小写字母或特殊字符的分隔标识符。
- 程序名
- 一个指定存储过程的合格或不合格的名称。
一个完全合格的程序名称由三个部分组成。 第一部分是一个地点名称,用于标识存储程序的数据库管理系统。 第二部分是存储过程的架构名称。 第三部分是SQL标识符。 在限定名称中,每个部分之间必须有一个空格。
由两部分组成的程序名称隐含了当前服务器的位置名称。 第一部分是存储过程的架构名称。 第二部分是SQL标识符。 两部分之间必须有一个间隔。
一个部分或无限制的程序名称是带有两个隐式限定符的 SQL 标识符。 第一个隐含限定符是当前服务器的位置名称。 第二个隐式限定符是模式名称,它由非限定名称出现的上下文决定,如非限定对象名称解析中的规则所述。
限定或非限定名称中的 SQL 标识符不得为星号(*)。
- 个人资料名称
- 与 RACF® 个人资料名称对应的SQL标识符。
- 程序名
- 一个用于指定退出例程的SQL标识符。
- 角色名称
- 一个用于指定角色的SQL标识符。 标识符不能以SYS开头,也不能是ACCESSCTRL、DATAACCESS、DBADM、DBCTRL、DBMAINT、NONE、NULL、PACKADM、PUBLIC、SECADM或SQLADM。
- 常规版本ID
- 一个最多包含64个EBCDIC字节的SQL标识符,用于指定例程的版本。 UTF-8 标识符的长度不得超过122字节。
- 保存点名称
- 用于指定保存点的SQL标识符。
- schema-name
- SQL标识符,为SQL对象提供逻辑分组。 模式名称用作SQL对象名称的限定符。
- seclabel-name
- 一个SQL标识符,对应于 RACF 安全标签的值。 建议不要在用户名中包含国家字符(@( X'7C' )、#( X'7B' )或$( X'5B' ))。 如果表格是Unicode表格,且安全标签名称包含国家字符,当 Db2 将值从EBCDIC转换为Unicode时,如果发生替换,可能会出现错误。
- 序列名
- 一个指定序列的合格或不合格的名称。
合格的序列名称由两部分组成。 第一部分是架构名称。 第二部分是SQL标识符。 必须用句点分隔各个部分。
单部分或不合格的序列名称是带有隐式限定符的 SQL 标识符。 隐式限定符是一个授权 ID,它由非限定名称出现的上下文决定,如非限定别名、索引、JAR 文件、掩码、权限、序列、表、触发器和视图名称中的规则所述。
- server-name
- 一个用于指定应用服务器的SQL标识符。 标识符必须以字母开头,且不得包含小写字母或特殊字符。
- 专有名词
- 一个限定或非限定的名称,用于为用户定义的功能指定一个唯一的名称。
一个合格的专有名词是一个由两部分组成的词。 第一部分是架构名称。 第二部分是SQL标识符,不能是星号(*)。每个部分之间必须用句号隔开。
无限制的特定名称是带有隐式限定符的 SQL 标识符。 隐式限定符是模式名称,由非限定名称出现的上下文决定,如非限定类型、函数、过程、全局变量和特定名称中的规则所述。
可以使用特定名称来标识要更改、注释、删除、授予权限、撤销权限的功能,或作为其他功能的源函数。 不能使用特定名称来调用函数。 除了用于某些SQL语句外,在 Db2 命令中必须使用特定的名称来唯一标识函数。
- SQL条件名称
在SQL程序或触发器中指定条件的SQL标识符。
- SQL标签
在SQL程序或触发器中指定标签的SQL标识符。
- SQL参数名称
在SQL程序体中指定参数的限定或非限定名称。 SQL参数名称的不限定形式是SQL标识符。 合格的形式是函数名或过程名后跟一个句点和SQL标识符。
- SQL变量名
在SQL程序或触发器主体中指定变量的限定或非限定名称。 SQL变量名的不限定形式是SQL标识符。 合格的形式是 SQL标签后跟一个句点(.)和一个SQL标识符。
- statement-name
- 一个SQL标识符,用于指定已准备好的SQL语句。
- stogroup-name
- 用于指定存储组的SQL标识符。
- SYNONYM
- 一个SQL标识符,用于指定同义词、表格或视图。 表格或视图必须在当前服务器上存在。 一个有分量的名字永远不会被当作同义词。
- 表名
- 一个指定表格的合格或不合格的名称。
一个完全合格的表名由三个部分组成。 第一部分是数据库管理系统的名称,用于指定存储表格的数据库管理系统。 第二部分是模式名称。 第三部分是SQL标识符。 必须用句点分隔各个部分。
由两部分组成的表名由当前服务器的位置名隐式限定。 第一部分是模式名称。 第二部分是SQL标识符。 两部分之间必须有一个间隔。
单部分或无限制的表名是带有两个隐式限定符的 SQL 标识符。 第一个隐含限定符是当前服务器的位置名称。 第二个是模式名称,由 “非限定别名”、“索引”、“JAR文件”、“掩码”、“权限”、“序列”、“表”、“触发器”和“视图名称” 中规定的规则确定。 对于已声明的临时表,限定符(三部分名称中的第二部分和两部分名称中的第一部分)必须为SESSION。 关于在定义已声明的临时表时指定名称,然后在其他SQL语句中引用该已声明的临时表的详细信息,请参阅 DECLARE GLOBAL TEMPORARY TABLE语句。
- 表格空间名称
- 一个SQL标识符,用于指定已识别数据库的表空间。 标识符必须以字母开头,且不得包含特殊字符。 如果数据库未找到,则默认为 DSNDB04。
- 触发器名
- 一个指定触发器的合格或不合格名称。
合格的触发器名称由两部分组成。 第一部分是触发器的模式名称。 第二部分是SQL标识符。 必须用句点分隔各个部分。
无限制的触发器名称是带有隐式限定符的SQL标识符。 隐式限定符是模式名称,它由非限定名称出现的上下文决定,如非限定别名、索引、JAR 文件、掩码、权限、序列、表、触发器和视图名称中的规则所述。
触发器版本号
一个最多包含64个EBCDIC字节的SQL标识符,用于指定触发器的版本。 UTF-8 标识符的长度不得超过122字节。
- 视图名称
- 一个表示观点的有资格或无资格的名称。
完全合格的视图名称由三个部分组成。 第一部分是数据库管理系统(DBMS)的名称,用于定义视图。 第二部分是模式名称。 第三部分是SQL标识符。 必须用句点分隔各个部分。
两部分组成的视图名称由当前服务器的位置名称隐式限定。 第一部分是模式名称。 第二部分是SQL标识符。 两部分之间必须有一个间隔。
单部分或非限定视图名称是带有两个隐式限定符的 SQL 标识符。 第一个隐含限定符是当前服务器的位置名称。 第二个是模式名称,它由非限定名称出现的上下文决定,如非限定别名、索引、JAR 文件、掩码、权限、序列、表、触发器和视图名称中的规则所述。
- XML属性名称
- 用作XML属性名称的标识符。
- XML元素名称
- 用作XML元素名称的标识符。