【SQL入門講座】7. LIKE <未経験からデータサイエンティストを目指す!転職支援>

目次

「LIKE」 < パターンマッチングでのデータの抽出方法 >

例えば、20代の人だけを抽出するときのように、曖昧な条件や部分的に一致する条件のデータを抽出するためにはどうすればいいの?

では、実際のデータを用いてやってみましょう!
以下のデータは、1896年から2016年までに開催された全オリンピックのアスリートとイベントのデータです。(テーブル名:OLYMPICS_athlete_events)

https://domohelp.domo.com/hc/ja/articles/360043931814-
OLYMPICS_athlete_eventsテーブル名
IDデータセット内の順番に基づいてアスリートに割り当てられたID番号
Nameアスリートの名前
Sexアスリートの性別
Ageアスリートの年齢
Heightアスリートの身長(センチメートル単位)
Weightアスリートの体重(キログラム単位)
Teamこのアスリートが所属する国
NOCアスリートが所属する国を表す3文字の略語
Gamesこのオリンピック大会の開催年と季節
Year大会の開催年
Season大会の季節(SummerまたはWinter)
Cityオリンピックが開催された都市
Sport大会の種目
Event大会の名前
Medalアスリートが獲得したメダル(獲得したメダルがない場合は「NA」)
OLYMPICS_athlete_events

この中から例えば、20代の人だけのデータのように、曖昧な条件や部分的に一致する条件のデータを抽出する際は「LIKE」「%」を使用します。
以下のようにSQLを記述します。

使い方

前方一致:’条件

SELECT カラム名
FROM テーブル名
WHERE カラム名 LIKE ‘条件%‘ ;

後方一致:’条件’

SELECT カラム名
FROM テーブル名
WHERE カラム名 LIKE%条件’ ;

両端一致:’条件条件’

SELECT カラム名
FROM テーブル名
WHERE カラム名 LIKE ‘条件%条件’ ;

パターン意味
%〇〇% , _〇〇_両端一致:「○○」を含む文字列
〇〇% , 〇〇_前方一致:「○○」で始まる文字列
%〇〇 , _〇〇後方一致:「○○」で始まる文字列

・「%」は任意の0文字以上の文字列が入ります
・「_」(アンダースコア)は任意の1文字で、同様に「__」任意の2文字になります
・LIKEの前にNOTをつけると(NOT LIKE)それ以外のデータを抽出することができます

実践

Ageが2%(%:任意の0文字以上の文字列)

 SELECT ID,Name,Sex,Age
 FROM OLYMPICS_athlete_events
 WHERE Age LIKE '2%' ;

または

Ageが2_(_:任意の1文字)

 SELECT ID,Name,Sex,Age
 FROM OLYMPICS_athlete_events
 WHERE Age LIKE '2_' ;
実行結果

ふむふむなるほど〜、一部分が一致するように条件を指定する際は、LIKEと「」や「_」を使用するんですね!
また、NOT LIKEのようにすると指定した条件と一致しないデータを取得できるんですね!

そういうことです。

ESCAPE処理 <ワイルドカード:特殊記号>

でも「%」や「_」を指定条件としてデータを抽出したいときはどうすればいいのだろうか…

いい疑問ですね。
そんなときはESCAPEを使用します。

「%」「_」は先ほど学んだようにある効果を表す特殊記号となっています。
そのため、例えばデータとして「A_001」や「B_002」のような「_」を含んだ文字列を取得したい場合は、特殊記号の前に‘任意の文字列’をつけ、最後に「ESCAPE = ‘任意の文字列’」をつける必要があります。(※一般的には任意の文字列は「?」を用いることが多いです。)
そうすることによって、‘任意の文字列’の直後の特殊記号は文字列として扱われます。

以下のように記述します。

「?」の直後の特殊記号「_」は文字列として扱われます

 SELECT ID,Name,Sex,Age
 FROM OLYMPICS_athlete_events
 WHERE Age LIKE '%?_%' ESCAPE = '?' ;

なるほど!そうやって書くのか〜〜
ESCAPE処理をすればいいだけなんですね!簡単だ!

そういうことです。

演習

それでは演習をしてみましょう。

準備中

まとめ

  • パターンマッチング:LIKE(※NOT LIKEでそれ以外のパターン)
  • 任意の0文字以上:「%」
  • 任意の文字数:「_」
  • 特殊記号を含む文字列検索:ESCAPE処理

未経験からデータサイエンティストへ!転職支援!

ROYAL AGENT&Co.では、全コンサルタントが5年以上のキャリアコンサルティング経験を持ち、データサイエンティストやAI,DX人材のご紹介に強い転職支援を行っております。

候補者様一人ひとりのキャリアに寄り添ったご支援を心がけ、無闇に求人をご紹介するのではなく、丁寧なカウンセリングを通してご志向性にあった求人をピンポイントにご紹介させて頂いております。未経験からのデータサイエンティスト転職支援実績も多数ございます。

無理な勧誘など一切ありませんので、キャリアのご相談等、まずはお気軽にお問合せください!心よりお待ちしております。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次