Answers:
关于表名,大小写等,普遍的约定是:
UPPER CASE
lower_case_with_underscores
例如:
UPDATE my_table SET name = 5;
这不是一成不变的,但IMO强烈建议使用小写的标识符。Postgresql在不加引号的情况下将标识符区分大小写(实际上将其内部折叠为小写),在加引号时则区分大小写;许多人不知道这种特质。始终使用小写字母是安全的。无论如何,只要您保持一致,就可以使用camelCase
或PascalCase
(或UPPER_CASE
):始终或不加引号标识符(包括模式创建!)。
我不知道更多的约定或样式指南。代理键通常是由序列(通常是serial
宏)组成的,如果您手动创建这些序列,则坚持使用这些序列的命名会很方便(tablename_colname_seq
。
另请参见此处,此处和(对于常规SQL)此处的一些讨论,所有这些都带有几个相关链接。
注意:Postgresql 10引入了identity
列,作为serial的SQL兼容替代品。
确实没有正式的手册,因为没有单一的样式或标准。
只要您了解标识符命名的规则就可以使用任何您喜欢的名称。
在实践中,我发现它更易于使用,lower_case_underscore_separated_identifiers
因为它不需要"Double Quote"
到处都保留大小写,空格等。
如果要命名表和函数 "@MyAṕṕ! ""betty"" Shard$42"
,则可以随意执行此操作,尽管在任何地方键入都很麻烦。
要了解的主要内容是:
除非双引号,标识符是区分折叠为小写,所以MyTable
,MYTABLE
并且mytable
都是同样的事情,但"MYTABLE"
和"MyTable"
不同;
除非双引号:
SQL标识符和关键字必须以字母(az,但带有变音符号和非拉丁字母的字母)或下划线(_)开头。标识符或关键字中的后续字符可以是字母,下划线,数字(0-9)或美元符号($)。
如果希望将关键字用作标识符,则必须双引号。
实际上,我强烈建议您不要将关键字用作标识符。至少避免保留字。仅仅因为您可以命名表"with"
并不意味着您应该这样做。
lower_case_underscore_separated_identifiers
” ...最近,我听说这被描述为“蛇皮”