はじめてSQLite3を使ってみたまとめ
今まで仕事の開発ではリッチなSQL ServerとかOracleしか触った事がない環境だった。
今回はSQLiteを使う必要があって調べてみました。SQL*Plusみたいなものですね。
perl -MCPAN -e 'install "DBD::SQLite"' perl -MDBD::SQLite -e 'print $DBD::SQLite::VERSION'
データベースに接続
sqlite3 hoge.db
以下はsqlite>のモードでの専用コマンド
データベース一覧
.database
テーブル一覧
.table
select * from hoge;
ファイル読み込み
.read filename
終了
.quit .exit
Control + dでも終了できる。
データ型について
型があるものの、ものすごくフリーダム。エラーにもならないのですね。
TEXTに数値を入れると文字列とするなど勝手に変換するし、INTEGERに文字列を入れると文字列のまま格納されるのであんまり意味はない。
PKかつautonumber、auto-incrementなフィールドの作成方法
つまり,SQLite で auto-increment なフィールドを作りたければ,
INTEGER PRIMARY KEY を指定してあげればいいらしい
2.XX系と3.XX系のバージョンどちらでもNOT NULLつけても大丈夫だそうです。
CREATE TABLE test ( id INTEGER PRIMARY KEY, name VARCHAR(255) NOT NULL, UNIQUE(name) );
sqlite3 hoge.db < fuga.sql
日付関数 datetimeの扱い
insert時の時間がおかしかったので調べたら、datetime('now', 'localtime')にすると日本のタイムゾーンに対応できた。
sqlite> select datetime('now') ...> , datetime('now', 'localtime'); 2008-12-21 13:00:24|2008-12-21 22:00:24
その他参考サイト