sqlite

Relaciones entre tablas de SQLite – Soporte para claves foráneas

Las relaciones entre tablas son fundamentales y realmente necesarias en el mundo de las bases de datos SQL.

El motor SQLite tiene un buen soporte para las relaciones entre las tablas, es decir, soporta las claves foráneas especificando relaciones de una tabla con otra.

Vamos a ver en este post cómo se usan las foreign keys en SQLite con algunos ejemplos simples.

Claves foráneas en SQLite

Nota importante: recuerda que debes habilitar el soporte para claves foráneas en caso de que las relaciones no funcionen.

Una clave foránea se indica al final de la creación de una tabla con:

FOREIGN KEY(clave_foranea) REFERENCES otra_tabla(campo_de_esa_tabla)

Nota: la clave foránea debe ser del mismo tipo que la clave primaria a la que se refiere.

Veamos un ejemplo sencillo de una tabla llamada grupos (grupos de alumnos) la cual queda definida con su clave primaria autoincrementable así:

See the gist on github.

Para crear la relación vamos a crear una tabla llamada alumnos, porque un alumno pertenece a un grupo. Así que la definición queda de la siguiente manera:

See the gist on github.

Al final de la definición de la tabla se especifica la relación.

Probar relaciones de tablas en SQLite

Para realizar una prueba vamos a insertar datos en grupos:

See the gist on github.

Lo interesante viene cuando insertamos alumnos con relación de grupos, pues si insertamos el id de grupo con un valor que existe todo va bien:

See the gist on github.

En este caso el grupo con id 1 sí existe, pues los que creamos al inicio ocupan el id 1, 2 y 3.

Pero al insertar un alumno con un id de grupo que no existe

See the gist on github.

Ocurre lo de la imagen, lo cual es una restricción porque no podemos crear relaciones a datos que no existen:

foreign key constraint failed

Por lo que podemos concluir que SQLite soporta completamente las relaciones entre tablas y las claves foráneas.

On delete y on update

Cabe mencionar que también soporta las instrucciones de On Delete y On Update como en otros motores. Un ejemplo de creación de tabla es el siguiente:

See the gist on github.

Conclusión

SQLite es un poderoso motor de bases de datos. No es multihilo ni tan robusto como otros, pero es uno de los mejores que conozco y que es portable entre distintas plataformas.

Dejo este enlace a la documentación oficial como referencia.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Imprimir PDF con Bot de Telegram

La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…

6 horas hace

Enviar mensaje con bot de Telegram usando JavaScript (lado del cliente)

Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…

22 horas hace

PHP: incrustar imagen en base64

El día de hoy te enseñaré algo muy sencillo pero útil al programar con PHP:…

23 horas hace

Plugin ESC POS – Actualización 3.4.0: imprimir HTML

El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…

2 días hace

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

1 semana hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

1 semana hace

Esta web usa cookies.