郵便番号テーブルを用いた SQL 演習

演習で行うこと

SQL の中で日本語を使う.

郵便番号データベース (Japanese ZIP code database)

郵便番号データベースは zips, kens, shichosons の 3 つのテーブルから構成される.

郵便番号データベースの作成手順については別の Web ページで説明している.

Sqliteman で既存のデータベースを開く (Open an existing database using Sqliteman)

すでに作成済みのデータベースを,下記の手順で開くことができる.

以下の手順で,既存のデータベースファイルを開く. (Open an existing database file)

  1. Sqliteman を起動する
  2. File」→ 「Open
  3. データベースファイルを開く (Open Database File)

    * Ubuntu での実行例(「SQLite/mydb」を開く場合)

    データベースファイル SQLite/mydb を選び, 「開く」をクリック (Click '開く' after choosing the database file "SQLite/mydb")

  4. データベースの中身が表示されるので確認する (Database appears)

    「Tables」を展開すると,テーブルの一覧 (List of Tables) が表示されるので確認する (List of tables appears by clicking 'Tables')

    zips, kens, shichosons テーブルの中身を表示してみる. zips, kens, shichosons テーブルの表示ができないというときは, 授業の場で個別対応します

郵便番号に関する条件検索

テーブル zips を使用.住所(jusho)の取得などを行う.

都道府県名に関する条件検索

テーブル kens, shichosons を使用.都道府県名(ken_kanji)による条件検索を行う.

市町村名に関する条件検索

テーブル shichosons を使用.市町村名(shichoson_kanji)による条件検索を行う.

町域名に関する条件検索

テーブル zips の属性 choiki_kanji (これは文字列属性)に関する条件検索を行う. 文字列属性に対して「=」を使う.

文字列による郵便番号の検索(LIKE と % を用いた部分一致)

テーブル zips の属性 ken_kanji, shichoson_kanji, choiki_kanji (これは文字列属性)に関する条件検索を行う. 文字列属性に対して「LIKE」を使う.

2つのテーブルの結合(Join; ジョイン)を行う例

テーブル zips と テーブル shichosons を,jiscode属性によって結合(join)し, 条件で絞り込む

テーブル zips と テーブル shichosons と テーブル kens の結合.

タップルの総数 (COUNT)

COUNT(*) でタップル数を数える。

ORDER BY の例

group by と COUNT の組み合わせ

group by による集約の後、COUNT を使って、タップル数を数える。

HAVING の例

COUNT で数えたタップル数に関して条件を指定し,タップルを絞り込む.