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

概要

zips,kens,shichosons の3つのテーブルを用いて,日本語を含むデータに対する SQL の条件検索,結合(join),集計(COUNT,group by,HAVING)などを SQLite 3 で学ぶ.

目次

演習で行うこと

SQLデータベースにおける日本語の活用について学習する.

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

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

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

Sqliteman で既存のデータベースを開く

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

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

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

    * Windows での実行例(「C:\SQLiteDB\mydb」を開く場合)

    データベースファイル C:\SQLiteDB\mydb を選択し, 「開く」をクリックする (Click '開く' after choosing the database file "C:\SQLiteDB\mydb")

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

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

    zips,kens,shichosons テーブルの内容を表示して確認する. zips,kens,shichosons テーブルの表示ができない場合は, 授業内で個別に対応いたします

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

テーブル zips を使用し,住所(jusho)の取得などを実行する.

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

テーブル kensshichosons を使用し,都道府県名(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 で計算したタプル数に関して条件を指定し,タプルを絞り込む.