【SQL 入門編#2】条件検索とテーブル結合について

WHERE句とJOIN句の使い方【条件検索とテーブル結合】

前回の記事では、SQLの基本的な操作(SELECT、INSERT、UPDATE、DELETE)について解説しました。

今回は、さらに応用的なSQLの操作として、データを条件付きで取得するWHERE句と、複数のテーブルから

データを結合して取得するJOIN句について説明します。

目次

1.WHERE句とは?

WHERE句は、データベースからデータを取得する際に、特定の条件を指定して絞り込むための文です。

例えば、次のようなテーブルがあったとします。

id名前年齢職業
1太郎28エンジニア
2花子25デザイナー
3次郎30マーケター
4三郎22学生

このテーブルから、年齢が30歳以上の人物を取得したい場合は以下のSQLを実行します。

SELECT * FROM 人物 WHERE 年齢 >= 30;

結果として、次郎のデータだけが取得されます。


2.複数条件の指定(AND, OR, NOT)

WHERE句では、複数の条件を組み合わせて使うこともできます。よく使われるのがANDORNOTです。

  • AND: すべての条件を満たすデータを取得
  • OR: いずれかの条件を満たすデータを取得
  • NOT: 条件に該当しないデータを取得

例えば、年齢が30歳以上かつ職業が「エンジニア」の人物を取得する場合は次のように書きます。

SELECT * FROM 人物 WHERE 年齢 >= 30 AND 職業 = 'エンジニア';

また、年齢が30歳未満の人物を除外したい場合はNOTを使います。

SELECT * FROM 人物 WHERE NOT 年齢 < 30;

3.JOIN句とは?

JOIN句は、複数のテーブルを結合してデータを取得するために使います。

実際のデータベースでは、異なるテーブルに分けられたデータを組み合わせて利用することがよくあります。

例えば、次の2つのテーブルがあるとします。

人物テーブル

id名前年齢職業
1太郎28エンジニア
2花子25デザイナー
3次郎30マーケター

会社テーブル

会社_id名前会社名
1太郎株式会社A
2花子株式会社B
3次郎株式会社C

人物テーブルと会社テーブルを結合して、各人物の会社情報を一緒に取得したい場合はJOIN句を使います。


4.INNER JOINの使い方

INNER JOINは、結合する両方のテーブルに共通するデータだけを取得します。

例えば、人物と会社を名前で結合する場合は以下のSQLになります。

SELECT 人物.名前, 人物.職業, 会社.会社名
FROM 人物
INNER JOIN 会社 ON 人物.名前 = 会社.名前;
結果は以下のようになります。
名前職業会社名
太郎エンジニア株式会社A
花子デザイナー株式会社B
次郎マーケター株式会社C

5.LEFT JOINとRIGHT JOINの使い方

LEFT JOINは、左側のテーブルにあるすべてのデータを取得し、右側のテーブルに一致するデータがない場合は

NULLを返します。

例えば、左側の人物テーブルにあるすべてのデータを取得し、会社テーブルに該当しない場合はNULLを返す

SQLは以下のようになります。

SELECT 人物.名前, 人物.職業, 会社.会社名
FROM 人物
LEFT JOIN 会社 ON 人物.名前 = 会社.名前;
RIGHT JOINはその逆で、右側のテーブルを優先します。

6.まとめ

この記事では、SQLのWHERE句による条件付き検索と、JOIN句によるテーブル結合について解説しました。

これらの技術を使うことで、より複雑なデータベース操作が可能になります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次