コマンドラインツールを使ってSQLiteにCSVファイルをインポートする方法
SQLite に CSV ファイルをインポートする
このチュートリアルでは、SQLite に CSV ファイルをインポートする方法を、コマンドラインツールと GUI ツールの両方を使用して説明します。
コマンドラインツールを使う
準備
以下のものが必要です。
- SQLite がインストールされていること
- インポートしたい CSV ファイル
- データベースファイル (存在しない場合は作成されます)
手順
- ターミナルを開き、SQLite コマンドラインツールを起動します。
sqlite3 database.sqlite
.import
コマンドを使って、CSV ファイルをテーブルにインポートします。
.import csv_file.csv table_name
例:
.import data.csv customers
このコマンドは、data.csv
ファイルの内容を customers
という名前のテーブルにインポートします。
オプション:
-c
オプション: カラム区切り文字を指定できます。デフォルトはカンマです。-t
オプション: テーブル名を指定できます。省略すると、CSV ファイル名から推測されます。-h
オプション: ヘルプを表示します。
GUI ツールを使う
SQLite には、DB Browser for SQLite などの多くの GUI ツールがあります。これらのツールは、コマンドラインツールよりも使いやすく、初心者にとっておすすめです。
手順
- GUI ツールを開き、データベースファイルを開きます。
- ツールバーのインポートボタンをクリックします。
- インポートする CSV ファイルを選択します。
- オプションで、テーブル名とカラム区切り文字を指定します。
DB Browser for SQLite を使用する場合:
- ツールバーの "File" > "Open Database" をクリックし、データベースファイルを開きます。
- "Table Name" フィールドに、テーブル名を入力します。
- "Delimiter" フィールドで、カラム区切り文字を選択します。
- 使用している GUI ツールのドキュメントを参照してください。
コマンドラインツールは、より詳細な制御とオプションを提供しますが、GUI ツールは初心者にとってより使いやすく、直感的です。
どちらの方法を選択しても、SQLite は CSV ファイルデータを効率的に保存・管理するための優れたツールです。
コマンドラインツール
sqlite3 database.sqlite
# テーブル作成
CREATE TABLE customers (
id INTEGER PRIMARY KEY,
name TEXT,
email TEXT
);
# CSVファイルインポート
.import data.csv customers -c,
# データ確認
SELECT * FROM customers;
Python
import sqlite3
# 接続
connection = sqlite3.connect("database.sqlite")
cursor = connection.cursor()
# テーブル作成
cursor.execute("""
CREATE TABLE IF NOT EXISTS customers (
id INTEGER PRIMARY KEY,
name TEXT,
email TEXT
);
""")
# CSVファイルインポート
with open("data.csv", "r") as csvfile:
reader = csv.reader(csvfile, delimiter=",")
next(reader, None) # ヘッダー行スキップ
cursor.executemany("""
INSERT INTO customers (name, email)
VALUES (?, ?)
""", reader)
# データ確認
cursor.execute("SELECT * FROM customers")
for row in cursor.fetchall():
print(row)
connection.commit()
connection.close()
- 上記は基本的な例です。必要に応じて、コードを修正してニーズに合わせてください。
- 詳細については、SQLite のドキュメントやチュートリアルを参照してください。
SQLite に CSV ファイルをインポートする他の方法
スクリプトを使う
Python や Ruby などのスクリプト言語を使って、CSV ファイルを読み込み、SQLite データベースにデータを挿入するプログラムを作成することができます。
Python
import csv
import sqlite3
# 接続
connection = sqlite3.connect("database.sqlite")
cursor = connection.cursor()
# テーブル作成
cursor.execute("""
CREATE TABLE IF NOT EXISTS customers (
id INTEGER PRIMARY KEY,
name TEXT,
email TEXT
);
""")
# CSVファイル読み込み
with open("data.csv", "r") as csvfile:
reader = csv.reader(csvfile, delimiter=",")
next(reader, None) # ヘッダー行スキップ
for row in reader:
cursor.execute("""
INSERT INTO customers (name, email)
VALUES (?, ?)
""", row)
# データ確認
cursor.execute("SELECT * FROM customers")
for row in cursor.fetchall():
print(row)
connection.commit()
connection.close()
Ruby
require 'csv'
require 'sqlite3'
# 接続
db = SQLite3::Database.new("database.sqlite")
# テーブル作成
db.execute("""
CREATE TABLE IF NOT EXISTS customers (
id INTEGER PRIMARY KEY,
name TEXT,
email TEXT
);
""")
# CSVファイル読み込み
CSV.foreach("data.csv", headers: true) do |row|
db.execute("""
INSERT INTO customers (name, email)
VALUES (?, ?)
""", row["name"], row["email"])
end
# データ確認
db.execute("SELECT * FROM customers") do |row|
puts row.join(", ")
end
db.close
オンラインツールを使う
https://mygeodata.cloud/converter/csv-to-sqlite などのオンラインツールを使って、CSV ファイルを SQLite データベースにインポートすることができます。
手順:
- オンラインツールを開きます。
- データベース接続情報を入力します。
データベース管理ツールを使う
https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver16 などのデータベース管理ツールを使って、CSV ファイルを SQLite データベースにインポートすることができます。
- データベース管理ツールを開きます。
- "インポート" 機能を使って、CSV ファイルをインポートします。
CSV ファイルを SQLite データベースにインポートする方法はいくつかあります。
sqlite