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
コメント
コメントを投稿