Kodokon kodokon.com

SELECTとWHERE:データの読み取りとフィルタリング

SELECTで列を選び、WHEREで行をフィルタリングし、LIKEでパターンを検索する方法を学びましょう。

8 分 · 3 問

このレッスンを Kodokon で開く

新しいセッションを始める場合は、まずレッスン1のCREATE TABLEINSERTスクリプトをもう一度実行しましょう。SELECTクエリはデータを一切変更せずに読み取ります。SELECTという語のあとに、表示したい列を並べます。これは射影(列の選択)と呼ばれます。FROMのあとには、読み取るテーブルを指定します。

SQL
SELECT title, price FROM books;
射影:titleとpriceの列だけ

特定のだけを残すには、条件を続けたWHERE句を加えます。条件は演算子を使って列と値を比較します。=(等しい)、<>または!=(等しくない)、<(より小さい)、>(より大きい)、<=>=です。おさらいですが、テキストの値はシングルクォートで囲んで書きます。

SQL
SELECT * FROM books WHERE genre = 'sf';

SELECT title, year FROM books WHERE year < 1950;
最初は4行、二番目も4行を返す

複数の条件を組み合わせられます。ANDは両方が真であることを求め、ORは少なくとも一方を求め、NOTは条件を反転させます。優先順位に迷ったら、丸括弧を加えましょう。

SQL
SELECT title, price FROM books
WHERE genre = 'sf' AND price < 8;

SELECT title FROM books
WHERE genre = 'conte' OR genre = 'aventure';
AND:2行(1984、Les Robots)、OR:3行

最後に、LIKE演算子はテキストをパターンと比較します。%ワイルドカードは任意の文字の並び(空でも可)を表し、_はちょうど1文字を表します。たとえば、'D%'は「Dで始まる」を意味し、'%an%'は「anを含む」を意味します。

SQL
SELECT title FROM books WHERE author LIKE 'A%';

SELECT title FROM books WHERE title LIKE 'd%';

SELECT author FROM books WHERE author LIKE 'V_rne';
Aで始まる著者、dで始まるタイトル、そしてVerne

理解度チェック

このレッスンの要点をしっかり覚えているか確認しましょう。

  1. 本のタイトルだけを表示するクエリはどれですか?
    • SELECT * FROM books;
    • SELECT title FROM books;
    • SELECT books FROM title;
  2. 条件WHERE price < 7は何を返しますか?
    • 価格が7より厳密に小さい行
    • 価格がちょうど7の行
    • テーブルの最初の7行
  3. パターンLIKE 'D%'は何にマッチしますか?
    • 文字Dを含むテキスト
    • Dで終わるテキスト
    • Dで始まるテキスト