Instalación y uso básico de SQLite en Ubuntu 18.04

En esta entrada vamos a ver cómo instalar la base de datos relacional SQLite, además de tratar con sus operaciones básicas. Lo cierto es que SQLite ha sido protagonista como actor secundario en muchas entradas de la web, durante todos estos años, por lo que ya era hora de dedicarle una entrada en exclusiva.

Para quien no la conozca se trata de una base de datos relacional, quizás una de las más utilizadas. Seguramente esta popularidad es debido a sus características únicas e inusuales, que la diferencian de otras a priori más potentes como MySQL, PostgreSQL, MS SQL Server u Oracle.

En esta entrada veremos su instalación en un sistema operativo GNU/Linux con Ubuntu 18.04, que es actualmente la versión LTS de la popular distribución sudafricana. En principio los pasos deberían ser similares para sistemas con paquetería APT, como Debian o Linux Mint.

Pero vayamos por partes…

¿Qué es SQLite? ¿Para qué sirve?

Se trata de un sistema de gestión de bases de datos relacional, con la intención de ser minimalista. Está escrito en C y es un proyecto de dominio público, por lo que se puede utilizar libremente.

Una de sus diferencias principales frente a otros sistemas de gestión de base de datos cliente-servidor, es que su motor no es un proceso independiente con el que el programa principal se comunica. En su lugar la biblioteca SQLite se enlaza con el programa pasando a ser parte integral del mismo. El programa utiliza la funcionalidad de SQLite a través de llamadas simples a subrutinas y funcionales. Esto hace que se reduzca la latencia en el acceso a la base de datos, debido a que las llamadas a funciones son más eficientes que la comunicación entre procesos. El conjunto de la base de datos, esto es, las definiciones, tablas, índices y los propios datos, son guardados como un solo ficheros estándar en la máquina host anfitrión. Esto se logra bloqueando todo el fichero de base de datos al principio de cada transacción.

En la versión 3 de SQLite se permiten base de datos de hasta 2 Terabytes, además de permitir campos tipo BLOB.

Mozilla Firefox, Clementine, Skype o XBMC, por mencionar algunos proyectos, utilizan este gestor de base de datos.

Instalación de SQLite en Ubuntu 18.04

Su instalación es bien sencilla, ya que vamos a utilizar los repositorios de la distribución:

1
2
$ sudo apt update
$ sudo apt install sqlite3

Para llamar a la aplicación sólo hemos de escribir “sqlite3” en la consola de comandos:

1
2
3
4
5
6
root@servubuntu :# sqlite3
SQLite version 3.27.2 2019-02-25 16:06:06
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>

Tal y como se observa nos muestra la versión instalada y su fecha de lanzamiento.

Para recibir ayuda con los opciones disponibles debemos escribir: “.help

En el siguiente apartado veremos las operaciones más habituales.

Para salir de la consola sólo hemos de escribir “.quit” o bien CTRL+D

Trabajando con SQLite

Crear una nueva base de datos

Vamos a crear una nueva base de datos llamada “test.db”, vosotros podéis escoger el nombre que más os apetezca. Si esta base de datos ya existe simplemente accedemos a ella.

1
$ sqlite3 test.db

La diferencia entre el comando “sqlite3” y el comando “sqlite3 test.db” es que el primero creará una base de datos temporal para la sesión y caducará cuando la sesión se cierre.

Crear la primera tabla

Vamos a crear una nueva tabla, llamada alumnos, con los atributos:

1
2
3
reg_no INT(4)
Name VARCHAR(20)
Marks INT(3)

De la siguiente manera

1
2
3
4
5
sqlite> CREATE TABLE alumnos (
   ...> reg_no INT(4),
   ...> name   VARCHAR(20),
   ...> marks  INT(3)
   ...> );

Si ya has trabajado con cualquier otro gestor de base de datos, conocerás los comandos SQL.

Podemos ver la tabla recién creada, escribiendo “.table

1
2
sqlite> .table
alumnos

También podemos ver el esquema utilizado en la tabla, mediante la orden “.schema

1
2
3
4
5
6
sqlite> .schema alumnos
CREATE TABLE alumnos (
reg_no INT(4),
name   VARCHAR(20),
marks  INT(3)
);

Insertar datos

Vamos a insertar algunos datos:

1
2
3
201, David, 87
202, Carmen, 86
203, Nadia, 90

De la siguiente manera:

1
2
3
sqlite> INSERT INTO alumnos (reg_no, name, marks) VALUES (201, 'David', 87);
> INSERT INTO alumnos (reg_no, name, marks) VALUES (202, 'Carmen', 86);
> INSERT INTO alumnos (reg_no, name, marks) VALUES (203, 'Nadia', 90);

Recuperación de datos

Puede recuperar datos de la tabla con la instrucción select:

1
2
3
4
sqlite> SELECT * FROM alumnos;
201|David|87
202|Carmen|86
203|Nadia|91

Muestra el resultado en modo predeterminado (lista).

Podemos cambiar el modo con el comando “.mode

Ingresamos la columna “.mode” para solicitar y luego realizamos una consulta de selección. Mostrará el resultado en un formato de columna.

1
2
3
4
5
6
7
sqlite> .mode column
> select * from student;
reg_no      name        marks     
----------  ----------  ----------
201         David      87        
202         Carmen     86        
203         Nadia      91

Las órdenes delete, alter, drop, etc, utilizan la misma sintaxis que SQL

Comandos especiales

Ya vimos que los comandos mostrados por “.help” , ahora vamos a entender algunos otros comandos importantes.

Por ejemplo con “.databases“, podemos listar información de la base de datos seleccionada:

1
2
3
4
sqlite> .database
seq  name             file                                                      
---  ---------------  --------------------
0    main             /home/david/test.db

O bien listar las tablas con “.table“, como sigue:

1
2
sqlite> .table
alumnos

En cambio con “.show” se nos muestra la configuración actual:

1
2
3
4
5
6
7
8
9
10
sqlite> .show
     echo: off
  EXPLAIN: off
  headers: off
     mode: list
nullvalue: ""
   output: stdout
separator: "|"
    stats: off
    width:

Estos atributos se pueden cambiar a posteriori.

Enviar la información a un fichero

Para enviar la información deseada a un fichero, simplemente debemos utilizar “.output“, y a partir de entonces todas las sentencias y resultados se enviarán al fichero:

1
sqlite> .output salida.txt

O podemos utilizar “.once” seguido del nombre de archivo si deseamos que solo se redirija el resultado de la próxima consulta.

Y esto es todo, espero que esta información os pueda ser de utilidad en algún momento. Nos vamos leyendo.

Fuentes consultadas

Linuxsize.com – Install and use SQLite in Linux

4 Respuestas

  1. Jimmy Olano dice:

    ¡Hola sr. David! Muy bueno el artículo, os escribo para una fe de errata en el comando mode, debería ser en minúsculas:

    .mode column

    El otro detalle es que la versión que yo instalé por los repositorios de Ubuntu es bastante vieja, la 3.22.0 del 22 enero 2018, ya estoy buscando una versión más reciente ¡gracias por el artículo!

  2. ks7000 dice:

    ¡Hola! Hemos publicado un tutorial sobre SQLite3 acerca de la importación de datos en CSV (exportación también). Este artículo forma parte importante para que los lectores y lectoras puedan instalar y aprender lo básico de SQLite3 y luego continuar con aquel artículo. Tendréis un “pingback” en algún momento: por favor aceptadlo, nuestro agradecimiento sincero.

    Esto forma parte de la consolidación y desarrollo de una federación de blogs con WP, inspirado por « colaboratorio. net »

    ¡Gracias!

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies
A %d blogueros les gusta esto: