Publicado el 14 de Enero del 2017
1.345 visualizaciones desde el 14 de Enero del 2017
549,8 KB
9 paginas
Creado hace 18a (11/12/2006)
Pruebas de Sqlite en un sistema Linux
guia para iniciarse
1.Generalidades
Sqlite es una base de datos muy similar a la conocida Access del mundo Windows pero a diferencia
de esta posee una serie de ventajas que la hacen interesante de aplicar. Para comenzar es
multiplataforma y cumple con los estándares (en su mayoría) SQL92 por lo que su sintaxis y forma
de uso casi no posee curva de aprendizaje a los conocedores de SQL y sus MySql, porque además
como este ultimo (implementación de mysql en php) sqlite también esta contemplada en el
tratamiento dinámico de php profusamente.
Sqlite se puede usar en modo ventana de comandos (Shell) o embebido en aplicaciones de codigo
(casi cualquier lenguaje de programación directamente o indirectamente) por ejemplo c, c++, bash
etc. En aplicaciones se puede utilizar con OpenOffice mediante la aplicación de los drivers ODBC
adecuados. Sqlite es un motor que trabaja embebido con la aplicación que lo use (en el servidor, en
programas escritos por nosotros, etc) y otra de sus ventajas es la portabilidad.
Sqlite es ideal para trabajar con volúmenes medianos o pequeños de información, de manera ágil y
eficiente. Aunque sus diseñadores aducen que es posible manejar bases de datos de 2 terabytes sin
mayores inconvenientes.
Cuando un Mysql nos queda grande la solución ideal de código abierto, libre y gratuito es Sqlite.
Este se descarga de su sitio en internet http://www.sqlite.org.
Recordemos que para instalar sqlite es necesario estar corriendo el servidor local de la máquina
(Localhost) tanto en linux como en windows, pues hay sqlite para este sistema operativo también, y
cuya instalación es mas sencilla porque es un ejecutable que se descarga de la misma pagina que el
anterior.
Una de las ventajas de Sqlite es que permite trabajar en dos modalidades: carga en memoria o en
disco, pudiendo pasar la base de uno a otro estado con un par de comandos. La modalidad de cargar
en memoria brinda rapidez adicional
2. Instalacion en el shell de linux
La operación es sencilla, una vez ubicado el archivo en el sitio de descargas (en nuestro caso es
sqlite3.3.8.tar.gz) lo descomprimimos y nos queda la carpeta “sqlite3.3.8” Allí dentro usando los
privilegios de root lo creamos e instalamos según esta secuencia que reproducimos a continuación:
por ejemplo:
tar xzf sqlite.tar.gz ;# descomprimimos en una carpeta
mkdir bld ;# creamos un directorio dentro de
“sqlite” para trabajar
cd bld ;# cargamos el directorio creado
../sqlite/configure ;# corremos el script para configurar
Sqlite a nuestro sistema
make ;# creamos la instalacion
make install ;# la instalamos en el sistema.
Esta instalación colocara el motor de la base de datos dentro de los comandos del bash (ventana o
shell) que nos permitirá llamarla invocando (en mi caso)
[edwin@localhost ~]$ sqlite3
SQLite version 3.3.8
Enter ".help" for instructions
sqlite>
Demostrando que la base corre y esta pronta a recibir nuestras instrucciones.
3. Manejando algunas generalidades
Una de la primeras cosas que suelen enloquecer a quienes venimos de MySql es el uso de los
comandos con el punto delante= “.help” Esto que es una trivialidad es razoné para infinidad de
errores al inicio, púes al no incluir este punto suelen saltar errores y lo primero que pensamos es
“¿en donde esta la falla?”
Asi que para los comandos principales no olvidemos el punto delante. Para las sentencias de uso de
la base la sintaxis es similar a la de sql y Mysql sin mayores complicaciones, incluyendo el “;” al
final de cada sentencia. Si no lo hacemos el Sqlite nos dira al igual que mysql que “....>” falta
cerrarla.
4. Ejemplo de entrada
Para entrar y curiosear es como vimos anteriormente. Para acceder al menú de ayudas debes colocar
“.help” y para salir al prompt del sistema “.exit”:
[edwin@localhost pruebas_sqlite]$ sqlite3
SQLite version 3.3.8
Enter ".help" for instructions
sqlite> .help
.databases List names and files of attached databases
.dump ?TABLE? ... Dump the database in an SQL text format
.echo ON|OFF Turn command echo on or off
.exit Exit this program
.explain ON|OFF Turn output mode suitable for EXPLAIN on or off.
.header(s) ON|OFF Turn display of headers on or off
.help Show this message
.import FILE TABLE Import data from FILE into TABLE
.indices TABLE Show names of all indices on TABLE
.load FILE ?ENTRY? Load an extension library
.mode MODE ?TABLE? Set output mode where MODE is one of:
csv Commaseparated values
column Leftaligned columns. (See .width)
html HTML <table> code
insert SQL insert statements for TABLE
line One value per line
list Values delimited by .separator string
tabs Tabseparated values
tcl TCL list elements
.nullvalue STRING Print STRING in place of NULL values
.output FILENAME Send output to FILENAME
.output stdout Send output to the screen
.prompt MAIN CONTINUE Replace the standard prompts
.quit Exit this program
.read FILENAME Execute SQL in FILENAME
.schema ?TABLE? Show the CREATE statements
.separator STRING Change separator used by output mode and .import
.show Show the current values for various settings
.tables ?PATTERN? List names of tables matching a LIKE pattern
.timeout MS Try opening locked tables for MS milliseconds
.width NUM NUM ... Set column widths for "column" mode
sqlite>
aquí hemos llamado a la ayuda y nos ha dado el menú explicativo. Veamos ahora como listar las
bases de datos existentes, tablas y columnas. Un detalle importante es que debemos estar en el
directorio de trabajo que contenga las bases cuando abramos el shell (ventana de comandos) en
nuestro caso el clasico Bash invocando la base de datos como “sqlite3 base.db”:
sqlite> .database
seq name file
0 main /home/edwin/pruebas_sqlite/base.db
sqlite>
Ahota las tablas dentro de esta base de datos “base.db” y las columnas:
sqlite> .tables
Datos
sqlite> .schema Datos
CREATE TABLE Datos (id int(9) primary key, apellido chars(30), nombre chars(30),
dni inst (12), observaciones chars(255));
sqlite>
5. Creamos la primara base de datos
Para hacerlo simplemente escribimos en la ventana de comandos el nombre de la base que vamos a
crear, si existe esta se abrira para que trabajemos en ella. Por ejemplo escribimos “sqlite3 base.db”
que no tenemos aun. Se creara la base y luego procederemos a cargar las tablas y las columnas
mediante este comando “CREATE TABLE [nombre de la tabla] ( columna1, columna2, columna
etc);” Como en este caso que hemos creado la tabla “Datos”:
sqlite> CREATE TABLE Datos (
...> id int(3) not null,
...> Apellido char(30) not null,
...> Nombre char(30) not null,
...> Documentos char(30) not null,
...> Observaciones chat(60) not null,
...> primary key (id));
Lo cual una vez ingresado no nos da error, lo que significa que salio bien, cosa que confirmamos
con el comando .schema [tabla] :
sqlite> .schema Datos
CREATE TABLE Datos (
id int(3) not null,
Apellido char(30) not null,
Nombre char(30) not null,
Documentos char(30) not null,
Observaciones chat(60) not null,
primary key (id));
Podriamos haber creado la tabla “Datos” de varias maneras, sin indicar el tipo de datos (int= integer
o numeros enteros) caracteristicas (“not null” que significa que deben ser completadas) o la clave
primaria que es quien crea el autoincremento cuando se cargan nuevas filas de datos. Pero es
costumbre adquirida hacerlo de esta manera, por mas que posteriormente se puedan modificar.
Para eliminar una tabla que este mal o nos agrade se usa la sentencia “drop table”, en este ejemplo
teniamos dos tablas Datos y Otra:
sqlite> drop table Otra;
sqlite> .tables
Datos
La salida indica que solo queda Datos. Otra fue eliminada.
6. Cargamos las primeras filas de datos
Para hacerlo usamos la conocida sentencia “insert into [Tabla] (campos) values ('valores')” como
vemos en este modelo:
sqlite> insert into Datos (id,Apellido, Nombre, Documentos, Observaciones)
values ('1','Aguiar','Edwin','Si, tiene','Ninguna que destacar');
sqlite> select * from Datos;
1|Aguiar|Edwin|Si, tiene|Ninguna que destacar
Cargamos la primera fila y comprobamos con “select * from” en la tabla “Datos” la salida. Como
vemos da bien y seguimos cargando algunos registros mas, Como es notorio la sintaxis de sql y
mysql facilita las cosas para los que ingresen al sqlite. Y para lso novatos que prueban por primera
vez es sencillo de comprender ya que este lenguaje es muy racional y claro. Despues de un rato de
cargar datos tenemos que la base ya esta un poco mas amplia:
sqlite> select * from Datos;
1|Aguiar|Edwin|Si, tiene|Ninguna que destacar
2|Esparza|Silvina|Tambien posee|Esposa
3|Aguiar Esparza|Sabina|recien obtenido|hja de siete meses
Esta salida es un poco horrenda, para los que venimos de otras bases y estamos acostumbrados a
una presentación mejor, en sqlite esta es la que provee por defecto pero se puede mejorar con los
comandos “.mode MODE [TABLE]” de esta manera:
sqlite> .mode tabs Datos
sqlite> select * from Datos;
1 Aguiar Edwin Si, tiene Ninguna que destacar
2 Esparza Silvina Tambien posee Esposa
3 Aguiar Esparza Sabina recien obtenido hja de siete meses
Con lo cual ha mejorado un poco. Existen varios modos de configurar esta salida, descriptos en
“.help” El ancho de columnas también es
Comentarios de: Pruebas de SQLite en un sistema Linux - guía para iniciarse (0)
No hay comentarios