トップページ -> 教材 -> リレーショナルデータベースの基礎 -> SQLite 3 の GLOB を用いた文字列パターンマッチの例
[サイトマップへ], [サイト内検索へ],

SQLite 3 の GLOB を用いた文字列パターンマッチの例

サイト構成 連絡先,業績など 実践知識 データの扱い コンピュータ 教材 サポートページ

ここでは,文字列検索に関するいくつかの SQL を実行してみます.実行結果も付けています.

(参考Webページ)http://kawa.at.webry.info/200610/article_8.html

「町域名漢字」が特定文字列を含むという条件での検索

  1. 「町域名漢字」に「地割」を含むもの

    SELECT *
    FROM zips
    WHERE choiki_kanji LIKE '%地割%';
    

「町域名漢字」と「町域名カナ」の括弧書きに関する問い合わせ例

  1. 「町域名漢字」に「(」と「)」(全角カッコ)をこの順で含み, かつ,「0階」,「1階」,「2階」,「3階」,「4階」,「5階」,「6階」,「7階」,「8階」,「9階」,「地階」のいずれかを含むもの

    ※ パターンマッチの演算子は, データベース管理システムによって違う.例えば,PostgreSQL の場合には「GLOB」を「~」に置き換えると、だいたい同様の動作をすると思います(未確認).ここでは SQLite 3 で説明します.

    SELECT *
    FROM zips
    WHERE choiki_kanji GLOB '*(*)*' AND choiki_kanji GLOB '*[0123456789地]階*';
    

  2. 「町域名漢字」に「(」と「)」(全角カッコ)をこの順で含まない, かつ,「0階」,「1階」,「2階」,「3階」,「4階」,「5階」,「6階」,「7階」,「8階」,「9階」,「地階」のいずれかを含むもの

    SELECT *
    FROM zips
    WHERE NOT choiki_kanji GLOB '*(*)*' AND choiki_kanji GLOB '*[0123456789地]階*';
    

  3. 上記 1. 以外で,「町域名漢字」に「(」と「)」(全角カッコ)をこの順で含むもの. (つまり, 「町域名漢字」に「(」と「)」(全角カッコ)をこの順で含むが. 「0階」,「1階」,「2階」,「3階」,「4階」,「5階」,「6階」,「7階」,「8階」,「9階」,「地階」を含まないもの)

    SELECT *
    FROM zips
    WHERE choiki_kanji GLOB '*(*)*' AND NOT choiki_kanji GLOB '*[0123456789地]階*';
    

  4. 「町域名漢字」に「(」(全角カッコ)を含まないが,「町域名カナ」に「(」(半角カッコ)を含むもの.

    SELECT *
    FROM zips
    WHERE NOT choiki_kanji GLOB '*(*' AND choiki_kana GLOB '*(*';