SQLite

コマンドラインから直接SQLを発行して操作する方法をまとめます。

インストール

Macportsなら

$ sudo port install sqlite3

起動と終了

$ sqlite3 test.db

作成されたテーブルはtest.dbに保存されます。

終了するには、

sqlite> .quit

と入力するか、Ctrl+dを入力します

データの読み込み

sqlite> .import datafile.txt table

デフォルトの区切り文字は"|"となっています。区切り文字を","に変更する場合は、

sqlite> .separator ","

ここで、","ではなく , とダブルクォートを外しても構いません。

データファイルに余分な空白などが含まれている場合、全て含めてデータとして読み込まれてしまうため、注意が必要です。

SQL

sqlite> create table stock (code numeric primary key, name varchar(10), price integer);

sqlite> insert into stock values (100, 'file', 50);
sqlite> insert into stock values (100, 'file', 55);
Error: column code is not unique
sqlite> insert into stock values (101, 'paper', 10);
sqlite> insert into stock values (130, 'pen', 100);
sqlite> insert into stock values (230, 'eraser', 200);
sqlite> insert into stock values (300, 'ink', 20);
sqlite> insert into stock values (301, 'ruler', 1000);
sqlite> insert into stock values (500, 'desk', 10000);
sqlite> insert into stock values (510, 'chair', 3000);
sqlite> select * from stock;
100|file|50
101|paper|10
130|pen|100
230|eraser|200
300|ink|20
301|ruler|1000
500|desk|10000
510|chair|3000
sqlite> select name from stock ;
file
paper
pen
eraser
ink
ruler
desk
chair
sqlite> select * from stock where price < 1000 ;
100|file|50
101|paper|10
130|pen|100
230|eraser|200
300|ink|20
sqlite> select * from stock where price < 1000 and price >= 100  ;
130|pen|100
230|eraser|200
sqlite> delete  from schedule;
sqlite> select * from schedule,tester where schedule.id = tester.id;
1001|20110401|1|1|tanaka
1002|20110402|2|2|suzuki
1012|20110412|3|3|kimura
2001|20110505|4|4|yamada
2035|20110515|2|2|suzuki
2135|20110525|1|1|tanaka
2329|20110602|4|4|yamada
2731|20110618|3|3|kimura
sqlite> select * from schedule order by date desc;
2731|20110618|3
2329|20110602|4
2135|20110525|1
2035|20110515|2
2001|20110505|4
1012|20110412|3
1002|20110402|2
1001|20110401|1
sqlite> select count(*) from schedule;
8
sqlite> select tester.name,count(*) from schedule,tester where schedule.id=tester.id group by tester.id;
tanaka|2
suzuki|2
kimura|2
yamada|2

コメント

このブログの人気の投稿

git-svnでFILE was not found in commit HASH

神スクリプトの使い方 Codeforces編

JavaでIRCクライアント