SQLのお勉強 16.like
2020-09-24
こんにちは、0371です。
今回は、SQLのお勉強をしたいと思います。
基本情報技術者試験で出題される範囲を中心に進めます。
お勉強
※ PostgreSQLはインストール済みかつ、パスも通しているという前提で進めていきます。
分からないという方は、以下の記事から始めてください。
dockerを使って、再構築が容易なSQLの練習場を作成する
"https://0371.blog/docker-sql"
前回の記事はこちら
SQLのお勉強 15.サブクエリ
"https://0371.blog/sql-15"
like
like
とは、文字列の部分一致検索のことを言います。
select 列名 from テーブル名 where 列名 like '文字列';
上記の文字列の部分には、%
もしくは、_
を入れます。
% // 0文字以上の任意の文字列
_ // 1文字の任意の文字列
_文字列 // 頭の一文字は任意
_文字列_ // 前後の一文字は任意
文字列_ // 末尾の一文字は任意
%文字列 // 頭の0文字以上は任意
%文字列% // 前後の0文字以上は任意
文字列% // 末尾の0文字以上は任意
___文字列% // 頭の三文字と、末尾の0文字以上は任意
部分一致には、前方一致、中間一致、後方一致の3種類があります。
試しに、前方一致を行ってみましょう。
商品分類で、「キッチン~」となっているデータを取得します。
select shohin_mei, shohin_bunrui from Shohin where shohin_bunrui like 'キッチン%';
結果は以下の通りです。
shohin_mei | shohin_bunrui
------------+---------------
包丁 | キッチン用品
圧力鍋 | キッチン用品
フォーク | キッチン用品
おろし金 | キッチン用品
(4 rows)
次に、中間一致をします。
「シャ」が含まれる商品名を探しましょう。
select shohin_mei, shohin_bunrui from Shohin where shohin_mei like '%シャ%';
出てきました。
shohin_mei | shohin_bunrui
----------------+---------------
Tシャツ | 衣服
カッターシャツ | 衣服
(2 rows)
ちなみに、検索文字列の頭を_
にするとこうなります。
select shohin_mei, shohin_bunrui from Shohin where shohin_mei like '_シャ%';
shohin_mei | shohin_bunrui
------------+---------------
Tシャツ | 衣服
(1 row)
次に、後方一致をします。
商品分類で、「~用品」となっているデータを取得します。
select shohin_mei, shohin_bunrui from Shohin where shohin_bunrui like '%用品';
結果は以下の通りです。
shohin_mei | shohin_bunrui
--------------+---------------
穴あけパンチ | 事務用品
包丁 | キッチン用品
圧力鍋 | キッチン用品
フォーク | キッチン用品
おろし金 | キッチン用品
ボールペン | 事務用品
(6 rows)
_
を使用して、事務用品だけを取得したい場合はこうなります。
select shohin_mei, shohin_bunrui from Shohin where shohin_bunrui like '__用品';
頭に_
を2つつけることで実現可能です。
shohin_mei | shohin_bunrui
--------------+---------------
穴あけパンチ | 事務用品
ボールペン | 事務用品
(2 rows)
今日はここまで。
参考書籍
SQL 第2版 ゼロからはじめるデータベース操作
"https://amzn.to/2QYMBJD"
今日の一言
like
が分かったのでSQL
はマスターしたも同然!!!!
次回の記事はこちら
SQLのお勉強 17.between
"https://0371.blog/sql-17"