|
SQL 5章 データの参照
5.3.3. LIKE 演算子LIKE 演算子は、テキスト文字列データ型からサブ文字列を検索するものです。テキスト列を検索して、ある文字列と一致する部分があるかどうか確認します。LIKE はそのためにワイルドカードを使用します。ワイルドカードとは、何かと一致する特殊な文字です。LIKE に使用するワイルドカードには次の 2つがあります。
ここで、LIKE 演算子を用いたデータの参照のサンプルのために、新たにテーブルを定義し、データを入力したものを用意します。
顧客表
今後、顧客表といえば上表を指すものとします。この顧客表から顧客名が O で始まるものを抽出するには次のように記述します。 -- sample.13-5 -- /* データの参照 */ SELECT * FROM 顧客表 WHERE 顧客名 LIKE 'O%' ; /* 実行結果 */ 顧客コード 顧客名 ───── ─── 002 ONSIDE もし、ワイルドカードである '_' と '%' を含む文字列のデータで、'_' と '%' を検索したい場合にはエスケープ文字を使用します。エスケープ文字は '_' と '%' の直前に配置すると、'_' と '%' はワイルドカードとして解釈されなくなります。エスケープ文字は LIKE 句の後ろに ESCAPE 句を記述して指定します。次の例ではエスケープ文字を'$'とした場合に、'_'で始まる顧客名を検索する文です。顧客表には'_'で始まるデータがないので、何も出力されません。 -- sample.13-6 -- /* データの参照 */ SELECT * FROM 顧客表 WHERE 顧客名 LIKE '$_%' ESCAPE '$' ; /* 実行結果 */ (何も出力されず) 5.3.4. IS NULL 演算子IS NULL 演算子は NULL 値を持つデータを検索するものです。次の例では、顧客表から顧客名列に NULL 値を持つデータを全て抽出するものです。実際には、顧客名列には NULL 値は存在しないので何も出力されません。 -- sample.13-7 -- /* データの参照 */ SELECT * FROM 顧客表 WHERE 顧客名 IS NULL ; /* 実行結果 */ (何も出力されず) (実習課題1)表に示すテーブル employee の e_name 列から、ファーストネームが「To」で始まるものだけを表示する SQL 文を記述しなさい。表示する列は、e_name 列のみでよい。ただし e_name 列は「ラストネーム ファーストネーム」なるデータが格納されているものとする。
|
![]()
![]()
|