SQLメモ

  • 「SELECT+FROM+WHERE」が基本。
  • レコード=行。
  • 予約語は大文字で、列名やテーブル名は小文字で書こう。
  • GROUP BY句
    • 構文:「SELECT <列名> FROM <テーブル名> WHERE <条件> GROUP BY <列名>
    • 集計結果を<列名>でグルーピング(重複排除)する。
      • 全く同じレコードは一つにまとめられる。
      • 「SELECT 列1 列2 … GROUP BY 列2」とかはできるのだろうか?
        • できない。
          • SELECT 句で指定できるのは、GROUP BY 句で指定した列名のリスト(の一部)か集合関数だけ。
    • 全レコードを対象とする場合は、WHERE句不要。
  • HAVING句
    • 「GROUP BY句と組み合わせて」条件を指定できる。
    • WHERE句との違い:
      • WHERE句:1行づつ条件判定をする。
      • HAVING句:グループ(GROUP BY句で作られたレコード)に対して条件判定をする。
      • WHERE句で済むならWHERE句を使いましょう(前もってレコード数を削れる)。
  • 副問い合わせ
    • WHERE句の中にSELECT句。
      • 構文
SELECT <列A> FROM <テーブルI>
WHERE <列B> IN
    (SELECT <列B> FROM <テーブルJ>
     WHERE <列C> IN
        (SELECT FROM <列C> FROM <テーブルK>
        :
        )
    )