トップページ -> インストール,設定,利用 -> SQLite 3 とSQL 演習 -> 郵便番号データテーブル zips, kens, shichosons を用いた演習
[サイトマップへ], [サイト内検索へ]

郵便番号データテーブル zips, kens, shichosons を用いた演習

SQL 演習

「郵便番号」からの「町域」の検索

ここでは,「郵便番号データの落とし穴」; http://www.f3.dion.ne.jp/~element/msaccess/AcTipsKenAllCsv.html の Web ページにおいて 「良好な結果」を出すことが難しいとされる,郵便番号 0285102 と 8260043 に関する問い合わせを行ってみる.

  1. 「郵便番号」が 8260043 であるような「町域」

    #!/bin/bash
    
    cat >/tmp/a.$$.sql <<-SQL
      SELECT *
      FROM zips
      WHERE zipcode = '"8260043"';
    SQL
    cat /tmp/a.$$.sql | sqlite3 /tmp/mydb02
    

    [image]
  2. 「郵便番号」が 0285102 であるような「町域」

    #!/bin/bash
    
    cat >/tmp/a.$$.sql <<-SQL
      SELECT *
      FROM zips
      WHERE zipcode = '"0285102"';
    SQL
    cat /tmp/a.$$.sql | sqlite3 /tmp/mydb02
    

    [image]

「町域名漢字」に関する単純な問い合わせ例

  1. 「町域名漢字」に「一円」を含むものの数

    「一円」というのは「●●一円」のようなものです.

    #!/bin/bash
    
    cat >/tmp/a.$$.sql <<-SQL
      select count(*)
      FROM zips
      WHERE choiki_kanji LIKE '%一円%';
    SQL
    cat /tmp/a.$$.sql | sqlite3 /tmp/mydb02
    

    数は0個 → なので満足

    [image]

「以下に掲載がない場合」

  1. 「町域名漢字」に「以下に掲載がない場合」を含むものの数

    #!/bin/bash
    
    cat >/tmp/a.$$.sql <<-SQL
      select count(*)
      FROM zips
      WHERE choiki_kanji LIKE '%以下に掲載がない場合%';
    SQL
    cat /tmp/a.$$.sql | sqlite3 /tmp/mydb02
    

    数は0個 → なので満足

    [image]

以下、書きかけ

テーブル zips で、同じ jiscode の値をもつ行の行数を数える

#!/bin/bash

cat >/tmp/a.$$.sql <<-SQL
  select jiscode, count(*)
    from zips
    group by jiscode
    having count(*) > 1;
SQL
cat /tmp/a.$$.sql | sqlite3 /tmp/mydb02

ちなみに shichoson_kanji は候補キーではありません. shichoson_kana も候補キーではありません. (同じ漢字で違うよみのものがある)。

select shichoson_kanji, count(*)
    from zips
    group by shichoson_kanji
    having count(*) > 1;
select shichoson_kana, count(*)
    from zips
    group by shichoson_kana
    having count(*) > 1;

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

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