プログラミング備忘録

仕事で覚えたことのまとめ

SQLite入門(3) CSV、TSVからデータを作る

前回のあらすじ

データベースの構造を理解し、クエリを使ってデータベースにデータを入力した。

ファイルからテーブルのデータを作る

通常通りにカラムのデータ型を指定してテーブルを作成する。 .mode csvCSV取込が可能な状態にして、.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
)"

次回

クエリの結果をファイルに出力する