SQLite - WHERE句:正確なデータ検索の扉
こんにちは、SQLiteの熱心な学習者さんたち!データベースクエリの世界への興奮的な旅にあなたをお連れするのが楽しみです。今日は、SQLiteのツールキットの中でも特に強力な機能之一であるWHERE句について深く掘り下げます。このチュートリアルの終わりまでに、プロのようにデータをフィルタリングして、友人や将来の同僚を感心させることができるようになるでしょう!
WHERE句とは?
本題に入る前に、基本から始めましょう。巨大な図書館(あなたのデータベース)があって、その中に本(あなたのデータ)が並んでいます。では、2010年以降に書かれたミステリ小説を全部見つけたい場合どうしますか?WHERE句が役立ちます!まるで魔法のフィルタのように、あなたが探しているデータを的確に見つけ出す手助けをしてくれます。
WHERE句は、SQLiteでデータがクエリの結果に返されるための条件を指定するために使用されます。まるでデータベースに「あの特定の情報だけを見せてくれ」と言っているようなものです。
文法:WHERE句の構文
WHERE句の構文を見てみましょう。最初は少し難しそうに見えるかもしれませんが、ステップバイステップで解説します!
SELECT column1, column2, ...
FROM table_name
WHERE condition;
各部分の意味は以下の通りです:
-
SELECT
:どのカラムを見せたいかを指定します。 -
FROM
:SQLiteにどのテーブルを見るかを伝えます。 -
WHERE
:ここで魔法が起きます!あなたの条件をここに記述します。
条件は以下のものを含む一つ以上のexpressionで構成されます:
- 比較演算子(=、<>、<、>、<=、>=)
- 論理演算子(AND、OR、NOT)
- 特殊演算子(BETWEEN、LIKE、IN)
具体的な例を見て、これをより明確にしましょう!
例:WHERE句の実践
例1:基本的な比較
例えば、students
という名前のテーブルがあり、id
、name
、age
というカラムがあります。それでは、18歳の学生を全部見つけたいと思います。
SELECT name
FROM students
WHERE age = 18;
このクエリは、正に18歳の学生すべての名前を返します。シンプルですね?
例2:複数の条件
では、18歳で名前が'A'で始まる学生を探したい場合どうしますか?
SELECT name, age
FROM students
WHERE age = 18 AND name LIKE 'A%';
このクエリは以下の2つの条件を組み合わせています:
-
age = 18
:学生は18歳である必要があります。 -
name LIKE 'A%'
:学生の名前は'A'で始まらなければなりません。%
は「後ろに任意の文字が続く」というワイルドカードを意味します。
例3:範囲クエリ
では、18歳から22歳までの学生を見つけたい場合はどうしますか?
SELECT name, age
FROM students
WHERE age BETWEEN 18 AND 22;
BETWEEN
演算子は範囲を指定するのに便利です。このクエリは18歳から22歳までの学生すべてを返します。
例4:IN演算子
特定の学年に所属する学生を見つけたい場合はどうしますか?
SELECT name, grade
FROM students
WHERE grade IN (9, 10, 11);
IN
演算子は複数の値を指定するのに使用します。このクエリは9年生、10年生、11年生の学生を返します。
例5:異なる条件の組み合わせ
それでは、全部を組み合わせてみましょう。以下の条件を満たす学生を見つけたいと思います:
- 18歳であるか、12年生である
- そして、名前が'A'または'B'で始まる
SELECT name, age, grade
FROM students
WHERE (age = 18 OR grade = 12)
AND (name LIKE 'A%' OR name LIKE 'B%');
このクエリは、条件をグループ化して異なる比較を組み合わせる方法を示しています。
一般的なWHERE句の演算子
以下は、WHERE句で最もよく使用される演算子の一覧です:
演算子 | 説明 | 例 |
---|---|---|
= | 等しい | WHERE age = 18 |
<> or != | 等しくない | WHERE grade <> 12 |
> | より大きい | WHERE score > 90 |
< | より小さい | WHERE price < 50 |
>= | より大きいか等しい | WHERE quantity >= 100 |
<= | より小さいか等しい | WHERE year <= 2020 |
BETWEEN | 範囲内 | WHERE age BETWEEN 18 AND 25 |
LIKE | パターン一致 | WHERE name LIKE 'J%' |
IN | 複数の値 | WHERE country IN ('USA', 'UK', 'Canada') |
AND | 条件を組み合わせる(すべてが真) | WHERE age > 18 AND grade = 12 |
OR | 条件を組み合わせる(少なくとも一つが真) | WHERE subject = 'Math' OR subject = 'Science' |
NOT | 条件を否定 | WHERE NOT grade = 12 |
結論:新しいデータフィルタリングのスーパーパワー
おめでとうございます!あなたはSQLiteの強力なツールを手に入れました。WHERE句は、大量の情報を整理して正確なデータを見つけるためのチケットです。
忘れないでください、練習は完璧を生みます。自分でデータベースを作成し、さまざまなWHERE句を試してみてください。すぐに、熟練したプロのようにデータをクエリするようになるでしょう!
SQLiteの旅を続ける中で、WHERE句はただの始まりです。さらに高度なクエリ技術が待っています。でも今は、データの達人への一大歩を踏み出したことを褒めてあげてください!
ハッピークエリング、そしてあなたのデータが常に良くフィルタリングされることを祈っています!
Credits: Image by storyset