SQLite入門(3) CSV、TSVからデータを作る
前回のあらすじ
データベースの構造を理解し、クエリを使ってデータベースにデータを入力した。
ファイルからテーブルのデータを作る
通常通りにカラムのデータ型を指定してテーブルを作成する。
.mode csv
でCSV取込が可能な状態にして、.import [ファイル名] [テーブル名]
で取込ができます。
※ TSVの場合は、.mode tabs
になります。
既存のテーブルへ取り込む場合、CSVの1行目も含めて取り込んでしまうので、テーブル作成時に指定しておきましょう。
※パスによるCSVファイルの指定方法はLinuxのものを参照ください。
※なお、日本語の入っているファイルパスだと取り込みができない模様。
sqlite > create table stand_list(stand_name text , master_name ,del_flag); sqlite > .mode csv sqlite > .mode csv.imoport ./Data.csv my_table
一方、指定した名称のテーブルがない場合は1行目をカラム名称として取込を行いテーブルも自動で生成します。 生成されるテーブルはすべてデータ型はtextになります。
実際にやってみる
取り込むデータ(new_data.csv)
id | first_name | last_name | del_flag |
---|---|---|---|
1 | 佐藤 | 蓮 | 0 |
2 | 鈴木 | 陽翔 | 1 |
3 | 高橋 | 蒼 | 0 |
4 | 田中 | 樹 | 0 |
取込実行
sqlite > .mode csv sqlite > .import ./new_data.csv name_list
スキーマ確認
sqlite > select * from sqlite_master where type='table' and name = 'name_list'; table,name_list,name_list,3,"CREATE TABLE ""name_list""( ""id"" TEXT, ""first_name"" TEXT, ""last_name"" TEXT, ""del_flag"" TEXT )"