owned mediaウェブ制作に役立つコンテンツを発信中!

SQLで登場するSELECT文の基本構文について

最終更新日: Update!!
データベースに格納されているデータを操作する時に使用するSQLですが、今回はレコード検索の基本となるSELECT文について基本的な構文をまとめていきます。   SELECT文は主にデータベースからレコード(行)を取り出すときに使います。  
【問合せ】
列の取得 / SELECT〜FROM
SELECT 列1,列2,列3
 FROM 表A
//表Aにある列1、列2、列3を取り出す
    条件で絞り込み / 〜WHERE〜
SELECT 列1,列2,列3
 FROM 表A
 WHERE 条件
//表Aにある列1、列2、列3の条件に当てはまる行を取り出す
    条件で絞り込み(論理和) / 〜WHERE〜OR〜
SELECT *
 FROM 表A
 WHERE 条件1 OR 条件2 OR 条件3 
//表Aにおいて、条件1・条件2・条件3のいずれかに当てはまる行を取り出す
    条件で絞り込み(論理積) / 〜WHERE〜AND〜
SELECT *
 FROM 表A
 WHERE 条件1 AND 条件2 AND 条件3 
//表Aにおいて、条件1・条件2・条件3のすべてに当てはまる行を取り出す
    条件で絞り込み(複数選択) / 〜WHERE〜IN〜
SELECT *
 FROM 表A
 WHERE 列A IN (条件1,条件2,条件3) 
//表Aにおいて、条件1と条件2と条件3の各条件に当てはまる行を取り出す
    条件で絞り込み(範囲指定) / 〜WHERE〜BETWEEN AND〜
SELECT *
 FROM 表A
 WHERE 列A BETWEEN 条件1 AND 条件2
//表Aにおいて、条件1から条件2の範囲に当てはまる行を取り出す
    条件で絞り込み(検索照合) / 〜WHERE〜LIKE ワイルドカード
SELECT *
 FROM 表A
 WHERE 列A LIKE %キーワードA% 
//表Aにある列Aで、キーワードAが含まれる行を取り出す
   
【集合関数】
合計値 / 〜SUM〜
SELECT 列1 SUM (対象列)
 FROM 表A 
//表Aにある列1の値の合計を取り出す
    平均値 / 〜AVG〜
SELECT 列1 AVG (対象列)
 FROM 表A 
//表Aにある列1の値の平均を取り出す
    最大値 / 〜MAX〜
SELECT 列1 MAX (対象列)
 FROM 表A 
//表Aにある列1の値の最大を取り出す
    最小値 / 〜MIN〜
SELECT 列1 MIN (対象列)
 FROM 表A 
//表Aにある列1の値の最小を取り出す
   
【並べ替え・グループ化】
昇順・降順の並び替え / 〜ORDER BY〜
SELECT *
 FROM 表A
 ORDER BY (キー)列1 ASCもしくはDESC
//表Aにある列1をキー列とし昇順もしくは降順に取り出す
※ASC→昇順で並び替え(省略可能) ※DESC→降順で並び替え(省略可能)     グループ化 / 〜GROUP BY〜
SELECT 列1 SUM (対象列)
 FROM 表A
 GROUP BY 列1
//表Aにある列1の合計をグループ化して列1として抽出する
    グループへの条件追加 / 〜GROUP BY HAVING〜
SELECT 列1 SUM (対象列)
 FROM 表A
 GROUP BY 列1 HAVING 条件A
//表Aにある列1の合計をグループ化して抽出した列1に条件Aを追加する
   
【副問合せ】
複数にわたる表での照合一致 / IN(SELECT〜FROM〜)
SELECT 列A1,列A2,列A3
 FROM 表A
 WHERE 条件A IN(
         SELECT 列B1
         FROM 表B
         WHERE 条件B )
//表Bの列B1において条件Bと一致する、表Aの列A1、列A2、列A3で条件Aの行を取り出す
    複数にわたる表での照合一致 / NOT IN(SELECT〜FROM〜)
SELECT 列A1,列A2,列A3
 FROM 表A
 WHERE 条件A NOT IN(
         SELECT 列B1
         FROM 表B
         WHERE 条件B )
//表Bの列B1において条件Bと一致しない、表Aの列A1、列A2、列A3で条件Aの行を取り出す
    複数にわたる表での存在検査 / EXISTS(SELECT〜FROM〜)
SELECT 列A1,列A2,列A3
 FROM 表A
 WHERE 条件A EXISTS(
         SELECT 列B1
         FROM 表B
         WHERE 条件B )
//表Bの列B1において条件Bが存在する、表Aの列A1、列A2、列A3で条件Aの行を取り出す
    複数にわたる表での存在検査 / NOT EXISTS(SELECT〜FROM〜)
SELECT 列A1,列A2,列A3
 FROM 表A
 WHERE 条件A EXISTS(
         SELECT 列B1
         FROM 表B
         WHERE 条件B )
//表Bの列B1において条件Bが存在しない、表Aの列A1、列A2、列A3で条件Aの行を取り出す
   
  • はてなブックマーク
  • Pocket
  • Linkedin
  • Feedly

この記事を書いた人

Twitter

sponserd

    keyword search

    recent posts

    • Twitter
    • Github
    contact usscroll to top
      • Facebook
      • Twitter
      • Github
      • Instagram