0% encontró este documento útil (0 votos)
361 vistas13 páginas

SQL Lite 3 Manual

El documento muestra el uso de la línea de comandos "sqlite3" para interactuar con una base de datos SQLite. Se crean tablas, se insertan registros y se realizan consultas. El comando ".help" lista comandos especiales como ".schema" para mostrar la estructura de las tablas, y ".tables" para listar las tablas existentes.

Cargado por

Estanis Cae
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
361 vistas13 páginas

SQL Lite 3 Manual

El documento muestra el uso de la línea de comandos "sqlite3" para interactuar con una base de datos SQLite. Se crean tablas, se insertan registros y se realizan consultas. El comando ".help" lista comandos especiales como ".schema" para mostrar la estructura de las tablas, y ".tables" para listar las tablas existentes.

Cargado por

Estanis Cae
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 13

C:\programas\ejsqlite>sqlite3

SQLite version 3.7.3


Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
C:\programas\ejsqlite>sqlite3 agenda.db
SQLite version 3.7.3
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .databases
seq name file
--- --------------- ----------------------------------------------------------
0 main C:\programas\ejsqlite\agenda.db
sqlite>
sqlite> CREATE TABLE usuario (
...> claveusuario INT,
...> nombre VARCHAR(80),
...> email VARCHAR(60)
...> );
sqlite> .tables
usuario
sqlite> .schema
CREATE TABLE usuario (
claveusuario INT,
nombre VARCHAR(80),
email VARCHAR(60)
);
sqlite> CREATE TABLE telefono (
...> claveusuario INT,
...> numero VARCHAR(15)
...> );
sqlite> .tables
telefono usuario
sqlite> .schema
CREATE TABLE telefono (
claveusuario INT,
numero VARCHAR(15)
);
CREATE TABLE usuario (
claveusuario INT,
nombre VARCHAR(80),
email VARCHAR(60)
);

1
sqlite>
sqlite> INSERT INTO usuario VALUES(
...> 1, "Fulano", "[email protected]");
sqlite> INSERT INTO usuario VALUES(
...> 2, "Mengano", "[email protected]");
sqlite> SELECT * FROM usuario;
1|Fulano|[email protected]
2|Mengano|[email protected]
sqlite> INSERT INTO telefono VALUES(
...> 1, "(854) 444 44 44");
sqlite> INSERT INTO telefono VALUES(
...> 1, "(854) 444 44 55");
sqlite> INSERT INTO telefono VALUES(
...> 2, "(857) 555 55 54");
sqlite>
sqlite> SELECT * FROM usuario,telefono USING(claveusuario);
1|Fulano|[email protected]|(854) 444 44 44
1|Fulano|[email protected]|(854) 444 44 55
2|Mengano|[email protected]|(857) 555 55 54
sqlite>

2
Comandos especiales
^

El programa "sqlite3.exe" para lnea de comandos permite usar sentencias SQL de forma interactiva
sobre cualquier base de datos. Tambin dispone de algunos comandos especficos para modificar la
forma de las salidas de los comandos, para activar o desactivar algunos parmetros, etc. En este
apndice los veremos en detalle:
Copia de seguridad
^

.backup [DB] FILE

Realiza una copia de seguridad de la base de datos DB en el fichero FILE. Si no se especifica una base
de datos, se hace una copia de la base de datos "main".
Por ejemplo:

sqlite> .databases
seq name file
--- --------------- ----------------------------------------------------------
0 main C:\programas\ejemplosqlite\agenda.db
1 temp
sqlite> .backup agenda.db agenda.bak
Error: unknown database agenda.db
sqlite> .backup main agenda.bak
sqlite>

Bail
^

.bail ON|OFF

Detiene la ejecucin despus de un error. Por defecto est en OFF.


Para ver cmo funciona este comando tenemos que crear un archivo con comandos SQL que despus
ejecutaremos. Partamos de este ejemplo, en un fichero con el nombre 'prueba.sql':

.echo on
.bail off
create table x(
clave integer,
texto text);
insert into x values(1,"uno");
insert into x values(2,"dos");
inserta into x values(3, "tres");
select * from x;
.quit

3
Si ejecutamos este fichero desde "sqlite3.exe", la salida es la siguiente:

C:>sqlite3 <prueba.sql
.bail off
create table x(
clave integer,
texto text);
insert into x values(1,"uno");
insert into x values(2,"dos");
Error: near line 8: near "inserta": syntax error
select * from x;
1|uno
2|dos
.quit

Si cambiamos la lnea de ".bail" y repetimos la ejecucin:

.echo on
.bail on
create table x(
clave integer,
texto text);
insert into x values(1,"uno");
insert into x values(2,"dos");
inserta into x values(3, "tres");
select * from x;
.quit

Si ejecutamos este fichero desde "sqlite3.exe", la salida es la siguiente:

C:>sqlite3 <prueba.sql
.bail on
create table x(
clave integer,
texto text);
insert into x values(1,"uno");
insert into x values(2,"dos");
Error: near line 8: near "inserta": syntax error

De modo que si se encuentra un error, la ejecucin se detiene.

Lista de bases de datos


^

4
.databases

Lista los nombres y los ficheros correspondientes de las bases de datos abiertas.

sqlite> .databases
.databases
seq name file
--- --------------- ----------------------------------------------------------
0 main C:\programas\ejemplosqlite\agenda.db
1 temp
sqlite>

Volcado de tablas
^

.dump [TABLE] ...

Hace un volcado de la tabla TABLE en formato de texto en forma de consultas SQL. Si no se especifica
una tabla, se vuelca la base de datos completa. Se pueden especificar varias tablas:
sqlite> .dump usuario
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE usuario(
claveusuario INT,
nombre TEXT,
email TEXT
);
INSERT INTO "usuario" VALUES(1,'Fulano','[email protected]');
INSERT INTO "usuario" VALUES(2,'Mengano','[email protected]');
COMMIT;
sqlite>

La tabla puede ser un patrn del tipo que se usa con el operador LIKE.
La salida se puede redirigir a un fichero de texto usando el comando ".output".

sqlite> .output database.txt


sqlite> .dump
sqlite> .output stdout
sqlite>

Activar o desactivar eco


^

5
.echo ON|OFF

Activa o desactiva el eco de los comandos introducidos:

sqlite> SELECT CURRENT_DATE;


2012-04-16
sqlite> .echo on
sqlite> SELECT CURRENT_DATE;
SELECT CURRENT_DATE;
2012-04-16
sqlite>

Cerrar el programa
^

.exit

Sale del programa en lnea de comandos.


Cambia el modo de salida
^

.explain [ON|OFF]

Permite cambiar de salida. Si se activa se muestran encabezados y se tabulan los listados generados
por las sentencias SELECT. Si no se especifica un parmetro, se asume que es ON:
sqlite> .explain on
.explain on
sqlite> INSERT INTO usuario VALUES(15, "Filano", "[email protected]");
sqlite> SELECT * FROM usuario;
clav nombre emai
---- ------------- ----
1 Fulano [email protected]
2 Mengano [email protected]
15 Filano [email protected]
sqlite>

Encabezados de listas
^

.header(s) ON|OFF

Activa o desactiva los encabezados de las salidas de las selecciones:

sqlite> SELECT * FROM usuario;


1|Fulano|[email protected]
2|Mengano|[email protected]
15|Filano|[email protected]
sqlite>

6
Ayuda
^

.help

Muestra el listado de comandos especiles, su sintaxis y su funcin.


Importar desde fichero
^

.import FILE TABLE

Importa datos desde el fichero FILE a la tabla TABLE.


Supongamos que tenemos un fichero de texto con los datos que queremos insertar en una tabla, cada
fila en una fila del fichero, y cada columna separada con el carcter '|'. Los valores de las columnas no
estn delimitados con comillas:
datos.dat

16|Federico|[email protected]
17|Mauricio|[email protected]
18|Casimiro|[email protected]

Para importar el contenido del fichero usaremos el comando .import:

sqlite> .import datos.dat usuario


sqlite> SELECT * FROM usuario;
clav nombre emai
---- ------------- ----
1 Fulano [email protected]
2 Mengano [email protected]
15 Filano [email protected]
16 Federico [email protected]
17 Mauricio [email protected]
18 Casimiro [email protected]
sqlite>

Mostrar ndices
^

.indices [TABLE]

7
Muestra los nombres de todos los ndices. Si se especifica una tabla, slo se muestran los ndices de la
tabla indicada, o de las tablas que se ajusten al patrn, los patrones se crean igual que con el operador
LIKE, un '_' indica un caracter y '%' una cadena de 1 ms caracteres:

sqlite> CREATE INDEX nombre on usuario(nombre);


sqlite> .indices
nombre
sqlite> .indices us%
nombre
sqlite>

Cargar una librera


^

.load FILE [ENTRY]

Permite cargar una librera de extensin de SQLite. Estas libreras se crean en C y permiten definir
nuevas funciones que se pueden usar en consultas SQLite.
Archivo de registro
^

.log FILE|off

Activa un archivo de registro, si se especifica un nombre de archivo en FILE. El fichero puede ser
stderr o stdout. Para desactivarlo usar .log off.
sqlite> .log database.log
sqlite> CREATE INDEX nombre on usuario(nombre);
Error: index nombre already exists
sqlite> .log off
sqlite>

El fichero "database.log" queda as:

C:\programas\ejemplosqlite>type database.log
(1) index nombre already exists

Cambiar el modo de salida


^

.mode MODE [TABLE]

Permite seleccionar varios modos de salida, donde MODE puede tomar cualquiera de los siguientes
valores:

8
csv: valores separados por comas
column: columnas alineadas a la izquierda. Se puede especificar el ancho de cada
columna con el comando .width
html: formato HTML para tablas
insert: sentencias de insercin SQL insert para la tabla indicada
line: un valor en cada lnea
list: valores delimitados por el separador definido mediante el comando .separator
cadena
tabs: valores separados por tabuladores
tcl: elementos de lista TCL
Por ejemplo, veamos la salida en modo tabs:
sqlite> .mode tabs
sqlite> SELECT * FROM usuario;
claveusuario nombre email
1 Fulano [email protected]
2 Mengano [email protected]
15 Filano [email protected]
sqlite>

.nullvalue STRING

Permite especificar la cadena que se mostrar en lugar de los valores NULL.

sqlite> INSERT into usuario (claveusuario,nombre) values(20, "Cucufato");


sqlite> SELECT * FROM usuario WHERE claveusuario=20;
claveusuario,nombre,email
20,Cucufato,
sqlite> .nullvalue (nulo)
sqlite> SELECT * FROM usuario WHERE claveusuario=20;
claveusuario,nombre,email
20,Cucufato,(nulo)
sqlite>

.output FILENAME

Enva la salida al fichero indicado por FILENAME. Si se quiere volver a enviar la salida a la pantalla
usar "stdout" como nombre de fichero.
Cambiar el prompt
^

.prompt MAIN [CONTINUE]

9
Reemplaza el prompt por defecto. El primer parmetro es el prompt principal, que por defecto es
"sqlite> ". El segundo es opcional, y es el prompt que se muestra cuando la sentencia no est
completa, por defecto es "...> ".

sqlite> .prompt "comando> " "sigue> "


comando> SELECT *
sigue> FROM usuario;
claveusuario,nombre,email
1,Fulano,[email protected]
...

Salir del programa


^

.quit

Abandona el programa en lnea de comandos.


Ejecutar un fichero SQL
^

.read FILENAME

Ejecuta un fichero externo con sentencias SQL.


Restaurar base de datos
^

.restore [DB] FILE

Restaura el contenido de una base de datos DB o de la base de datos "main" si se omite el parmetro,
desde un fichero FILE generado mediante .backup.
sqlite> .restore main agenda.bak
sqlite> SELECT * from usuario;
claveusuario,nombre,email
1,Fulano,[email protected]
2,Mengano,[email protected]
sqlite>

Esquema de base de datos


^

.schema [TABLE]

10
Muestra las sentencias CREATE usadas para crear las tablas de la base de datos, o las de las tablas
especificadas mediante el patrn TABLE. El patrn se ajusta a las mismas reglas que el
operador LIKE.
sqlite> .schema usuario
CREATE TABLE usuario(
claveusuario INT,
nombre TEXT,
email TEXT
);
sqlite>

Definir separadores
^

.separator STRING

Cambia el separador usado por el modo de salida y en el comando .import.


sqlite> .separator "#~$"
sqlite> .mode list
sqlite> SELECT * FROM usuario;
claveusuario#~$nombre#~$email
1#~$Fulano#[email protected]
2#~$Mengano#[email protected]
sqlite>

Valores de opciones
^

.show

Muestra los valores actuales de algunas de las opciones de configuracin.

sqlite> .show
echo: off
explain: on
headers: on
mode: list
nullvalue: "(nulo)"
output: stdout
separator: "#~$"
stats: off
width: 4 13 4 4 4 13 2 13
sqlite>

Activar estadsticas
^

.stats ON|OFF

11
Activa (on) o desactiva (off) las estadsticas de SQLite:

sqlite> .stats on
sqlite> INSERT INTO usuario VALUES(3,"Tulano","[email protected]");
Memory Used: 65336 (max 123312) bytes
Number of Allocations: 113 (max 167)
Number of Pcache Overflow Bytes: 8872 (max 17744) bytes
Number of Scratch Overflow Bytes: 0 (max 0) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 1160 bytes
Largest Scratch Allocation: 0 bytes
Lookaside Slots Used: 6 (max 83)
Pager Heap Usage: 8720 bytes
Schema Heap Usage: 1904 bytes
Statement Heap/Lookaside Usage: 1648 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
sqlite>

Lista de tablas
^

.tables [TABLE]

Lista los nombres de las tablas en todas las bases de datos abiertas. Si se especifica el
parmetro TABLE se mostrarn nicamente los nombres de las tablas que se ajusten al patrn
indicado. El patrn tiene la misma sintaxis que el operador LIKE.
sqlite> CREATE TEMP TABLE user(
...> clave INTEGER,
...> nombre TEXT);
sqlite> .tables
telefono telefono2 user usuario
sqlite>

Definir tiempo lmite


^

.timeout MS

Permite definir el tiempo mximo durante el que se intentarn abrir las tablas bloquedas, en
milisegundos.

12
Anchura de columnas
^

.width NUM1 NUM2 ...

Asigna las anchuras de las columnas en los listados de modo columna:

sqlite> .mode column


sqlite> .width 3 25 20
sqlite> SELECT * FROM usuario;
cla nombre email
--- ------------------------- --------------------
1 Fulano [email protected]
2 Mengano [email protected]
3 Tulano [email protected]
sqlite>

Medida de tiempos
^

.timer ON|OFF

Activa o desactiva la medida de tiempo de CPU:

sqlite> SELECT * FROM usuario;


cla nombre email
--- ------------------------- --------------------
1 Fulano [email protected]
2 Mengano [email protected]
3 Tulano [email protected]
CPU Time: user 0.000000 sys 0.000000
sqlite>

sqlite> SELECT * FROM usuario; cla nombre email --- ------------------------- -------------------- 1
Fulano [email protected] 2 Mengano [email protected] 3 Tulano [email protected]
CPU Time: user 0.000000 sys 0.000000 sqlite>

13

También podría gustarte