web-dev-qa-db-ja.com

SQLキーワードに大文字を使用する正当な理由はありますか?

デフォルトは大文字のようですが、キーワードに大文字を使用する理由は本当にありますか?新しいストアドプロシージャなど、何かを作成しようとするたびにSQL Serverが提供するものと一致させようとしたため、大文字を使用し始めました。しかし、それから、私は私の赤ちゃん(5番目)の指がひどいと感じました。 Shift ボタンなので、大文字の使用を停止しました。大文字に戻る理由は何ですか?

Edit:答えてくれてありがとう。 [〜#〜] cobol [〜#〜] が王様だった頃、私はまだプログラミングをしていなかったので、これを知りませんでした。これからは小文字のままにします。

120
Hertanto Lie

それは単なるスタイルの問題であり、おそらくエディターがコードの色付けを行わなかった時代に始まりました。

以前はすべて大文字を好んでいましたが、今はすべて小文字に傾いています。

97
Mitch Wheat

個人的に、私はSQLを叫ぶのは好きではありませんAT ME。基本的なOR COBOLを思い出します。

したがって、データベースオブジェクト名がMixedCaseのT-SQL小文字を使用します。

読みやすく、リテラルとコメントが目立ちます。

138
Gordon Bell

SQL IS OLD。UPPER CASE IS SHOUTING。ITは、見苦しく、過酷に見える。

ほぼ間違いなく、これらのいずれも大文字キーワードが適切な慣習である理由SQL言語に特別なの理由に対処していません。

多くの新しい言語とは異なり、SQLには多数のキーワードがあり、構文を精神的に解析するために、読者がキーワードと識別子を区別するに依存しています。

あなたの質問への直接的な答えは、「なぜSQLコードの読者はが大文字キーワードからそんなに多くなるのか、それがほとんどの現代言語に当てはまらないのか」に対する答えです。

  • キーワードを頭に入れるを維持することに依存することは、多くの現代言語にとって合理的ですが、SQLにとっては不合理です;キーワードとバリアントが多すぎます。

  • 句読点に依存することは、ほとんどの現代言語にとって合理的ですが、SQLにとっては不合理です;その代わり、構文を示すためのキーワードの正確な順序に依存します。

  • キーワードを区別するために自動蛍光ペンに依存することは、通常の場合、現代の言語では妥当ですが、SQLで蛍光ペンが達成できることの現実を無視します。ほとんどは、SQLのすべてのバリアントのすべてのキーワードを網羅しているわけではありませんが、SQLは、蛍光ペンが役に立たないコンテキストで頻繁かつ日常的に読み取られます。

これらは、SQL固有の理由の一部です。SQLコードのリーダーは、キーワードの大文字の標準化を使用するのが最善であり、識別子。

強調表示が役立つ場合があります。ただし、蛍光ペンがSQLを持っていることを知っている場合のみ。また、エディタ/フォーマッタがSQLを処理していることを合理的に認識できないコンテキストでSQLを使用することは非常に多くあります。例には、別の言語のコード内のインラインクエリ、プログラマドキュメント、およびテキスト文字列が含まれます。同じことは、PythonまたはC++;などの言語の場合、ほとんどの場合に当てはまりません。はい、それらのコードはそれらの場所に表示されることがありますが、SQLコードのように日常的に行われるわけではありません。

また、読者は通常、特定のSQL実装が使用するキーワードのサブセットのみを知っている蛍光ペンを使用します。あまり一般的ではないキーワードの多くは、SQLバリアントを詳細に知っているキーワードを除き、強調表示されません。そのため、読者は、蛍光ペンを使用している場合でも、中程度に複雑なSQLステートメントのキーワードを区別するための、より直接的な方法が必要です。

そのため、リーダーは頻繁に(そしてライターはそれがいつになるかを事前に知ることができません)ライターがキーワードとして意図しているものと識別子として意図しているものを知るために、SQLステートメント自体の内容から支援を必要とします。したがって、SQLコンテンツ自体には読者のキーワードを区別するが必要であり、大文字のキーワードを使用するのが従来の便利な方法です。

72
bignose

ゴードン・ベルの例は正確ではありません。通常、クエリ全体ではなく、キーワードのみが強調表示されます。彼の2番目の例は次のようになります。

SELECT name, id, xtype, uid, info, status, 
base_schema_ver, replinfo, parent_obj, crdate, 
ftcatid, schema_ver, stats_schema_ver, type, 
userstat, sysstat, indexdel, refdate, version, 
deltrig, instrig, updtrig, seltrig, category, cache
FROM sysobjects
WHERE category = 0
AND xtype IN ('U', 'P', 'FN', 'IF', 'TF')
ORDER BY 1

キーワードがより際立っているので、これははるかに読みやすいと思います。構文の強調表示を使用しても、大文字ではない例を読むのははるかに困難です。

私の会社では、SQLの書式設定をもう少し進めています。

SELECT      name, id, xtype, uid, info, status, 
            base_schema_ver, replinfo, parent_obj, crdate, 
            ftcatid, schema_ver, stats_schema_ver, type, 
            userstat, sysstat, indexdel, refdate, version, 
            deltrig, instrig, updtrig, seltrig, category, cache
FROM sysobjects
LEFT JOIN systhingies ON
    sysobjects.col1=systhingies.col2
WHERE category = 0
    AND xtype IN ('U', 'P', 'FN', 'IF', 'TF')
ORDER BY 1
32
davidtbernal

最も多くの人がDID大文字と小文字を区別してエンコードする可能性がない場合、関連するエンコード(ASCII)がまだ発明されていないため、時間がありました。 ONLY SIX BITSが利用可能だった 。SQL IS最近、より低いケースレターは、まだプログラミングの慣行ではありませんでした。

それに注意してください 一部の人々の主張 データベースが緊急の感覚を取得し、クエリをより速く実行すること。

30
Lukas Eder

読むテキストの文字の10%未満は大文字です。したがって、私たちの脳は、大文字よりも小文字を認識することに熱心です。研究では、大文字のテキストを読むのに時間がかかることが示されています。次に例を示します。

http://www.guardian.co.uk/media/mind-your-language/2010/oct/04/new-york-street-signs-capitals

上記の例は、1つまたは2つの単語について話しているだけでも、違いがあることを強調しています。

21
AaronLS

これは、SQLが非常に古い言語( 1974 )であるため、想像されたとき、ほとんどのキーボードには小文字がなかったからです!言語ドキュメントは、当時の技術を単に反映したものです。

大文字を使用する正当な理由はありません。個人的には、SQLキーワードに大文字を使用しています。読むのが難しく、この日と年齢でばかげており、不必要です。 SQL言語は大文字と小文字を区別しないように定義されています。

16
Bohemian

大文字を使用するとキーワードの可視性が向上しますが、コードのハイライトとインデントで補うことができます。
クエリエディターやその他のツールはt-sqlコードの編集に驚異的なため、小文字を使用します。小指を拷問する必要はありません。

8
Ovidiu Pacurar

猿を見て、猿は私のためにやる。パターンマッチング-見たとおりに行うと、句の構造が精神的に簡単に揃います。

8
dkretz

大文字は読みにくくなります。すべての単語のアウトラインはボックスのような形をしています。子孫やアセンダーはありません。小文字のFTW!

7
Lance Fisher

もっと読みやすいと思います。各句の先頭に改行を入れ、句間をインデントすることも同じです。

5
Mark Bostleman

大文字を使い続ける理由の1つは、あなた(または他の誰か)がメモ帳のようなものでコードを表示しているときに、読みやすくすることです。つまり、「キーワード」とテーブル名、SP、UDFなどを簡単に区別できます。

2
CPU_BUSY

フォーマット製品を試してください(Red GateのSQL Prompt/SQL Refactorを使用しています)。大文字の使用方法を設定でき、コードは常に一貫してフォーマットされます。小指を休ませて、コンピューターに任せましょう。

2
gfrizzle

適合のための適合以外、いいえ。これは非常に主観的なトピックですが、すべてのSQLで大文字と小文字を混在させることを好みます。 SQLの方がはるかに読みやすく、とにかくキーワードがすべて色分けされている現代のIDEでは何も失われません。

1
Charles Bretana

Microsoft SQL Server Management Studioのインテリセンス/オートコンプリートでは、予約語に大文字または小文字を使用できますが、MAX()、SUM()などの大文字の関数呼び出しが可能です。

それでも、パーサーは、小文字バージョンのmax()およびsum()を処理できます。

これは、処刑の性質に関する曖昧さを意味するため、単に個人的な好みの問題です。

1
Bill

私はすべての大文字で書かれたものはどれも嫌いです(そしてすべての大文字をさらに入力するのは嫌いです)が、コミュニティに反するように自分を納得させることはできませんでした。いつものように、Vimとその関連パッケージは非常に多くの問題の解決策です。

http://www.vim.org/scripts/script.php?script_id=305

通常どおり入力するだけで、入力時にキーワードが自動的に大文字になります。私はすべてのあいまいなSQL呪文を使用したわけではありませんが、まだ失敗していません。

0