为什么我应该大写我的SQL关键字?

可能重复:
T-SQL关键字使用大写是否有很好的理由?

简单的问题。 我个人发现一串小写字符比一串大写字符更可读。 是一些旧的/stream行的SQL的大小写敏感的东西?

以供参考:

select this.Column1, case when this.Column2 is null then 0 else this.Column2 end from dbo.SomeTable this inner join dbo.AnotherTable another on this.id = another.id where this.Price > 100 

 SELECT this.Column1, CASE WHEN this.Column2 IS NULL THEN 0 ELSE this.Column2 END FROM dbo.SomeTable this INNER JOIN dbo.AnotherTable another ON this.id = another.id WHERE this.Price > 100 

前者似乎对我来说更加可读,但我更经常地看到后者。

我认为后者更具可读性。 您可以轻松地将表格和列名称等关键字分开

我同意你 – 对我来说,大写字母就是SHOUTING。

我让我的IDE通过语法高亮处理使关键字脱颖而出。

我不知道它的历史原因,但现在这只是一个主观的偏好。

编辑进一步明确我的推理:

你会否使用其他现代语言的关键词? 编写例子:

 USING (EditForm form = NEW EditForm()) { IF (form.ShowDialog() == DialogResult.OK) { IF ( form.EditedThing == null ) { THROW NEW Exception("No thing!"); } RETURN form.EditedThing; } ELSE { RETURN null; } } 

啊!

无论如何,从风格比较stream行的选票中可以清楚地看出,但我想大家都同意,这只是一种个人偏好。

有一件事我会补充到这个我还没有看到任何人提出的:

如果你使用编程语言中的特别SQL,你将会在string内部有很多的SQL。 例如:

 insertStatement = "INSERT INTO Customers (FirstName, LastName) VALUES ('Jane','Smith')" 

在这种情况下,语法着色可能不起作用,因此大写可能有助于可读性。

来自Joe Celko的“SQL编程风格”(ISBN 978-0120887972):

规则:

大写保留字。

理由:

大写单词被视为一个单位,而不是被读作一系列的音节或字母。 他们的眼睛被吸引,他们的行为宣布一个声明或条款。 这就是为什么标题和警告标志起作用。

印刷工使用术语“ 布玛”来表示一个词的形状。 这个词出现在保罗·萨格尔的书(1975)中。 设想一下矩形卡片上的每一个字母,这样你就可以将上行,下行和基线字母看作各种“乐高积木”,拼凑在一起形成一个单词。

大写字母的拼写总是一个简单的,密集的矩形,很容易从小写字母的字段中挑出。

我发现这是关于SQL启发式的唯一一本书,由着名的SQL作者撰写。 那么这是绝对的事实吗? 谁知道。 这听起来很合理,我至less可以向团队成员指出这个规则,并告诉他们遵循(如果他们想责怪任何人,我给他们Celko的电子邮件地址:)

主要是传统。 我们希望将关键字和名称空间名称分开以保持可读性,因为在许多DBMS中,表名和列名是区分大小写的,所以我们不能大写,所以我们用大写字母来表示关键字。

代码有SQL语句缺less的标点符号。 有圆点和圆括号以及分号来帮助你保持独立。 代码也有行。 尽pipe您可以在多条物理线路上编写一条SQL语句,但它是一条单一的语句,即一条“代码行”。

如果我要写的英文文本没有任何正常的标点符号IT可能会更容易,如果我大写新的条款开始这种方式更容易告诉哪里结束,下一个开始否则这一长串文本块可能会很难以阅读不是说,IDbuild议现在很容易阅读,但至less你可以按照我的想法

我更喜欢小写字母关键字。 Management Studio对关键字进行颜色编码,因此不会将其与标识符区分开来。

和大写的关键字感觉如此…好…基本…;)

– “八十年代的BASIC,COBOL和FORTRAN打来电话,他们想把他们的大写字母关了。 ;)

我喜欢在SQL关键字上使用大写字母。 我觉得我的头脑忽略了他们,因为他们真的很块,专注于重要的事情。 当你像这样布局的时候,块状的文字将重要的部分分开:

 SELECT s.name, m.eyes, m.foo FROM muppets m, muppet_shows ms, shows s WHERE m.name = 'Gonzo' AND m.muppetId = ms.muppetId AND ms.showId = s.showId 

(缺lessANSI连接是另一个问题的一个问题。)

有一项心理学研究显示,小写字母比大写字母更易于阅读,因为字母的轮廓更为鲜明。 然而,这种效果可以消失大量的练习阅读大写。

这只是一个可读性的问题。 帮助您快速区分SQL关键字。

顺便说一句,这个问题已经得到解答: SQL语法是否区分大小写?

它只是一个可读性的问题。 对SQL关键字使用UPPERCASE有助于使脚本更易于理解。

更糟糕的是,由于我办公室的大多数开发人员都相信sql关键字的大写,所以我不得不变成大写。 多数规则。

我相信小写更容易阅读,并认为SQL关键字以蓝色突出显示。

在辉煌的日子,关键词是在captials,因为我们正在绿屏上发展!

问题是:如果我们不写大写的c#关键字,那么为什么我必须写大写sql关键字?

就像其他人所说 – 首都是SHOUTING!

对于SQL中的关键字,我更喜欢使用大写。

是的小写更具可读性,但对于我不得不花费额外的时间扫描查询,大部分时间都会帮助您。 一旦完成和testing,你应该很less再看到它(DAL,存储过程或任何可以隐藏你的东西)。

如果你是第一次阅读它,大写的WHERE AND JOIN会像你应该的那样跳到你身上。

早在80年代,我曾经使用数据库名称大写,并保留小写的sql关键字。 大多数作者是相反的,大写SQL关键字。 最终,我开始和人群一起去。

顺便提一下,在C,C ++或Java中大多数已发布的代码片段中,语言关键字总是小写,大写的关键字甚至可能不被某些parsing器识别。 在编程语言中使用SQL中的相反约定,即使在源代码中embedded了SQL,我也没有看到很好的理由。

而且我并没有捍卫数据库名称全部大写的使用。 它实际上看起来有点像“大喊”。 还有更好的约定,比如在数据库名称中使用几个大写字母。 (通过“数据库名称”我的意思是模式名称,表格模式对象,也许还有一些其他的东西)。正因为我在80年代做到这一点,并不意味着我必须今天捍卫它。

最后,“德国无争议”。

这里的一些SQL开发人员喜欢这样做:

 SELECT s.name, m.eyes, m.foo FROM muppets m, muppet_shows ms, shows s WHERE m.name = 'Gonzo' AND m.muppetId = ms.muppetId AND ms.showId = s.showId 

他们声称这比我自己使用的每行一种字段更容易阅读。

也许没有什么意思,但我更喜欢用小写字母排版SQL关键字。 这样他们看起来大多数读者的资本,但他们不同于丑陋的所有帽子风格。

另外一个好处就是我可以把代码保持原样并以传统的方式打印出来。 (我使用LaTeXlistings包进行漂亮的打印代码。)

我利用SQL来使其与主机语言(现在主要是C#)更“对比”。

这只是一个偏好和/或传统的问题。