CSVファイルのSQLite 3へのインポートとSQL問い合わせ
【概要】
CSV形式のデータファイルをSQLite 3データベースへインポートする方法を解説する。1つのCSVファイルを1つのテーブルとしてインポートする手順を示す。
ソフトウェアの利用に際しては、利用規約および動作環境を確認の上で使用する必要がある。
【目次】
【サイト内の関連ページ】
1. 前準備
SQLite 3について
SQLite 3の詳細については、別ページ »を参照すること。
CSVファイルの準備
本解説では、csvkit(CSVを扱うコマンド群)に同封されているデータファイルks_1033_data.csvを使用する。
https://github.com/wireservice/csvkit/tree/master/examples/realdata
他のCSVファイルを使用する場合は、ファイルの先頭行に各列の属性名が記載されていることを事前に確認する必要がある。
2. SQLite 3へのインポート
- sqlite3の起動
sqlite3 <データベース名>
- テーブルの作成とCSVファイルのインポート
CSVの先頭行は列名なので、先にテーブルks1033を作成し、
.mode csvと.import --skip 1で先頭行を読み飛ばしてインポートする。SQLite 3の.importは、対象テーブルが存在する場合、先頭行もデータとして取り込むため、この指定が必要である。create table ks1033 ( state text, county text, fips_state integer, fips_county integer, item_name text, quantity integer, ui text, acquisition_cost real, total_cost real, ship_date text );.mode csv .import --skip 1 ks_1033_data.csv ks1033
※ CSVの列構成が異なる場合は、CREATE TABLE の列定義を実際のCSVに合わせること。csvkitの
csvsql --tables ks1033 ks_1033_data.csvを使うと、CSVからCREATE TABLE文を生成できる。 - データの確認
県別の集計例である。
select county, count(*) from ks1033 group by county;
特定県のデータ抽出例である。
select * from ks1033 where county = 'BROWN';
- 終了は「.exit」コマンドを使用する。