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アソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。

この記事について

データサイエンティスト検定スタディが作成した教材です。運営について・記事の作り方

試験についてはこちらをご覧ください: データサイエンティスト協会 公式サイト

この記事を共有