web-dev-qa-db-ja.com

SQLキーワードを大文字にする必要があるのはなぜですか?

可能性のある複製:
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

vs.

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

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

103

後者の方が読みやすいと思います。キーワードをテーブル名や列名などから簡単に分離できます。

108
Trent

私はあなたに同意します-私にとって、大文字はただの叫びです。

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;
    }
}              

うん!

とにかく、どちらのスタイルがより人気があるかは投票からかなり明らかですが、私たちは皆、それが単なる個人的な好みであることに同意すると思います。

165
Blorgbeard

まだ誰も育てていないのに、これに付け加えます。

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

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

この場合、構文の色付けはおそらく機能しないので、大文字を使用すると読みやすくなります。

58
User

Joe Celkoの「SQL Programming Style」(ISBN 978-0120887972)から:

ルール:

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

根拠:

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

タイポグラファーは、単語の形を表すboumaという用語を使用します。この用語は、Paul Saengerの本(1975年)に記載されています。アセンダー、ディセンダー、およびベースライン文字を、Wordを作成するためにスナップされたさまざまな「レゴブロック」として表示するように、長方形のカードの各文字がぴったり合うと想像してください。

大文字のWordのboumaは、常に単純で密な長方形であり、小文字の単語のフィールドから簡単に選択できます。

説得力があると思うのは、これがSQLの著名な著者によって書かれたSQLヒューリスティックに関する唯一の本であるということです。これは絶対的な真実ですか?知るか。それは十分に理にかなっているようで、少なくともチームメンバーにルールを指摘し、従うように彼らに伝えることができます(そして彼らが誰かを責めたいなら、私は彼らにCelkoのメールアドレスを与えます:)

42
onedaywhen

ほとんどが伝統です。読みやすくするためにキーワードと名前空間名を分けておくのが好きです。多くのDBMSではテーブル名と列名は大文字と小文字を区別するため、大文字にすることはできないため、キーワードを大文字にします。

20
Paul Tomblin

コードには句読点があり、SQLステートメントにはありません。物事を区別しやすくするために、ドット、括弧、セミコロンがあります。コードにも行があります。複数の物理行でSQLステートメントを作成できるという事実にもかかわらず、それは単一のステートメントであり、単一の「コード行」です。

通常の句読点を使わずに英語のテキストを書く場合、新しい句の先頭を大文字にすると、どこで終了し、次の句がどこから始まったかを簡単に伝えることができれば、もっと簡単になるでしょう。読むのは難しいです。そのIDは今読むのが簡単ですが、少なくともあなたはそれに従うことができると思います

17
Instance Hunter

小文字のキーワードが好きです。 Management Studioはキーワードを色分けしているため、それらを識別子と区別するのに問題はありません。

そして大文字のキーワードはそう感じます...まあ... BASIC ...;)

-「80年代から呼び出されたBASIC、COBOL、およびFORTRAN、彼らは大文字のキーワードを戻したかった」 ;)

13
Guffa

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結合の欠如は、別の質問の問題です。)

単語のアウトラインがより特徴的であるため、小文字は大文字よりも読みやすいことが示されている心理学研究があります。しかし、この効果は、大文字を読む練習を重ねることで消えることがあります。

5
WW.

さらに悪いことに、私のオフィスの大多数の開発者はSQLキーワードの大文字を信じているため、大文字に変更する必要がありました。多数決。

小文字の方が読みやすく、SQLキーワードがとにかく青で強調表示されていることを考えると。

栄光の時代には、緑色の画面で開発を行っていたため、キーワードは大文字でした!

問題は、c#キーワードを大文字で記述しない場合、なぜsqlキーワードを大文字で記述しなければならないのですか?

他の誰かが言ったように-首都は叫んでいます!

3
Steve

80年代に戻って、データベース名を大文字にして、sqlキーワードを小文字のままにしていました。ほとんどのライターは反対のことを行い、SQLキーワードを大文字にしました。最終的に、私は群衆と一緒に行き始めました。

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

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

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

3
Walter Mitty

その読みやすさの問題。 SQLキーワードに大文字を使用すると、スクリプトがより理解しやすくなります。

2
user59634

読みやすさの問題です。 SQLキーワードをすばやく区別するのに役立ちます。

ところで、その質問はすでに回答済みです: SQL構文では大文字と小文字が区別されますか?

2
rogeriopvl

SQLのキーワードにも大文字を使用することを好みます。

はい、小文字の方が読みやすくなっていますが、クエリをスキャンするのに余分な時間をかける必要がほとんどありません。一旦それが完了しテストされると、とにかくそれを見ることがめったにありません(DAL、ストアドプロシージャ、またはあなたからそれを隠すもの)。

初めて読んでいる場合、大文字で始まるWHERE AND JOINは、必要に応じてすぐにジャンプします。

2
jfrobishow

ここの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

彼らは、私が自分で使用している1行あたり1フィールドのアプローチとは異なり、これは読みやすいと主張しています。

1
Steve

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

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

0

おそらく何もありませんが、 small capsSQLキーワードをタイプセットすることを好みます。そのように、彼らはほとんどの読者に大文字に見えますが、それらはいALL CAPSスタイルと同じではありません。

さらなる利点は、コードをそのままにして、従来のスタイルで印刷できることです。 (コードをきれいに印刷するには、listingsLaTeXパッケージを使用します。)

0
Jon Ericson