Unidad Didáctica 4. Creación de bases de datos en SQLite

Apuntes de BD para DAW, DAM y ASIR

José Juan Sánchez Hernández

Curso 2023/2024

1 SQLite

1.1 Características de SQLite

SQLite es un sistema gestor de bases de datos relacionales que está liberado bajo una licencia de dominio público, esto quiere decir que no tiene derechos de autor y que no existe ninguna restricción a la hora de utilizarlo.

Algunas de las características que hacen que SQLite sea un proyecto muy interesante son las siguientes:

1.2 Usos de SQLite

Importante:

Se recomienda leer la sección Appropiate uses for SQLite en la web oficial del proyecto, para conocer en qué situaciones es apropiado el uso de SQLite.

1.3 Instalación de sqlite3

La utilidad sqlite3, que es una aplicación de línea de comandos que nos permite interactuar con bases de datos SQLite.

1.3.1 Ubuntu

Para instalar sqlite3 en Ubuntu haremos lo siguiente:

sudo apt-get update
sudo apt-get install sqlite3

Una vez instalada la utilidad sólo tenemos que escribir sqlite3 en un terminal para iniciarla. Deberíamos obtener una salida similar a la que se muestra a continuación.

$ sqlite3
SQLite version 3.22.0 2018-01-22 18:45:57
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>

1.3.2 Otras plataformas

Para instalar sqlite3 en otras plataformas sólo habrá que descargar el archivo binario de la web oficial.

1.4 Comandos de sqlite3 (dot-commands)

Los dot-commands son comandos que nos permiten configurar la utilidad sqlite3. Estos comandos se diferencian de las sentencias SQL porque siempre empiezan con un punto. Además los dot-commands no terminan en punto y coma, sin embargo las sentencias SQL siempre tienen que terminar en punto y coma.

Algunos de los dot-commands que vamos a utilizar son los siguientes:

Comando Descripción
.help Muestra la lista completa de todos los dot-commands disponibles.
.quit Se usa para salir de sqlite3.
.show Muestra algunos de la configuración actual de sqlite3.
.databases Muestra una tabla con todas las bases de datos adjuntas.
.tables Muestra las tablas y vistas de las bases de datos main y temp.
.schema Muestra el comando SQL que se ha utilizado para crear una tabla, vista, índice, etc.
.headers Muestra/Oculta los nombres de las columnas. Por defecto está a off.
.mode Configura cómo será formateada la salida de los datos. Por defecto está en list.
.dump Genera los comandos SQL necesarios para recrear una o más tablas de la base de datos.

1.4.1 .databases

1.4.1.1 Uso

.databases

1.4.1.2 Descripción

Muestra una tabla con todas las bases de datos adjuntas. La tabla que se muestra tiene el siguiente formato:

Nombre de la columna Tipo Descripción
seq Integer Número de base de datos (0: main y 1: temp)
name Text Nombre lógico de la base de datos
file Text Ruta donde se encuentra el archivo de la base de datos

La primera base de datos será main y tiene como número de secuencia el 0. La segunda base de datos será temp y tendrá el número de secuenca 1. Esta base de datos es donde se crean los objetos temporales y no siempre aparecerá en el listado. Si existen más bases de datos adjuntas aparecerán a continuación.

1.4.2 .tables

1.4.2.1 Uso

.tables [table-pattern]

1.4.2.2 Descripción

Muestra las tablas y vistas de las bases de datos main y temp.

1.4.3 .schema

1.4.3.1 Uso

.schema [table-pattern]

1.4.3.2 Descripción

Muestra el comando SQL que se ha utilizado para crear una tabla, vista, índice, etc.

Si no especifica ningún parámetro se muestran los comandos SQL para crear cada uno de los objetos de las bases de datos main y temp.

1.4.4 .headers

1.4.4.1 Uso

.headers [on | off]

1.4.4.2 Descripción

Muestra/Oculta los nombres de las columnas. Por defecto está a off.

1.4.5 .mode

1.4.5.1 Uso

.mode (colum[s]|csv|html|insert|line[s]|list|tabs|tcl) [table-name]

1.4.6 Descripción

Configura cómo será formateada la salida de los datos. Por defecto está en list.

Las opciones que podemos escoger son las siguientes:

1.5 Datatypes In SQLite Version 3

Reference.

Reference.

1.7 SQL As Understood By SQLite

Referencia.

1.8 Frequently Asked Questions

Referencia.

As of version 3.6.19 (2009-10-14), SQLite supports foreign key constraints. But enforcement of foreign key constraints is turned off by default (for backwards compatibility). To enable foreign key constraint enforcement, run PRAGMA foreign_keys=ON or compile with -DSQLITE_DEFAULT_FOREIGN_KEYS=1.

2 Manipulación de Bases de Datos

2.1 Crear una base de datos

2.1.1 Desde la utilidad sqlite3

Podemos crear una base de datos SQLite con la utilidad sqlite3 desde la línea de comandos. Por ejemplo, para crear una base de datos con el nombre agenda.db ejecutaremos el siguiente comando.

sqlite3 agenda.db

Este comando creará un archivo donde se almacenará toda la información de nuestra base de datos.

El encoding que se utilizará por defecto al crear la base de datos será utf8.

2.1.2 PRAGMA encoding;

Las sentencias PRAGMA son una extensión de SQL que se han añadido de forma específica en SQLite y nos permiten modificar el funcionamiento de la librería SQLite.

La sentencia PRAGMA encoding nos permite consultar y modificar el encoding utilizado en la base de datos.

Ejemplo:

sqlite3> PRAGMA encoding;
UTF-8

Los diferentes tipos de encoding que podemos seleccionar son los siguientes:

3 Referencias

4 Licencia

Licencia de Creative Commons
Esta página forma parte del curso Bases de Datos de José Juan Sánchez Hernández y su contenido se distribuye bajo una licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.