134

重複の可能性:
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

対。

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

私には前者の方がはるかに読みやすいように思えますが、後者の方がより頻繁に見られます。

4

16 に答える 16

77

これに追加することの1つは、まだ誰も持ち出していないことです。

プログラミング言語内からアドホック SQL を使用している場合、文字列内に多くの SQL が含まれることになります。例えば:

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

この場合、構文の色分けはおそらく機能しないため、大文字にすることで読みやすくなっている可能性があります。

于 2011-07-30T00:06:43.340 に答える
51

Joe Celko の「SQL プログラミング スタイル」(ISBN 978-0120887972) から:

ルール:

予約語を大文字にします。

根拠:

大文字の単語は、一連の音節や文字として読まれるのではなく、単位として見なされます。それらに目が引かれ、声明や条項を発表するように行動します。だからこそ、見出しと警告サインが機能します。

タイポグラファーは、単語の形を表現するためにブーマという用語を使用します。この用語は、ポール・センガーの本 (1975 年) に登場します。ちょうど収まる長方形のカードの各文字を想像してください。アセンダー、ディセンダー、およびベースラインの文字が、スナップして単語を作るさまざまな「レゴ ブロック」として表示されます。

大文字の単語のブーマは常にシンプルで密集した長方形であり、小文字の単語のフィールドから簡単に選択できます。

私が説得力を感じているのは、これが SQL ヒューリスティックに関する唯一の本であり、SQL 作品の著名な著者によって書かれているということです。では、これは絶対的な真実ですか?知るか。それは十分に合理的に聞こえるし、少なくともチームメンバーにルールを指摘して、それに従うように言うことができる.

于 2010-07-19T09:37:39.510 に答える
25

コードには、SQLステートメントに欠けている句読点があります。物事を分離するのに役立つドットと括弧とセミコロンがあります。コードにも行があります。SQLステートメントは複数の物理行に記述できるという事実にもかかわらず、それは単一のステートメント、単一の「コード行」です。

通常の句読点を使用せずに英語のテキストを書く場合は、新しい句の開始を大文字にすると簡単になる可能性があります。そうしないと、1つの句がどこで終わり、次の句がどこで始まったかがわかりやすくなります。読むのが難しいそのIDは今すぐ読みやすいことを示唆しているわけではありませんが、少なくともあなたはそれに従うことができると思います

于 2009-03-04T03:33:02.627 に答える
20

私は小文字のキーワードを好みます。Management Studio はキーワードを色分けするため、識別子と区別するのに問題はありません。

そして、大文字のキーワードはとても... まあ... BASIC... ;)

-「BASIC、COBOL、および FORTRAN は 80 年代から呼び出され、大文字のキーワードを元に戻したいと考えていました。」;)

于 2009-03-03T21:29:42.157 に答える
5

私は 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

(ANSI 結合の欠如は、別の質問の問題です。)

単語の輪郭がより特徴的であるため、大文字よりも小文字の方が読みやすいことを示す心理学研究があります。ただし、この効果は、大文字を読む練習を重ねると消える可能性があります。

于 2009-03-04T02:57:52.087 に答える
3

80 年代には、データベース名を大文字にし、SQL キーワードを小文字のままにしていた。ほとんどのライターは、逆に SQL キーワードを大文字にしました。やがて、私は群衆と一緒に行くようになりました。

ついでに言うと、C、C++、または Java で公開されているほとんどのコード スニペットでは、言語のキーワードは常に小文字であり、大文字のキーワードは一部のパーサーではそのように認識されない場合もあります。SQL がソース コードに埋め込まれている場合でも、プログラミング言語で使用する規則とは逆の規則を SQL で使用する正当な理由がわかりません。

また、データベース名にすべて大文字を使用することを擁護しているわけではありません。それは実際には「叫び」に少し似ています。また、データベース名にいくつかの大文字を使用するなど、より良い規則があります。(「データベース名」とは、スキーマの名前、テーブルなどのスキーマ オブジェクト、およびその他のいくつかの名前を意味します。) 80 年代にそれを行ったからといって、今日それを守らなければならないというわけではありません。

最後に、「De gustibus non disputandum est」。

于 2009-03-04T06:29:56.227 に答える
2

それは読みやすさの問題です。SQLキーワードに大文字を使用すると、スクリプトがわかりやすくなります。

于 2009-03-04T03:22:59.437 に答える
1

ホスト言語 (最近はほとんどが C#) との "対照" を高めるために、SQL を大文字にしています。

それは本当に好みや伝統の問題です...

于 2011-07-30T00:25:34.663 に答える