目的
SQLite3でよく使う操作をまとめておくことで、同じことを検索するのをなるべく避けたい。
はじめに
【SQLite3】コマンド例と他データベースとの比較から始める SQLite 入門
コンパクトに綺麗にまとまっているので、SQLiteを久々に利用するときにはこの記事は必読。
基本的な操作/コマンド等
DB接続
DBに接続(なければ作る)
$ sqlite3 test.sqlite3
show
設定を表示する
sqlite> .show
echo: off
eqp: off
explain: off
headers: off
mode: list
nullvalue: ""
output: stdout
separator: "|"
stats: off
width:
データのインポート、エクスポート
csv/tsvをインポート
sqlite> .separator <delimitter(, / \t)>
sqlite> .import <file_name(.csv / .tsv)> <table_name>
csv/tsvとしてエクスポート
sqlite> .headers on -- 任意
sqlite> .mode csv
sqlite> .output <filename(.csv)>
sqlite> select * from <table_name>;
テーブル操作
テーブル一覧を表示
sqlite> .table
スキーマを表示
sqlite> .schema <table_name>
SQL
普通のSQLと同じ部分が多いので注意する点など
外部SQLファイルを実行
sqlite> .read test.sql
create
createはなるべく型を指定した方がいい。キャストされず例えばinteger/textが混在してしまったりする(ハマった)
sqlite> create table <table_name> (<column1> [type1], <column2> [type2], ...);
注意
データ型はドはまりしたりするので注意したい。
挿入されたデータが、指定されたデータ型にキャスト可能であればキャストするが、不可能ならそのまま格納する(1つのカラムに異なるデータ型が混在しうる)
Pythonからの呼び出し
- こちらの記事を参考: PythonでSQLite3を使う
- こちらのライブラリも便利そう(未確認)supersqlite
IntelliJから使う
IntelliJから使うと、テーブル名の補完も効いて快適です。
[Database] => [+] => [Data Source] => [SQLite] => [Xerial]
で新しくデータソースを作り、DBファイル名を指定して [Test Connection]
すれOK(必要に応じてドライバをダウンロードします)
Ibisとの連携
Quickstart on Crunchbase analysis using Ibis and SQLite