トップページ -> 研究道具箱と入門演習 -> SQLite 3 とSQL 演習 -> 郵便番号 CSV データを SQLite 3 にインポート(SQLite 3 を使用)
[サイトマップへ], [サイト内検索へ],

郵便番号 CSV データを SQLite 3 にインポート(SQLite 3 を使用)

この Web ページでは,日本郵政公社「ゆうびんホームページ」で公開されている 2つの郵便番号データのCSV(カンマ区切り値)形式ファイルを使う.

  1. 住所の郵便番号(CSV形式)(ken_all.csv)
  2. 事業所の個別郵便番号(CSV形式)(jigyosyo.csv)

これらのファイルを,リレーショナルデータベース管理システム SQLite のテーブル(テーブル名は zipall)に格納します.

謝辞:

・郵便番号データについて、日本郵政公社に感謝します


前準備

SQLite 3 のインストール

郵便番号 CSV データ


あらかじめ決めておく事項

この Web ページでは,SQLite データベースの作成を行う. 作成するデータベースのデータベース名を決めておくこと. この Web ページでは,次のように書く.


リレーショナルデータベースのテーブル KEN_ALL, JIGYOSYO の作成

  1. 郵便番号 CSV データの手順でできた 2つのファイルを、分かりやすいディレクトリに置いておく

    ※ ファイルは C:\data\ken_all.csv, C:\data\jigyosyo.CSV であるとして説明を続ける.

    [image]
  2. 2つのファイルの文字コードは,UTF-8 に変換しておく
  3. SQLite の起動
    sqlite3
    

    [image]
  4. データベースの作成

    .open --new C:/sqlite3/zipdb
    

    [image]
  5. テーブル定義

    次の2つのテーブルを定義する.

    • KEN_ALL(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)
    • JIGYOSYO(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)

    SQL プログラム

    CREATE TABLE KEN_ALL (
    	a0 integer not null, 
    	a1 integer not null, 
    	a2 integer not null, 
    	a3 text not null, 
    	a4 text not null, 
    	a5 text not null, 
    	a6 text not null, 
    	a7 text not null, 
    	a8 text not null, 
    	a9 boolean not null, 
    	a10 boolean not null, 
    	a11 boolean not null, 
    	a12 boolean not null, 
    	a13 boolean not null, 
    	a14 integer not null
    );
    
    create table JIGYOSYO (
    	a0 integer not null, 
    	a1 text not null, 
    	a2 text not null, 
    	a3 text not null, 
    	a4 text not null, 
    	a5 text, 
    	a6 text, 
    	a7 integer not null, 
    	a8 integer not null, 
    	a9 text not null, 
    	a10 boolean not null, 
    	a11 integer not null, 
    	a12 boolean not null
    );
    
  6. 実行の結果、エラーメッセージが出ていないことを確認する

    [image]
  7. テーブルの作成
    • KEN_ALL: C:\data\ken_all.csv からインポート
    • JIGYOSYO: C:\data\jigyosyo.CSV からインポート

    次のコマンドを実行 (Windows 用)

    .mode csv
    .import C:\\data\\ken_all.csv KEN_ALL
    .import C:\\data\\jigyosyo.CSV JIGYOSYO
    vacuum; 
    
  8. 実行の結果、エラーメッセージが出ていないことを確認する

    [image]
  9. 結果の確認

    次を実行し,先頭3行を確認してみる.

    select * from KEN_ALL limit 3; 
    select * from JIGYOSYO limit 3; 
    

    [image]
  10. テーブル JIGYOSYO の属性 a0, a3, a4 の確認

    JIGYOSYO テーブルでは,a0 の値が 1つに決まれば,a4 の値が 1つに決まる.

    それを,次の SQL で確認する.結果として何も表示されなければ OK.

    create table T as select distinct a0, a3, a4 from JIGYOSYO;
    SELECT * FROM T WHERE a0 IN ( SELECT a0 FROM T group by a0 HAVING COUNT(*) > 1 );
    

    [image]
  11. テーブル KEN_ALL の属性 a0, a6, a7 の確認

    KEN_ALL テーブルでは,a0 の値が 1つに決まれば,a7 の値が 1つに決まる.

    それを,次の SQL で確認する.結果として何も表示されなければ OK.

    drop table T;
    create table T as select distinct a0, a6, a7 from KEN_ALL;
    SELECT * FROM T WHERE a0 IN ( SELECT a0 FROM T group by a0 HAVING COUNT(*) > 1 );
    

    [image]
  12. テーブル JIGYOSYO で,読みがなが空のレコードがないことを確認.

    次の SQL で確認する.結果として何も表示されなければ OK.

    select * from JIGYOSYO where a1 = '""';
    

    [image]
  13. テーブル KEN_ALL で,読みがなが空のレコードがないことを確認.

    次の SQL で確認する.結果として何も表示されなければ OK.

    select * from JIGYOSYO where a2 = '""';
    select * from JIGYOSYO where a3 = '""';
    select * from JIGYOSYO where a4 = '""';
    

    [image]

本サイトは金子邦彦研究室のWebページです.サイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.

問い合わせ先: 金子邦彦(かねこ くにひこ) [image]