Introducción

Para crear una base de datos ejecute el comando sqlite3:
$ 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
2009-10-04