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元素名称的标识符。