Sam*_*ham 108 sql formatting readability
可能重复:
是否有充分的理由对T-SQL关键字使用大写?
简单的问题.我个人发现一串小写字符比一串大写字符更易读.是一些旧的/流行的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
Run Code Online (Sandbox Code Playgroud)
与
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
Run Code Online (Sandbox Code Playgroud)
前者对我来说似乎更具可读性,但我更经常地看到后一种方式.
Blo*_*ard 168
我同意你的意见 - 对我来说,大写就是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;
}
}
Run Code Online (Sandbox Code Playgroud)
啊!
无论如何,从投票中可以看出哪种风格更受欢迎,但我认为我们都同意这只是个人偏好.
Tre*_*ent 108
我认为后者更具可读性.您可以轻松地将关键字与表名和列名等分开.
Use*_*ser 60
我要添加的一件事,我还没有看到任何人提出来:
如果您在编程语言中使用ad hoc SQL,那么在字符串中会有很多SQL.例如:
insertStatement = "INSERT INTO Customers (FirstName, LastName) VALUES ('Jane','Smith')"
Run Code Online (Sandbox Code Playgroud)
在这种情况下,语法着色可能不起作用,因此大写可能有助于提高可读性.
one*_*hen 42
来自Joe Celko的"SQL编程风格"(ISBN 978-0120887972):
规则:
大写保留字.
理由:
大写单词被视为一个单元,而不是被视为一系列音节或字母.眼睛被他们吸引,他们采取行动宣布声明或条款.这就是头条新闻和警示标志的作用.
排版师使用术语bouma作为单词的形状.该术语出现在保罗·桑格的书中(1975年).想象一下矩形卡上的每个字母都适合它,这样你就可以看到ascenders,descenders和基线字母作为各种"乐高积木"拼接在一起形成一个单词.
大写单词的bouma总是一个简单,密集的矩形,很容易从小写单词的字段中挑选出来.
我发现引人注目的是,这是关于SQL启发式的唯一一本书,由一位着名的SQL作者撰写.这是绝对真理吗?谁知道.这听起来很合理,我至少可以向团队成员指出规则并告诉他们遵循它(如果他们想责怪任何我给他们Celko的电子邮件地址:)
Pau*_*lin 20
这大多是传统.我们喜欢将关键字和命名空间名称分开以便于阅读,因为在许多DBMS中,表和列名称区分大小写,所以我们不能将它们作为大写,因此我们将关键字置于大写.
Ins*_*ter 17
代码具有SQL语句缺少的标点符号.有点,括号和分号可以帮助您保持分离.代码也有行.尽管您可以在多个物理行上编写SQL语句,但它只是一个语句,一个"代码行".
如果我在没有任何正常标点符号的情况下写英文文本,如果我将新条款的开头大写,这会更容易分辨出哪一个结束而下一个开始另外一个文本块,这可能会非常容易难以阅读不是id表明它现在很容易阅读但至少你可以按照我的想法
Guf*_*ffa 13
我更喜欢小写的关键字.Management Studio对关键字进行颜色编码,因此将它们与标识符区分开来没有问题.
大写的关键字感觉如此......好...... BASIC ......;)
- "从八十年代起,他们想要他们的大写关键词回归基本,COBOL和FORTRAN." ;)
小智 6
更糟糕的是,由于我办公室的大多数开发人员都相信 sql 关键字的大写,所以我不得不改为大写。多数规则。
我相信小写字母更容易阅读,而且 sql 关键字无论如何都以蓝色突出显示。
在辉煌的日子里,关键字是大写的,因为我们是在绿屏上开发的!
问题是:如果我们不写大写的c#关键字,那为什么我必须写大写的sql关键字?
就像其他人所说的 - 首都在呼喊!
我喜欢对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
Run Code Online (Sandbox Code Playgroud)
(缺少ANSI连接是另一个问题。)
一项心理学研究表明,由于单词的轮廓更加鲜明,小写字母比大写字母更容易阅读。但是,通过阅读大写字母的大量练习,此效果可能会消失。