本記事では、海外のSQL学習サイト【SQL Bolt】を利用して、データベース初心者向けにSQLの基本を解説します。
第2回は「SQL Lesson 2: Queries with constraints (Pt. 1)」、制約条件つきのクエリについてです。
ざっくり和訳
前回のLesson1では、表の中から特定の列を取り出す方法を学びました。
今回は、表の中から特定の行を取り出す方法を解説していきます。
WHERE句で特定の行を取り出すSQL文
SELECT 列名1, 列名2, …
FROM テーブル名
WHERE 条件式;
WHEREの後ろに続く検索条件の部分には、「○○の列の値が△△である」というような条件式を書きます。
下の表はLesson1で登場した「犬」のSQLテーブルです。
種類 | 毛色 | しっぽの長さ(㎝) |
---|---|---|
パグ | 白 | 15 |
ビーグル | 茶色 | 10 |
この中から毛色が茶色の犬を探したい場合、WHEREの後ろの条件式は「毛色 = “茶色”」となります。
(例)しっぽの長さが10㎝である犬を探して、その行全体(すべての列)を取り出す場合のSQL文
SELECT * FROM 犬
WHERE しっぽの長さ = 10;
すべての列を取り出す場合は「SELECT * ~~」でしたね
AND・ORで複数の条件を設定する
先ほどは「毛色 = “茶色”」という簡単な条件を1つだけ書きましたが、WHEREに続く部分には複数の条件式を指定することができます。
- (条件1)AND(条件2)AND …
-
2つ以上の条件を同時に満たす行を探したい
- (条件1)OR(条件2)OR …
-
2つ以上の条件のうち、いずれかを満たす行を探したい
比較演算子・数値に関する条件式の書き方
数値の比較演算子 | 条件の意味 |
---|---|
= | 等しい |
!= | 等しくない |
< / > | ~より大きい / ~未満 |
<= / => | 以上 / 以下 |
条件式 | 条件の意味 |
---|---|
BETWEEN … AND ~ | …と~の間に含まれている |
NOT BETWEEN … AND ~ | …と~の間に含まれていない |
IN (…) | …に含まれる |
NOT IN (…) | …に含まれていない |
演習問題の和訳・解答
- 1. Find the movie with a row
id
of 6 -
【和訳】idが6である映画を探してください。
SELECT * FROM movies WHERE id = 6;
- 2. Find the movies released in the
year
s between 2000 and 2010 -
【和訳】2000年から2010年の間にリリースされた映画を探してください。
SELECT * FROM movies WHERE Year between 2000 AND 2010;
- 3. Find the movies not released in the
year
s between 2000 and 2010 -
【和訳】2000年から2010年の間にリリースされていない映画を探してください。
SELECT * FROM movies WHERE NOT Year between 2000 AND 2010;
- 4. Find the first 5 Pixar movies and their release
year
-
【和訳】Pixar の映画のうち、最初にリリースされた5つの映画を探してください。
SELECT * FROM movies WHERE Id between 1 AND 5;
【別解】Lesson2ではまだ学んでいませんが「LIMIT 数値」で指定した数だけ行を取り出すことができます。
SELECT * FROM movies LIMIT 5;
コメント