0%

Programmingプログラミングナレッジ

Posted:2016.04.13

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

データベースに格納されているデータを操作する時に使用する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の行を取り出す

 

 

author
この記事を書いた人オガワ シンヤ
FacebookTwitter

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

制作のご依頼やお問い合わせ・パートナー業務提携のご相談はこちら

デザインやウェブ制作についてのご依頼やご相談、その他お問い合わせなどもお気軽にご連絡ください。フットワークの軽さやレスポンスの早さ、また豊富な経験や知識、技術を活かした対応力といったフリーランスクリエイターの強みでクライアント様、パートナー企業様のお力になります。デザインからコーディングやWordPress実装といったウェブサイト構築はもちろん、写真撮影や動画編集、コンテンツ制作からサイト運用サポートまで一括してお任せください。

ホームページ制作のご検討やウェブ運用でお悩みの経営者様や企業のウェブ担当者様をはじめ、個人で店舗を営んでいらっしゃるオーナー様、フリーで活動されているビジネスオーナー様はもちろんのこと、リソース不足でお困りの制作会社様、またクリエイターをお探しの代理店様も大歓迎です。

コンタクトをご希望の方はお手数ですが、下記よりお問い合わせフォームのページへアクセスしていただき、必要事項を入力の上メッセージを送信してください。確認でき次第すぐに折り返しご連絡致します。

コメントもお気軽にどうぞ

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

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。

CAPTCHA


ページトップへ
大阪市天王寺区のホームページ制作デザイン事務所(SOHO)DesignSupply.【デザインサプライ】