关键字和标识符¶
关键字是指在SQL 语言里有固定含义的单词,如 SELECT、UPDATE。标识符是用来标识表、列或其它数据库对象名称的字符串。在神通数据库中有些关键字是保留字,不能用作标识符;有些关键字是非保留字,可以用作标识符,但它们在神通数据库中有特殊意义,如DIMENSION、SEGMENT、ALLOCATE、DISABLE等,如果用它们作标识符,可能会产生难以预料的结果,因此神通数据库建议不要使用关键字作标识符。特别需要注意的是,在神通数据库中系统表以SYS_开头,系统视图以V_SYS_开头,用户定义的对象请不要以SYS_或V_SYS_开头,否则在没有指定INFO_SCHEM模式的情况下,由于存在多个候选对象,可能因此而发生混淆,目前对于用户名和模式名禁止以SYS_开头,对于表、视图、索引、序列、物化视图、约束、存储过程、触发器等无此限制。
在神通数据库中SQL 标识符和关键字必须以神通数据库字符集中的字母或下划线开头,随后的字符可以是神通数据库字符集中的字母、数字(0-9)或下划线,但是整个标识符不能全是数字。神通数据库建议标识符中不要含有$和#。标识符的长度必须在1到127之间,标识符和关键字都是大小写无关的,因此
UPDATE MY_TABLE SET A = 5;
等效于
uPDaTE my_TabLE SeT a = 5;
神通数据库建议一般把关键字用大写表示,而标识符等用小写表示,如
UPDATE my_table SET a = 5;
在神通数据库中还可以用双引号(" )包围任意字符序列来表示一个标识符,如可以用 "SELECT" 表示一个字段名字或者表名,这样的标识符称为分隔标识符。”SELECT”不等同于SELECT,前者是一个标识符,后者是一个SQL关键字,是SQL命令的一部分,不能作为标识符,否则会产生语法分析错误。分隔标识符可以包含除引号本身以外的任何其它字符。要包含一个双引号,可以写两个双引号。
夹在引号中的标识符是大小写相关的,而没有引起来的标识符是大小写无关的(神通数据库中把它们统一转换成大写处理)。比如,神通数据库认为标识符 FOO,foo 和 "FOO" 是一样,但 "Foo" 和 "foo" 与上面三个以及它们之间都是不同的。