$ sqlite3 test.db SQLite version 3.3.8 Enter ".help" for instructions sqlite> create table t1 (t1key INTEGER PRIMARY KEY,data TEXT,num double,timeEnter DATE); sqlite> insert into t1 (data,num) values ('This is sample data',3); sqlite> insert into t1 (data,num) values ('More sample data',6); sqlite> insert into t1 (data,num) values ('And a little more',9); sqlite> .q lhp@nereida:~/Lperl/src/SQLITE/examples$ ls -l total 4 -rw-r--r-- 1 lhp lhp 2048 2007-08-17 11:02 test.db
No es necesario entrar en modo interactivo:
lhp@nereida:~/Lperl/src/SQLITE/examples$ sqlite3 test.db "insert into t1 (data,num) values ('Another item',12);"
Un select retorna los valores en la tabla:
lhp@nereida:~/Lperl/src/SQLITE/examples$ sqlite3 test.db SQLite version 3.3.8 Enter ".help" for instructions sqlite> select * from t1 limit 2; 1|This is sample data|3.0| 2|More sample data|6.0| sqlite> select * from t1 order by t1key limit 2 offset 2; 3|And a little more|9.0| 4|Another item|12.0|
El comando .table permite conocer los nombres de las tablas en la base de datos. Se puede obtener una información mas completa haciendo consultas a la tabla predefinida sql_master :
sqlite> .table t1 sqlite> select * from sqlite_master; table|t1|t1|2|CREATE TABLE t1 (t1key INTEGER PRIMARY KEY,data TEXT,num double,timeEnter DATE)
El comando .dump permite volcar información sobre los datos insertados en la base de datos:
sqlite> .dump BEGIN TRANSACTION; CREATE TABLE t1 (t1key INTEGER PRIMARY KEY,data TEXT,num double,timeEnter DATE); INSERT INTO "t1" VALUES(1, 'This is sample data', 3.0, NULL); INSERT INTO "t1" VALUES(2, 'More sample data', 6.0, NULL); INSERT INTO "t1" VALUES(3, 'And a little more', 9.0, NULL); INSERT INTO "t1" VALUES(4, 'Another item', 12.0, NULL); COMMIT;
La salida del comando .dump
puede ser filtrada:
lhp@nereida:~/Lperl/src/SQLITE/examples$ sqlite3 test.db ".dump" | sed -e 's/\<t1\(key\)\?\>/tabla\1/g' BEGIN TRANSACTION; CREATE TABLE tabla (tablakey INTEGER PRIMARY KEY,data TEXT,num double,timeEnter DATE); INSERT INTO "tabla" VALUES(1, 'This is sample data', 3.0, NULL); INSERT INTO "tabla" VALUES(2, 'More sample data', 6.0, NULL); INSERT INTO "tabla" VALUES(3, 'And a little more', 9.0, NULL); INSERT INTO "tabla" VALUES(4, 'Another item', 12.0, NULL); COMMIT;
El siguiente comando muestra como usar un filtro para obtener una modificación de la base de datos inicial:
$ sqlite3 test.db ".dump" | sed -e 's/\<t1\(key\)\?\>/tabla\1/g' | sqlite3 test2.db lhp@nereida:~/Lperl/src/SQLITE/examples$ ls -ltr total 8 -rw-r--r-- 1 lhp lhp 2048 2007-08-17 11:05 test.db -rw-r--r-- 1 lhp lhp 2048 2007-08-17 11:38 test2.db
Casiano Rodríguez León