有什么充分的理由可以大写SQL关键字?


28

似乎有很多开发人员通过大写关键字来编写SQL:

SELECT column
FROM table
     INNER JOIN table
     ON condition
WHERE condition
GROUP BY clause
HAVING condition

我想知道为什么人们会坚持这种方法?显然,这是一个由来已久的惯例-但我从未遇到过需要大写的RDBMS 。

就我个人而言,我发现那条呼喊的关键词引起了人们对查询错误部分的注意,这就是为什么我用小写形式写关键词的原因。

尽管如此,仍然有足够多的人使用此约定,我认为我可能会遗漏某些东西,因此是这个问题。


3
即使您的IDE使关键字文本具有不同的颜色,也很高兴使关键字更加突出。
松饼人

3
解决语言中存在一种语言的唯一方法是SHOUT在SQL解释器中使用命令...
Ben DeMott

我的问题也是。+1
Saeed Neamati 2011年

我能理解的大写SQL关键字。我看到的大多数表声明和查询都大写,包括表名和列。
MPelletier 2012年

Answers:


22

与查询窗口中的其他字符相反,大写使它们脱颖而出。

我不这样做的原因是浪费大量时间。您可以执行以下两项操作之一:

1)按住Shift键,同时输入单词:太容易出错,只是偶然。

2)在单词持续时间内盖上大写锁定:浪费太多时间。

我使用SQL Server,并且环境(SSMS)突出显示了语法,因此我个人不认为关键字大写现在比以前更普遍(如果有的话)。

不过,这是在书籍和在线教程中的好习惯,因此很明显保留关键字是什么。那只是那些不成文的事情之一。


20
@dave但与应用程序代码不同,SQL脚本很可能在编辑器中查看而没有语法突出显示。
2011年

8
@dave:SQL脚本是完全独立的,几乎总是通过电子邮件发送,键入文本区域,为审核员打印出来或输入到SQL * Plus等命令行实用程序中。这不关乎您的环境,而是关乎该环境之外的SQL脚本的生存期-这与应用程序源代码无关,因为它在编译器/ IDE之外没有实际用途。
2011年

6
SQL语句经常出现在日志文件,错误消息中,嵌入在XML文档中以及无法进行语法高亮显示的各种地方-因此,始终欢迎任何易于阅读的格式。
詹姆斯·安德森

8
-1如果按住Shift键或按大写键太多,那么我认为还有其他问题。而您节省的.25秒究竟有多少对实际产生影响?
TheLQ

2
我对您的问题的回答是另一个问题:您是否每天都编写SQL代码?并将.25秒乘以SQL开发人员/ dba编写的代码量...

8

我发现这种大写字母提供了一种快速简便的方法来可视化分解查询的不同部分。结合良好的缩进可以帮助提高可读性和逻辑理解。

我不知道这与标准如何产生有关。但这是我的个人经历。


7

早在过去,编写代码时就不会以任何方式突出显示关键字,因此这是一种尝试帮助人们区分查询的SQL部分和数据库对象部分的尝试,但它可以采用其他方法倾向于使用更长的名称,使它们更难于大写,并且某些对象命名约定是特定于案例的。

就我个人而言,如果它们不大写,我会觉得很容易阅读,但是很多人已经习惯了以这种方式阅读它们,如果您不大写的话,它会把它们扔掉。


4
最近,我接触到实际上确实违反约定的人,这些对象使用大写的对象名称并将关键字保留为小写形式。至少可以说,这很刺耳。
亚伦诺特,2011年

6

SQL是一种面向子句的语言,比我经历过的任何其他事情都要多。您已经有了SELECT子句,FROM子句,JOIN子句和WHERE子句。ORDER BY,GROUP BY等,等等。

将这些关键字大写有助于您直观地分离各个子句。在某些棘手的调试情况下,当您以HTML注释输出SQL然后将其复制粘贴到控制台中时,这特别方便。讨厌,但我们都去过那里。最好有一些帮助来查看语句的每个部分从何处开始。


2

就我个人而言,我发现那条呼喊的关键词引起了人们对查询错误部分的注意,这就是为什么我用小写形式写关键词的原因。

正如已经指出的那样,使用旧的IDE,除了区分文本外,您没有太多选择。正如您所指出的那样,使关键字脱颖而出会使您的注意力从应有的位置移开。问题是您知道关键字始终可以大写,而其他内容可以包含区分大小写的文字和标识符。这导致阻力最小的途径是仅将关键字大写。


-1

就我而言,我更喜欢将关键字大写,而与语法突出显示无关。假设您没有合适的SQL编辑器,并且需要在记事本或写字板中编写/编辑或打开脚本。这些编辑器没有突出显示语法。

出于与我上述相同的原因,我对SQL Server的语法突出显示没有过多的关注,但是它很有用(看到所有黑色代码都很无聊)。我一直使用大写字母来区分关键字与变量,常量,名称等。


这本来应该是评论,但您没有声誉发表评论……
Adam Zuckerman

我在最初的问题中介绍了这一点-使用CAPITALS作为关键字吸引了读者对查询或语句中不重要的部分的关注。
Bevan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.