Answers:
关于表名,大小写等,普遍的约定是:
UPPER CASElower_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” ...最近,我听说这被描述为“蛇皮”