Previous: null値
Up: where句
Previous Page: null値

文字列の比較 likeとワイルドカード

SQLでは、いままで見てきたような、与えられた文字列と完全に一致する文字列を含む 行を検索するだけでなく、「技術」という言葉がつく出版社を調べたいとか、「データ ベース」を書名に含む本があるかどうかを調べたいといった検索が可能である。 多くの読者は、Ms-dosやUNIXでのファイル名の指定に、「ワイルドカード」を使った 経験があることと思うが、SQLでも、同じ様な考え方を採用している。ただ、注意して欲 しいのは、SQLでの「ワイルドカード」文字は、次にみるように、'%'と'_'であり、 Ms-dosやUNIXのそれとは異なっていることである。

%	任意の長さ(ゼロを含む)の文字列
	_	任意の1文字

また、「ワイルドカード」を使うためには、where句の中で、likeを用いる。

次の例での、'データベース後ろに何文字かが続く文字列」という意味になり、「データベース」という言葉で始ま る書名の本を検索することになる。

例 24: 「データベース」で始まる書名の本を検索

select 書名
	from   書籍台帳
	where  書名 like 'データベース%'

書名 --------------------------------------------------------------------- データベース応用テクニック データベースパラダイス データベース・マーケティングの戦略と戦術 データベース白書 データベース情報探索術

(5 rows affected)

次の'%データベース'という指定は、逆に、書名の最後に「データベース」が入っている 本を探すことになる。

例 25: 「データベース」で終わる書名の本を検索

select 書名
	from   書籍台帳
	where  書名 like '%データベース'

書名 --------------------------------------------------------------------- 情報化社会のデータベース 分類と索引とデータベース 現行法令データベース Harvard business reviewデータベース 小学校国語教科書データベース 情報検索のためのデータベース

(6 rows affected)

最初でも最後でも、ともかく書名中に「データベース」という言葉が入っている本を検 索したいときには、'%データベース%'といった指定を用いればいい。

例 26: 「データベース」という言葉を含む本を検索

select 書名
	from   書籍台帳
	where  書名 like '%データベース%'

書名 --------------------------------------------------------------------- データベース応用テクニック リレーショナルデータベース入門 間違いだらけのデータベース選び 書誌データベース構築法 データベースパラダイス 情報化社会のデータベース データベース・マーケティングの戦略と戦術 データベース白書 NIFTY‐Serveデータベース徹底活用マニュアル わかりやすいデータベースの検索 データベース情報探索術 分類と索引とデータベース 商用データベース利用ハンドブック オンライン・データベース・ディレクトリー オンライン・データベース・ディレクトリー 文化史研究支援「源氏物語」語彙データベース報告書 現行法令データベース Harvard business reviewデータベース 小学校国語教科書データベース 全文データベースの発達と出版活動 情報検索のためのデータベース

(21 rows affected)

この検索例には、例25、例26の検索結果がすべて含まれている。それは'%'が、「ゼロ を含む」任意の長さの文字列とマッチするからである。もしも、例18、例19に含まれな い、すなわち、書名の途中に「データベース」という文字列を含む本を検索したいのな ら、'%データベース%'の代わりに、'%_データベース_%'とでも指定すればいい。 なぜなら、この場合には、前後に'_'があることによって、少なくとも一文字は 文字列「データベース」の前後にあることが、保障されるからである。

ワイルド・カード'_'は、さらに次のような使い方が可能である。

例 27: 二文字の書名の本を検索

select 書名
	from   書籍台帳
	where  書名 like '__'

この例では、2文字の書名の本が検索される。こうして、1文字の書名の本の検索 ( 書名 like '_' )や、3文字の書名で最後が「論」である書名の検索 ( 書名 like '__論 ')等が可能となる。

ワイルド・カードを用いた検索は、非常に有用である。以下、いくつかの例を挙げてお こう。

例 28: 「技術」という言葉を含む出版社を検索

select 出版社コード,出版社
	from   出版社一覧
	where  出版社 like '%技術%'

出版社コード 出版社 ------------- ---------------------------------- 0142 アグネ技術センター 0814 応用技術出版 0912 科学技術センター 1415 技術書院 1477 技術評論社 1504 技術と人間 1511 技術新聞社 1591 技術出版 1877 建築技術 2202 公害対策技術同友会 2864 産業技術センター 3220 自動車技術会 3895 繊維技術研究社 ........... ユ119 有成社技術出版部 リ099 林業科学技術振興所

(107 rows affected)

例 29: 「アスキー」出版社の出版社コードを検索

select 出版社コード,出版社
	from   出版社一覧
	where  出版社 like '%アスキー%'

出版社コード 出版社 ------------- ---------------------------------- 0177 アスキー 7220 ビジネス・アスキー

(2 rows affected)

例 30: 「データベース」か「UNIX」という言葉を含む書籍を検索

select 書名
	from   書籍台帳
	where  書名 like '%データベース%' or  書名 like '%UNIX%'

書名 --------------------------------------------------------------------- データベース応用テクニック DOSユーザのUNIX入門 リレーショナルデータベース入門 間違いだらけのデータベース選び UNIXコミュニケーションズ MS‐DOS to UNIX 書誌データベース構築法 データベースパラダイス 情報化社会のデータベース UNIX system V/386リリース4ユーザ・リファレンス・マ・ UNIX system /386リリース4プログラマ・リファレンス。 データベース・マーケティングの戦略と戦術 UNIX日記 データベース白書 UNIX system V/386リリース4システム管理者リファレン・ UNIX4.3BSDの設計と実装 ザ・UNIX 一般教養としてのUNIX UNIXシステムチューニング UNIX Cプログラミング NIFTY‐Serveデータベース徹底活用マニュアル わかりやすいデータベースの検索 エンドユーザのためのUNIX バークレーUNIX データベース情報探索術 Mac+UNIXネットワーク入門 UNIXシステムプログラミング エンジニアーズUNIX 演習UNIX UNIX System リリース4国際化機能(MNLS)機能説明ス UNIXネットワーキング UNIXワークステーションがわかる本 UNIX system 上級プログラマ・ガイド スーパーユーザーのためのUNIX 分類と索引とデータベース 商用データベース利用ハンドブック オンライン・データベース・ディレクトリー オンライン・データベース・ディレクトリー 文化史研究支援「源氏物語」語彙データベース報告書 現行法令データベース Harvard business reviewデータベース 小学校国語教科書データベース 全文データベースの発達と出版活動 情報検索のためのデータベース

(44 rows affected)

maruyama@wakhok.ac.jp
1995年02月10日 (金) 00時49分16秒 JST