从技术上讲,下划线字符(_)可用于列名。但是在列名中使用下划线是一种好习惯吗?它似乎使名称更具可读性,但我担心使用它们可能会产生技术问题。列名称不会以下划线为前缀。
答案 0 :(得分:9)
在名称中使用下划线没有直接的技术问题。事实上,我经常这样做,并发现它很有帮助。 Ruby甚至自动在列名中生成下划线,SQL Server自己的系统对象也使用下划线。
一般来说,最好在数据库中使用一些命名约定,如果包含下划线,则没什么大不了的。
如果在引用名称时在名称周围加上方括号或引号,则可以在名称中使用任何字符。我尽量避免使用空格,因为它会让事情变得更难阅读。
在提出SQL Server的命名约定时,您需要避免一些事项。他们是:
sp_
的前缀,除非您计划在系统范围内使用它们。 答案 1 :(得分:7)
这没有问题,只要它使列名更清晰。
答案 2 :(得分:0)
如果您查看 PostgreSQL 文档,您可能会发现几乎所有对象都以 Snake Case 命名。
此外,MySQL、MS SQL Server、Oracle DB 和上述 PostgreSQL 中的很多系统对象都使用 Snake Case。
根据我的个人经验,在对象命名中使用下划线并不是什么大问题。
但有一个警告。
下划线符号是 SQL LIKE 运算符中任何符号的占位符:
SELECT * FROM FileList WHERE Extention LIKE 'ex_'
当有很多动态 SQL 代码时,这是一个潜在的问题,尤其是当我们谈论自动生成的对象名称时。而这样的错误很难找到。
我个人更愿意在命名时避免使用下划线。但同时如果已经使用了这种命名方式,则无需重写所有现有代码。
有备无患。