これらは、自分の使用を検討し、概念のいくつかの良い要約という理論です私がまとめた本を読んでいる、スプレーしないように、労働の成果を尊重してくださいしないでください、ありがとうございました
SQLを学びます
表は、構造化文書は、特定のタイプのデータを格納するために使用され
テーブルに格納されたデータは、データまたはリストのものと同じタイプであります
データベースの各テーブルには、自分自身を識別するための名前を持っています。名前は、同じ名前を持つ他のデータベース・テーブルという、ユニークです。
この説明は、いわゆるモード(スキーマ)が設定されているデータベース・モデルは、特定のテーブルを記述するために使用されてもよく、(テーブル間の関係を、どこ)を記述するために使用することができるデータベース全体。
さらに悪いことに、偶然に同じデータ型が異なるDBMSで異なる名前を持っています。このユーザーのために、念頭に置いて、これらの違いを保つためにテーブル構造を作成することが重要である方法はありません。
データの取得
複数のSQL文はセミコロンでなければなりません(;)区切り。単一のSQLステートメントの後にセミコロンを追加する必要がありますほとんどのDBMSは、単一のSQLステートメントの後にセミコロンを必要としませんが、DBMSがあります。もちろん、あなたが好む場合は、必ずセミコロンを追加することができます。実際には、必ずしも必要でない場合でも、セミコロンを追加して、確かに害を行いません。
ヒント:SQL文およびケース
くださいノート、SQL文では大文字と小文字は区別されていないので、選択し、[選択]は同じです。同様に、書かれた選択は重要ではありません。多くの開発者は、これは読んでデバッグしやすいコードになり、大文字でSQLのキーワードにSQLを使用することを好む、と小文字のテーブル名やカラム名。しかし、我々は、SQLは大文字と小文字を区別はありませんが、テーブル名、カラム名と値が異なるかもしれないが(これ、構成する特定のDBMSと方法によって異なります)ことを認識しなければなりません。
ほとんどのDBMSは、単一のSQLステートメントの後にセミコロンを必要としませんが、DBMSがあり、単一のSQLステートメントの後にセミコロンを追加する必要があります
もちろん、あなたが好む場合は、必ずセミコロンを追加することができます。実際には、必ずしも必要でない場合でも、セミコロンを追加して、確かに害を行いません。
SQL文は、大文字と小文字が区別されないため、同じSELECTを選択します
SQL文を処理する場合、すべてのスペースは無視されます
ほとんどのSQL開発者は簡単に複数の行にSQL文を読んで、デバッグすると信じています。
あなたが本当にテーブルの各列を必要としない限り、一般的には、それは*ワイルドカードを使用するのが最善ではないだろう。ワイルドカードの使用は、あなたが自分自身を保存することができますが、明示的に目的の列は表示されませんが、一般的にパフォーマンスおよび検索アプリケーションを軽減列を取得する必要はありません。
どのように多くの行ほとんどを制限するために、TOPキーワードを使って戻します
あなたのデータをソート
ORDER BY句は、1つ以上の列の名前を取り、それに応じて出力をソート
ORDER BY句を指定する場合、それがSELECT文の最後の句であることを確認する必要があります。それが最後の句ではない場合、エラーメッセージが表示されます。
プレスいくつかの列がソート、単純に(ちょうど複数の列を選択するときのようにする)ことができるとの間カンマで区切られたカラム名、カラム名を指定します。
2 BY ORDERは、第2の行prod_priceのSELECTリスト並び順を表します。ORDER BY 2、3つの手段プレスprod_priceは、その後、ソートPROD_NAME。
まず第一に、明示的に指定した列名は、列名によって間違ったソートが発生することがありません。
あなたが複数の列で降順にソートしたい場合は、各列のDESCキーワードを指定する必要があります。
ASCはほとんど使用、(どちらも指定もDESC ASC、ASCが想定されている場合)デフォルトは昇順ですので。
データのフィルタリング
単一引用符は、文字列を定義するために使用されます。比較された文字列の値は、引用符を定義する必要がある場合
!=と<>しばしば互換的に使用されます。
Microsoft Accessのサポート<>をサポートしていません!=
マッチング間に指定の開始および終了値を含む全ての値は、範囲。
データフィルタリング、フィルタは、返されたデータ中に実際に存在する行を含むNULL列を検証しなければなりません。
高度なデータのフィルタリング
SQL(ほとんどの言語のような)OR演算子治療前、優先AND演算子に。
最初のDBMSや括弧内の条件をフィルターだから、括弧ANDまたはOR演算子の評価順序よりも高いです。
WHERE句いつでも持っANDとOR演算子は、明示的にオペレータの括弧をグループ化する必要があります。あなたが望んだとして、それがない場合でも、デフォルトの評価順に過度の信頼を置かないでください。害に括弧を使用して、それが曖昧さを排除することができます。
IN演算子は、一般的に速いグループOR演算子よりも実行するには、(いくつかの法的なオプション上記のこの例では、パフォーマンスの違いを参照してください)。
最大の利点は、WHERE句を構築し、より動的にすることができるが、他方にSELECT文を含めることができますです
その後のネガティブキーワードのWHERE句の条件。
ワイルドカードでろ過
唯一のテキストフィールド(文字列)を検索し、ワイルドカード、非テキストデータ型のフィールドには、検索、ワイルドカードすることはできません。
あなたはMicrosoft Accessを使用している場合は、代わりに%の*を使用する必要があります。
よりよい解決策は機能してスペースを削除することです。
ワイルドカード%が何かを一致させるように見えるが、例外があり、これはNULLです。PROD_NAME LIKE「%」をNULLに製品ラインの名前と一致しない句。
この接頭辞^(キャレット)とワイルドカード文字はマイナスに
JとM以外の任意の文字を開始任意の連絡先の名前で(前の例とは対照的に):
あなたはMicrosoft Accessを使用している場合は、使用する必要があります!^コレクションを否定するのではなく、それゆえ、[!JM]ではなく[^ JM]を使用します。
ワイルドカードを先頭に配置され、それが最も遅い検索です。
データ処理機能を使用します
SOUNDEXは、英数字モードの音声表現を記述する任意のアルゴリズムにテキスト文字列です。
SOUNDEXは、英数字モードの音声表現を記述する任意のアルゴリズムにテキスト文字列です。SOUNDEXは、同様の文字や音節の発音を検討し、代わりに文字の発音の比較に文字列を比較することが可能となります。
今すぐ検索するSOUNDEX()関数を使用してみてください、それはすべての発音がマイケル・グリーン連絡先の名前と似て一致します。
入力します▼
SELECT cust_name, cust_contact
FROM Customers
WHERE SOUNDEX(cust_contact) = SOUNDEX('Michael Green');
出力▼
CUST_NAME cust_contact
キッズ・プレイスミシェル・グリーン
集約されたデータ
注:のためにのみ、単一の列
AVG()は、特定の列の平均値を決定するために使用することができ、列名は、関数のパラメータとして与えられなければなりません。複数列の平均値を得るためには、AVG()関数の複数を使用しなければなりません。
説明:NULL値
AVG(OK機能は、列がNULLである無視します)。
COUNT()関数
COUNT()関数がカウントされます。利用可能なCOUNT()は満たす特定の基準そのテーブル内の行または行の数を決定します。
COUNT()関数は、2つの方法で使用される:
□テーブル内の行の数をカウントするCOUNT(*)を使用して、関係なく、表の列のNULL値(NULL)が含まれ
AVG()関数は、行の列の値がNULLである無視します。
表の列に関係なく、テーブルの行数をカウントするための使用COUNT(*)はヌル値(NULL)または非ヌル値を含みます。
特定の列の値のカウントのNULL値の列を有する使用カウント(列)は無視されます。
説明:NULL値
指定した列名、COUNT()関数は、指定された列が空の行で無視しますが、COUNT()関数は、アスタリスク(*)を使用した場合、無視されていない場合。
MAX()関数
MAX()は、指定された列内の最大値を返します。MAXは()次のようにカラム名を指定する必要があります。
あなたは、列名を指定した場合、COUNT()関数は、指定された列が空の行で無視しますが、COUNT()関数は、アスタリスク(*)を使用した場合、無視されていません。
MAX()関数は、行の列の値がNULLである無視します。
MIN()関数は、行の列の値がNULLである無視します。
SUM()関数無視行列の値はNULLです。
あなたは、列名を指定した場合のみ)(DISTINCT COUNTを使用することができます。DISTINCT缶は、COUNT(*)を使用できません。同様に、DISTINCT列名が使用され、または計算式に使用されていないする必要があります。
ヒント:MIN()とMAX(DISTINCT用)は、
DISTINCTが、技術的にMIN()およびMAX()を使用することができますが、これは実際には価値がありません。列の最小値と最大値は、異なる値かどうか、結果は同じである考えます。
注:他のパラメータが集まっ
DISTINCTと、すべてのパラメータがここで紹介するほかに、いくつかのDBMSは、このような計算クエリ結果のTOPとTOP PERCENTサブセットのサポートなど、他のパラメータを、サポートしています。パラメータは、該当するマニュアルを参照してください特定のDBMSのサポートを理解するために。
あなたは、列名を指定した場合のみ)(DISTINCT COUNTを使用することができます。DISTINCT缶は、COUNT(*)を使用できません。同様に、DISTINCT列名が使用され、または計算式に使用されていないする必要があります