SQLite - LIKE句:初学者向けの親切なガイド
こんにちは、将来のデータベースの魔法使いさんたち!今日は、SQLiteの世界に踏み込み、最も強力で柔軟性のあるツールの一つ、LIKE句について学びます。プログラミングが初めての方でも安心してください。あなたの親切なガイドとして、ステップバイステップで説明しますので、一緒に深めましょう!
LIKE句とは?
巨大な図書館で本を探しているとしますが、标题の一部しか覚えていない場合、似ている标题の本を探したいと思いませんか?SQLiteでのLIKE句はまさにそのことを行います。データベース内のデータに対してです!
LIKE句はSQLクエリ内で特定のパターンを検索するために使用されます。正確な値がわからない場合でもデータを見つけることができる、非常に賢い検索機能です。
LIKE句の構文
LIKE句の基本的な構文を見てみましょう:
SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;
それぞれの部分の意味は以下の通りです:
-
SELECT
:結果に表示したい列を指定します。 -
FROM
:SQLiteが検索するテーブルを指定します。 -
WHERE
:データをフィルタリングする条件を指定します。 -
LIKE
:パターンマッチを使用することをSQLiteに伝えます。 -
pattern
:何を探しているかを指定します。
ワイルドカード文字
具体例に移る前に、LIKE句が非常に強力な理由となる2つの特別な文字について学びましょう:
-
%
(パーセント記号):0文字、1文字、または複数の文字を表します。 -
_
(アンダースコア):1文字を表します。
これらはカードゲームのジョーカーのように、検索パターン内の他の文字の代わりに立ちます。
LIKE句の具体例
では、実際の例を見てみましょう。books
というテーブルがあり、id
、title
、author
という列があるとします。
例1: "The"で始まる标题の本を探す
SELECT title
FROM books
WHERE title LIKE 'The%';
このクエリは、"The"で始まるすべての本の标题を返します。末尾の%
は「それに続く何か」を意味します。
結果は以下の通り lehet:
- The Great Gatsby
- The Catcher in the Rye
- The Hobbit
例2: "of"を含む标题の本を探す
SELECT title
FROM books
WHERE title LIKE '%of%';
これは、标题に「of」がどこにでも含まれている本を探します。両端の%
は「それ以前およびそれ以降の何か」を意味します。
結果は以下の通り lehet:
- The Grapes of Wrath
- Lord of the Rings
- Of Mice and Men
例3: 特定の頭文字を持つ著者を探す
SELECT author
FROM books
WHERE author LIKE 'J. %';
このクエリは、名前が「J. 」で始まり、スペースとそれに続く何かで終わる著者を探します。
以下のような結果が得られます:
- J. K. Rowling
- J. R. R. Tolkien
- J. D. Salinger
例4: ワイルドカードアンダースコアの使用
SELECT title
FROM books
WHERE title LIKE '___';
このクエリは、正好3文字の本の标题を探します。各_
は1文字を表します。
以下のような結果が得られます:
- Cat
- Dog
- Pig
例5: ワイルドカードの組み合わせ
SELECT title
FROM books
WHERE title LIKE 'The ___ of%';
このクエリは、标题が「The」で始まり、任意の3文字、次に「of」、そしてそれに続く何かで終わる本を探します。
以下のような結果が得られます:
- The Art of War
- The Joy of Cooking
- The Age of Innocence
大文字・小文字の区別
デフォルトでは、SQLiteのLIKE句は大文字・小文字を区別しません。つまり、'the%'は'The Great Gatsby'でも'the hobbit'でも一致します。しかし、大文字・小文字を区別したい場合は、LIKEの代わりにGLOB句を使用しますが、それはまた別の話です!
特殊文字のエスケープ
データ内で文字的な%
や_
を検索したい場合は、エスケープ文字\
を使用して特殊文字の前に置きます:
SELECT title
FROM books
WHERE title LIKE '%100\%%';
これは、「100%」で終わるタイトルを見つける場合に使用されます。
LIKEの実用的な用途
LIKE句は、多くの実世界のシナリオで非常に有用です:
- 部分的なメールアドレスによるユーザーの検索
- 製品の説明文中の一部による製品の検索
- ログエントリの日期パターンによるフィルタリング
- 特定の拡張子を持つファイルの検索
LIKE句のメソッド
以下の表は、LIKEで使用できる異なるパターンの摘要です:
パターン | 説明 | 例 |
---|---|---|
LIKE 'a%' | "a"で始まる任意の値を検索 | LIKE 'apple%'は"apple pie"に一致 |
LIKE '%a' | "a"で終わる任意の値を検索 | LIKE '%apple'は"pineapple"に一致 |
LIKE '%or%' | "or"を含む任意の値を検索 | LIKE '%book%'は"bookstore"に一致 |
LIKE '_r%' | 2番目の文字が"r"の任意の値を検索 | LIKE '_r%'は"brick"に一致 |
LIKE 'a_%' | "a"で始まり、少なくとも2文字の任意の値を検索 | LIKE 'a_%'は"apple"に一致 но "a"には一致しない |
LIKE 'a__%' | "a"で始まり、少なくとも3文字の任意の値を検索 | LIKE 'a__%'は"apple"に一致 но "ax"には一致しない |
結論
それでは、皆さん!SQLiteの強力なLIKE句について学びました。データベース内に非常に賢い検索エンジンを持っているようなものです。実践により完璧にするために、さまざまなパターンと組み合わせを試してみてください。
次回、データベースで何かを探す際に、正確な一致がなくても、LIKE句を新たな親友として思い出してください。柔軟で強力で、一度慣れると、それなしでは生きられないかも知れません!
codingを続け、好奇心を持ち続け、データの探求を楽しんでください!
Credits: Image by storyset