sqlite3初心者のテキトーなメモ
ヘルプ
sqlite3 -help
か、sqlite3実行後に.help
DBファイルを作る
PS$sqlite3 .\practice.db SQLite version 3.7.3 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> .databases seq name file --- --------------- ---------------------------------------------------------- 0 main C:\hoge\piyo\fuga\practice.db sqlite>
.databases
ってやると0バイトのこのファイルが生成される。何もせずに.exit
だと何も作られない。
テーブル作ってなんかやる
sqlite> create table prac (date_time text); sqlite> .tables prac sqlite> begin; sqlite> insert into prac values('日付 ' || strftime('%Y-%m-%d %H:%M:%S', datetime('now', 'localtime'))); sqlite> select * from prac; 日付 2013-10-06 16:08:42 sqlite>
begin;
しないとトランザクションが始まらない。
begin;
して何か操作するとprac.db-journalというのが作られて、commit;
rollback;
end;
するとなくなる。
endするとcommitされる。
commit/rollbackするとendしなくてもトランザクションが終わる。sqlplusのつもりでやってはいけない。
データをファイル出力する
select文の結果が見づらいのでね。
sqlite> .output test.txt sqlite> select * from prac; sqlite>
単にSQL実行結果の出力先を標準出力からファイルに向けただけ。
標準出力に戻すには
sqlite> .output stdout sqlite> select * from prac; 日付 2013-10-06 16:08:42 sqlite>
select文の結果を見やすくする
はじめからこれが出来ていればいいんですよ。。
sqlite> .header on sqlite> .mode column sqlite> .width 30 sqlite> select * from prac; date_time ------------------------------ 日付 2013-10-06 16:08:42
カラム幅をいちいち指定しないとデフォルトでぶつ切り表示されてしまうのが困りもの。
sqlite3起動パラメータでも指定可能。
PS$sqlite3.exe -header -column .\practice.db SQLite version 3.7.3 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> select * from prac; date_time ---------- 日付 2013-
カラム幅は指定できません。。
外部ファイルに記述したSQLを実行する
sqlite> .read aiueo.txt date_time ------------------------------ 日付 2013-10-06 16:08:42
alterが貧弱ゥ
alter table hoge add column piyo;
でカラムを追加するか
alter table hoge rename to piyo;
でテーブル名を変更するしかできない。
カラム名を変更したい場合は地道な作業が必要。
って、え。。railsのsqlite3アダプタってマイグレーションでカラム名変える時本当にそんなことやってんの。。
参考
- Query Language Understood by SQLite
- SQLiteのSQL文(テーブルを作成する) | SQLite入門
- .modeコマンド - SQLiteコマンドの使い方 - SQLite入門
- [SQLite] 外部ファイル内のSQLを実行する - Life with IT
- SQLiteでカラム名の変更をする方法 - Hacking My Way ~ itogのhack日記
などなど。