★悩み★
・SQLite3内のテーブルのデータをCSVファイルに出力ってできる?
・CSVファイルのヘッダーにテーブルのカラム名も出力できる?
・SQLiteのデータをCSVファイルへ出力(エクスポート)する方法は?
こういった「悩み」に答えます。
★本記事の内容★
① SQLiteのデータをCSVファイルへ出力するための準備を解説
② SQLite3で「output」を用いてCSVへ出力(エクスポート)する方法を解説
➂ SQLiteのデータをCSVへ出力するシェルやバッチの作り方
これからご紹介する「【コピペOK】SQLiteのデータをCSVファイルへ出力する2つの方法」を実践したことで、筆者は30分以内でSQLite3のデータをCSVファイルに出力(エクスポート)できました。
記事の前半では「SQLiteのデータをCSVファイルへ出力するための準備」をコマンドベースで紹介します。
記事の後半では「outputコマンドを使って、SQLite3のデータをCSVファイルに出力(エクスポート)する2つの方法」を紹介します。
この記事を読み終えることで、「SQLite3のデータをCSVファイルに出力(エクスポート)する方法」を把握できるだけでなく、「outputコマンドの使い方」も把握した状態になります。
ちなみに、「出力したCSVファイルをSQLite3にインポートする手順」といったSQLite3関連の情報を知りたい方には、以下のURLがオススメです。
参照:SQLite3関連の記事一覧(本ブログ)
★SQLite3とは★
SQLiteは、「小型」/「高速」/「自己充足的」/「高信頼性」なSQLデータベースエンジンを実装したC言語ライブラリです。
ちなみに、SQLiteのメリットとデメリットに関して知りたい方には、以下の記事がオススメです。
>> 【要点】SQLiteとは?を解消!初心者向けに特徴から使い方を解説
ちなみに、筆者が約2週間でSQLite3を学んだ方法や手順について以下で公開しています。皆様の学習の参考になれば嬉しいです。
>> SQLite3に0から入門し基本操作を習得するまでのロードマップ
SQLiteのデータをCSVファイルへ出力するための準備
「SQLiteのデータをCSVファイルへ出力するための準備」に関してご紹介します。
★SQLiteのデータをCSVファイルへ出力するための準備の流れ★
手順1:SQLite3をインストール
手順2:インストールしたSQLite3の動作確認
手順3:SQLite3内にテーブルを作成
手順4:SQLite3内にデータを追加(データ登録)
上記手順を実施することで、「SQLiteのデータをCSVファイルへ出力するための準備」ができます。
上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2022年2月2日
動作確認済み環境:
・Ubuntu 20.04.3 LTS
・Windows
以降で、上記「SQLiteのデータをCSVファイルへ出力するための準備の流れ」の各手順に関してご説明します。
手順1:SQLite3をインストール
「手順1:SQLite3をインストール」に関して解説します。
SQLite3内のテーブルのデータをCSVファイルに出力するためにも、SQLite3をインストールしましょう。
「SQLite3をインストールする手順」に関しては、お使いのパソコンごとに以下の記事を参照しインストールしましょう。
>>【コピペOK】SQLite3をインストールする手順【Linux向け】
>>【コピペOK】SQLite3をインストールする手順【Ubuntu向け】
>>【最短5分】SQLiteをWindowsへインストールする方法(6枚で図解)
>>【コピペOK】SQLite3をインストールする手順【MacOS向け】
以上で、「手順1:SQLite3をインストール」は完了です。
手順2:インストールしたSQLite3の動作確認
「手順2:インストールしたSQLite3の動作確認」に関して解説します。
動作確認として、インストールしたSQLite3に接続できることを確認しましょう。
「SQLite3に接続する方法」に関しては、以下の記事「SQLite3へ接続する方法」の箇所をご覧ください。
以上で、「手順2:インストールしたSQLite3の動作確認」は完了です。
手順3:SQLite3内にテーブルを作成
「手順3:SQLite3内にテーブルを作成」に関して解説します。
SQLite3内のテーブルのデータをCSVファイルに出力(エクスポート)するためには、SQLite3内にテーブルを作成する必要があります。
「SQLite3内にテーブルを作成」に関しては、以下の記事をご覧ください。
以上で、「手順3:SQLite3内にテーブルを作成」は完了です。
以降の手順では、上記の記事で作成した「meibo」テーブルを想定として、手順を解説します。
手順4:SQLite3内にデータを追加(データ登録)
「手順4:SQLite3内にデータを追加(データ登録)」に関して解説します。
SQLite3内のテーブルのデータをCSVファイルに出力(エクスポート)するために、出力対象となるデータをSQLite3に追加しましょう。
「SQLite3内にデータを追加(データ登録)する手順」に関しては、以下の記事をご覧ください。
以上で、「手順4:SQLite3内にデータを追加(データ登録)」は完了です。
上記の流れで、SQLiteのデータをCSVファイルへ出力するための準備ができました。
SQLite3で「output」を用いてCSVへ出力(エクスポート)する方法
『SQLite3で「output」を用いてCSVへ出力(エクスポート)する方法』に関してご紹介します。
★SQLite3で「output」を用いてCSVへ出力(エクスポート)する方法★
・SQLite3のデータをCSVファイル(ヘッダーなし)へ出力する方法
・SQLite3のデータをCSVファイル(ヘッダーあり)へ出力する方法
上記の方法を実施することで、「SQLite3内のテーブルのデータをCSVファイルへ出力(エクスポート)」できます。
上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2022年2月2日
動作確認済み環境:
・Ubuntu 20.04.3 LTS
・Windows
以降で、上記『SQLite3で「output」を用いてCSVへ出力(エクスポート)する方法』の各項目に関してご説明します。
SQLite3のデータをCSVファイル(ヘッダーなし)へ出力する方法
「SQLite3のデータをCSVファイル(ヘッダーなし)へ出力する方法」に関して解説します。
SQLite3内のテーブルのデータをCSVファイルに出力する場合、「modeコマンド」「outputコマンド」「SELECT文」を利用します。
SQLite3内のテーブルのデータをCSVファイルに出力したい場合の「mode」と「output」「SELECT」の「構文」は、以下となります。
【modeコマンドの構文】
.mode csv
【outputコマンドの構文】
.output <出力先のファイルPATH>
【selectの構文】
select * from <CSVファイルに出力したいテーブル>;
SQLite3のテーブルのデータをCSVファイルへ出力したい場合、以下のコマンドを順に実行します。
# ↓ SQLite3に接続 ↓
$ sqlite3 testdb.sqlite3
SQLite version 3.31.1 2020-01-27 19:55:54
Enter ".help" for usage hints.
# ↓ CSVファイルに出力したいテーブルのデータを確認 ↓
sqlite> select * from meibo;
1|hero
2|tom
3|bob
sqlite>
# ↓ CSVモードに変更 ↓
sqlite> .mode csv
# ↓ 出力先ファイルを指定 ↓
sqlite> .output export-data.csv
# ↓ テーブルのデータをCSVファイルへ出力 ↓
sqlite> select * from meibo;
# ↓ SQLite3から切断 ↓
sqlite> .exit
# ↓ 出力されたCSVファイルの中身を確認 ↓
$ cat export-data.csv
1,hero
2,tom
3,bob
コマンド実行後、「CSVファイルに記載したデータとテーブル内のデータが同一」である場合、「正常にoutputコマンドでデータをCSVファイルに出力できた」と判断できます。
★outputコマンドのリファレンス★
outputコマンドのリファレンスは、以下に公開されています。
参照:outputコマンドのリファレンス(公式サイト)
以上が、「SQLite3のデータをCSVファイル(ヘッダーなし)へ出力する方法」となります。
SQLite3のデータをCSVファイル(ヘッダーあり)へ出力する方法
「SQLite3のデータをCSVファイル(ヘッダーあり)へ出力する方法」に関して解説します。
「headersコマンド」を利用することで、テーブルのカラム名をCSVファイルのヘッダーに記載できます。
テーブルのカラム名をCSVファイルのヘッダーに記載したい場合、以下のコマンドを順に実行します。
# ↓ CSVモードに変更 ↓
sqlite> .mode csv
# ↓ ヘッダーを表示する設定に変更 ↓
sqlite> .headers on
# ↓ 出力先ファイルを指定 ↓
sqlite> .output export-data-with-header.csv
# ↓ テーブルのデータをCSVファイルへ出力 ↓
sqlite> select * from meibo;
# ↓ SQLite3から切断 ↓
sqlite> .exit
# ↓ 出力されたCSVファイルの中身を確認 ↓
$ cat export-data-with-header.csv
id,name
1,hero
2,tom
3,bob
コマンド実行後、「CSVファイルにヘッダーとテーブル内のデータ」が記載された場合、「正常にoutputコマンドでヘッダー付きのCSVファイルに出力できた」と判断できます。
以上が、「SQLite3のデータをCSVファイル(ヘッダーあり)へ出力する方法」となります。
上記2つのoutputコマンドを実行することで、「SQLite3のテーブルのデータをCSVファイルに出力(エクスポート)」することができました。
SQLiteのデータをCSVへ出力するシェルやバッチの作り方
SQLiteのデータをCSV出力するためだけに、SQLiteに接続し数コマンド実行することが煩わしいと感じる方がいると思います。
そういった方は、シェルスクリプトやバッチファイルを作成しましょう。
★ご紹介事項★
・CSVファイルに出力するシェルスクリプト
・CSVファイルに出力するバッチファイル
以降で、上記の各項目について解説します。
CSVファイルに出力するシェルスクリプト
Linux環境でSQLiteのデータをCSVファイルに1コマンドで出力したい場合、以下のようなシェルスクリプトを作りましょう。
#構文:sqlite3 -header -csv <データベースファイルのPATH> "<実行したいクエリ>" > <CSVファイル>
sqlite3 -header -csv testdb.sqlite3 "select * from meibo;" > test.csv
上記のバッチファイルを「output_data_into_csv.sh」として保存し実行することで、test.csvというファイルにSQLiteのデータが出力されます(下の動画参照)。
CSVファイルに出力するバッチファイル
Windows環境でSQLiteのデータをCSVファイルに1クリックでエクスポートしたい場合、以下のようなバッチファイルを作りましょう。
rem 構文:sqlite3 -header -csv <データベースファイルのPATH> "<実行したいクエリ>" > <CSVファイル>
sqlite3 -header -csv testdb.sqlite3 "select * from meibo;" > test.csv
上記のバッチファイルを「output_data_into_csv.bat」として保存し実行することで、test.csvというファイルにSQLiteのデータが出力されます(下の動画参照)。
バッチファイルやシェルスクリプトにSQLiteのデータをCSVファイルへ出力するコマンドを記載することで、1コマンドや1クリックでエクスポートを実現できます。
【まとめ】SQLiteのデータをCSVファイルへ出力する方法2選
いかがでしたでしょうか?
「modeコマンド、headersコマンド、ouputコマンドを実行して、SQLiteのデータをCSVファイルへ出力する2つの方法」を解説し、以下の悩みを解決しました。
★悩み★
・SQLite3内のテーブルのデータをCSVファイルに出力ってできる?
・CSVファイルのヘッダーにテーブルのカラム名も出力できる?
・SQLiteのデータをCSVファイルへ出力(エクスポート)する方法は?
ぜひあなたも本記事を参考に「SQLite3のテーブルのデータをCSVファイルへ出力(エクスポート)」を実践してください。
コメント