「途中まで同じ文字列を簡単に検索できないか、、」
本記事を見に来ていただいた方は、そのような悩みをお持ちかと思います。
そちらを解決できるのが、LIKE句になります。
本記事ではその記述方法について解説いたします!
SQLのLIKE句はじめに
LIKE句では、条件に合致する「イコール」でなくあいまい検索によるレコードの抽出が可能です。
途中まで同じ文字列を検索する場合などに、簡潔な記述ができます。
以降で基本用法と使用例を解説いたします!
LIKE句について
LIKE句はパターンマッチングを行うために使用されます。文字列の一部に特定のパターンが含まれているかどうかを検索するために使用されます。
LIKE句では、次のワイルドカード文字を使用することができます。
- %:0文字以上の任意の文字列を表します。
_
:任意の1文字を表します。
LIKE句の使用例
例1: 文字列の末尾が指定の文字列で終わる場合にマッチします。
SELECT *
FROM テーブル名
WHERE 列名 LIKE '%パターン'
例2: 文字列の先頭が指定の文字列で始まる場合にマッチします。
SELECT *
FROM テーブル名
WHERE 列名 LIKE 'パターン%'
例3: 文字列の中に指定の文字列が含まれる場合にマッチします。
SELECT *
FROM テーブル名
WHERE 列名 LIKE '%パターン%'
例4: 文字列の中に任意の1文字が存在する場合にマッチします。
SELECT *
FROM テーブル名
WHERE 列名 LIKE 'パタ_ン'
また、LIKE句でのあいまい検索のみでなく、リスト内の値のいずれかが列に含まれている行を返すIN句もあります。
以降ではそちらについても紹介いたします。
ここまで読んでいただきありがとうございます。
SQLでは、LIKEに限らず様々なケースで疑問を感じるかと思います。
「このようなケースの場合はどのように記述したらよいか、、」
「データサイエンティストになるにはどのように効率的に学習していったらよいか?」
など自己学習に不安がありましたら、以下のスクールのご活用もご検討ください!
リスト検索ができるIN句について
IN句の基本構文と使用例
SQLのIN句は、特定の値のリストに対する検索条件を指定するための構文です。この構文を使用すると、複数の値を含む列の結果をフィルタリングすることができます。
IN句は次のような形式で使用されます。
SELECT 列名
FROM テーブル名
WHERE 列名 IN (値1, 値2, 値3, ...)
列名
は検索したい列の名前です。テーブル名
は検索対象のテーブルの名前です。値1
,値2
,値3
などは、検索条件として指定したい値のリストです。
IN句は、指定された値のいずれかが列に含まれている行を返します。
例えば、以下のクエリは、顧客が特定の国に住んでいる場合にその顧客の名前を返します。
SELECT name
FROM customers
WHERE country IN ('USA', 'Canada', 'Mexico')
このクエリでは、’USA’、’Canada’、’Mexico’ のいずれかに住んでいる顧客の名前を取得します。
NOT IN句でのIN句とは逆の指定方法
NOT IN句は、IN句とは逆の条件を指定するための構文です。NOT IN句は、指定された値のいずれとも一致しない行を返します。
基本構文はIN句と同様であり、例えば以下のクエリは特定の国に住んでいない顧客の名前を返します。
SELECT name
FROM customers
WHERE country NOT IN ('USA', 'Canada', 'Mexico')
このクエリでは、’USA’、’Canada’、’Mexico’ のいずれにも住んでいない顧客の名前を取得します。
SQL参考文献
SQL学び始めの時はこちらの本を参考にしていました。
DBやテーブルの構造から、よく使う関数などがまとめられています。基礎を身につけたい方におススメかと思います。
SQL文法関連記事
そのほか、SQL関連記事をこちらにまとめておりますのでご参考ください。
> Coffee Tech Blog SQL関連記事
もしIT業界への転職でお困りでしたら、下記サービスのご活用をご検討ください!
私は転職の際にGeeklyを活用させて頂き、ご縁を頂くことができました。
SQLのLIKE句まとめ
以上のように、LIKE句ではあいまい検索によるデータ抽出を行うことができます。
また、IN句ではリストに合致するレコードの抽出ができます。
要件に合わせて活用してみてください。
参考になれば幸いです☕
コメント