SQL基礎(SELECT・WHERE・ORDER BY)

SQLの基本3要素を、典型クエリのコード読解で身につけます。

SQL の基本三本柱、SELECT・WHERE・ORDER BY。DS検定★で必出のコード読解パターン。

白峰 リリ(普段) 白峰 リリ

SQLって、データを取り出す言語だよね?

神楽 モニカ 先生(笑顔) 神楽 モニカ 先生

そう、SQLはリレーショナルデータベースを操作する言語。 まずはSELECT・WHERE・ORDER BYの3つを押さえましょう。

紅林 かえで(普段) 紅林 かえで

SELECT=取得する列、FROM=対象テーブル、WHERE=絞り込み条件、ORDER BY=並び替え。 この4つが基本構造。

藍沢 しずく(笑顔) 藍沢 しずく

実例が見たいですぅ♪

-- 売上が10000円以上の注文を、新しい順に取得
SELECT order_id, customer_id, amount, ordered_at
FROM orders
WHERE amount >= 10000
ORDER BY ordered_at DESC
LIMIT 20;
紅林 かえで(普段) 紅林 かえで

このクエリでは、(1)4列を選んで、(2)orders テーブルから、(3)amount が10000以上のものを、(4)ordered_at の降順で並べて、(5)上位20件を取得しています。 LIMITは行数制限ね。

白峰 リリ(笑い) 白峰 リリ

DESC は降順、ASC は昇順だよね?

神楽 モニカ 先生(普段) 神楽 モニカ 先生

その通り。 ORDER BY を省略すると並び順は保証されないので注意。

藍沢 しずく(普段) 藍沢 しずく

WHEREでNULLを扱うときって、ちょっと特別なんですよねぇ?

紅林 かえで(普段) 紅林 かえで

そうなの。 `column = NULL` と書いても True にはならないのよ。 NULL チェックには `column IS NULL` か `column IS NOT NULL` を使うのがルール。

白峰 リリ(普段) 白峰 リリ

他にWHEREで使える演算子は?

神楽 モニカ 先生(普段) 神楽 モニカ 先生

範囲: BETWEEN a AND b、 リスト: IN (a, b, c)、 文字列マッチ: LIKE 'パターン%'、 否定: NOT。 これらを組み合わせれば大抵のフィルタは書けるわ。

紅林 かえで(普段) 紅林 かえで

DS検定では『このSQLは何件返すか』『WHERE と AND/OR の優先順位』が問われやすい。 AND の方が OR より優先度が高いので、複合条件は括弧で明示するのが安全。

藍沢 しずく(笑顔) 藍沢 しずく

しっかり覚えますぅ♪

確認クイズ

次のSQLは何を表しているか。 SELECT * FROM users WHERE age >= 20 AND status = 'active' ORDER BY created_at DESC LIMIT 10;

  1. 20歳未満で非アクティブなユーザーを古い順に10件
  2. 20歳以上でアクティブなユーザーを登録新しい順に10件
  3. 全ユーザーを年齢の昇順で10件
  4. アクティブな全ユーザーを表示
こたえを見る

正解: 2. 20歳以上でアクティブなユーザーを登録新しい順に10件

20歳以上でアクティブなユーザーを登録新しい順に10件。 WHEREで2条件のAND、ORDER BY DESCで降順、LIMIT 10で件数制限という典型パターンです。

藍沢しずく、白峰リリが調理室でカップケーキ作りを楽しむ様子

🔖 この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。