24

从技术上讲,下划线字符 (_) 可用于列名。但是在列名中使用下划线是一种好习惯吗?它似乎使名称更具可读性,但我担心使用它们可能会出现技术问题。列名不会带有下划线前缀。

4

3 回答 3

12

在名称中使用下划线没有直接的技术问题。事实上,我经常这样做并且发现它很有帮助。Ruby 甚至在列名中自动生成下划线,SQL Server 自己的系统对象也使用下划线。

一般来说,在数据库中遵循一些命名约定是个好主意,如果其中包括下划线,没什么大不了的。

如果在引用名称时将方括号或引号括在名称中,则可以在名称中使用任何字符。不过,我尽量避免使用空格,因为它会使内容更难阅读。

在为 SQL Server 制定命名约定时,您需要避免一些事情。他们是:

  1. sp_除非您打算在系统范围内使用它们 ,否则不要为存储过程添加前缀。
  2. 不要在列前加上它们的数据类型(因为你可能想改变它)。
  3. 避免将东西放在 sys 模式中(你可以通过黑客攻击,但你不应该)。
  4. 假装你的代码区分大小写,即使它不是。您永远不知道什么时候您最终会使用 tempdb 设置为区分大小写的服务器。
  5. 创建临时表时,始终为字符串类型指定排序规则。
于 2012-06-14T16:55:42.807 回答
8

这样做没有问题,只要让列名更清晰。

于 2012-06-13T18:00:30.647 回答
0

如果您查看 PostgreSQL 文档,您可能会发现几乎所有对象都以Snake Case命名。

此外,MySQL、MS SQL Server、Oracle DB 和前面提到的 PostgreSQL 中的很多系统对象都使用了 Snake Case。

从我个人的经验来看,使用下划线来命名对象并不是什么大问题。

但有一个警告。

下划线符号是 SQL LIKE 运算符中任何符号的占位符:

SELECT * FROM FileList WHERE Extention LIKE 'ex_'

当有很多动态 SQL 代码时,这是一个潜在的问题,尤其是当我们谈论自动生成的对象名称时。而且这样的错误很难找到。

就个人而言,我宁愿避免在命名时使用下划线。但同时,如果已经使用了这种命名方式,则无需重写所有现有代码。

有备则无患。

于 2021-06-06T09:00:37.440 回答