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

MySQL 2016.04.13

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

Tags: ,
最終更新日: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の行を取り出す

 

 

この記事を書いた人

オガワ シンヤ

合同会社デザインサプライ代表兼CEO / ディレクター・ウェブデザイナー・フロントエンドエンジニアをやっています。「ウェブとデザインでヒト・モノ・サービスを繋げ新しい価値を生み出す」をコンセプトに日々奮闘中!制作中はチョコレートが欠かせない三十路Webクリエイター。

  • Twitter

コメントフォーム

記事に関するご質問やご意見などありましたら下記のコメントフォームよりお気軽に投稿ください。なおメールアドレスは公開されませんのでご安心ください。

内容に問題なければ、お名前・ハンドルネームとメールアドレスを入力いただき、下記の「コメントを送信」ボタンを押してください。

CAPTCHA


この記事もよく読まれています

Scroll to Top
ご質問・ご相談はありませんか ?