Cómo Instalar las Bases de Datos Sakila y World en MariaDB con Docker (Guía Completa para Practicar SQL)
Si estás aprendiendo SQL, una de las mejores formas de practicar es utilizando bases de datos reales con muchas tablas y relaciones. Dos de las bases de datos de ejemplo más utilizadas en el mundo son Sakila y World, creadas por MySQL para aprendizaje y pruebas.
En esta guía aprenderás cómo descargar, descomprimir e instalar las bases de datos Sakila y World en MariaDB dentro de Docker, paso a paso.
Al finalizar tendrás dos bases de datos listas para practicar:
- consultas SELECT
- JOIN entre tablas
- GROUP BY
- subconsultas
- análisis de datos reales
Si este tutorial te ayuda, recuerda suscribirte al canal y darle like al vídeo para más contenido sobre SQL, Docker y desarrollo backend.
Tabla de contenidos
- 1 Requisitos previos
- 2 Paso 1: Crear una carpeta para las bases de datos
- 3 Paso 2: Descargar las bases de datos oficiales
- 4 Paso 3: Descomprimir los archivos
- 5 Paso 4: Copiar los archivos SQL al contenedor Docker
- 6 Paso 5: Conectarse a MariaDB dentro del contenedor
- 7 Paso 6: Cargar la base de datos Sakila
- 8 Paso 7: Cargar la base de datos World
- 9 Paso 8: Dar permisos al usuario alumno
- 10 Paso 9: Verificar que las bases de datos se cargaron
- 11 Paso 10: Verificar las tablas
- 12 Paso 11: Salir de MariaDB
- 13 Paso 12: Probar acceso con el usuario alumno
- 14 Primeras consultas SQL para practicar
- 15 Acceso con phpMyAdmin (Opcional)
- 16 Problemas comunes
- 17 Próximos pasos
Requisitos previos
Antes de empezar, asegúrate de tener preparado tu entorno.
Necesitas:
- Debian 13 o Linux similar
- Docker instalado
- Docker Compose instalado
- El entorno Docker con MariaDB ya creado
- Acceso a una terminal
Verifica que el contenedor de MariaDB está corriendo:
docker ps | grep mariadb
Deberías ver algo como:
mariadb mariadb:latest Up
Si no aparece, inicia los contenedores:
cd docker-env
docker-compose up -d
Espera unos segundos a que MariaDB termine de iniciar.
Paso 1: Crear una carpeta para las bases de datos
Vamos a crear una carpeta donde descargaremos los archivos SQL.
mkdir -p /tmp/databases
Ahora entra en esa carpeta:
cd /tmp/databases
Aquí trabajaremos con las descargas.
Paso 2: Descargar las bases de datos oficiales
Vamos a descargar las bases de datos desde el sitio oficial de MySQL.
Descargar Sakila
wget https://downloads.mysql.com/docs/sakila-db.tar.gz
Descargar World
wget https://downloads.mysql.com/docs/world-db.tar.gz
Verifica que se descargaron correctamente:
ls
Deberías ver:
sakila-db.tar.gz
world-db.tar.gz
Paso 3: Descomprimir los archivos
Los archivos están comprimidos en formato tar.gz, así que debemos descomprimirlos.
Descomprimir Sakila
tar -xzf sakila-db.tar.gz
Se creará una carpeta:
sakila-db
Dentro encontrarás:
sakila-schema.sql
sakila-data.sql
sakila.mwb
Descomprimir World
tar -xzf world-db.tar.gz
Se creará una carpeta:
world-db
Dentro verás:
world.sql
Puedes verificar todo con:
ls -la sakila-db
ls -la world-db
Paso 4: Copiar los archivos SQL al contenedor Docker
Ahora debemos copiar los scripts SQL al contenedor MariaDB.
Ejecuta:
docker cp sakila-db/sakila-schema.sql mariadb:/tmp/
docker cp sakila-db/sakila-data.sql mariadb:/tmp/
docker cp world-db/world.sql mariadb:/tmp/
Esto copiará los archivos dentro del contenedor en la carpeta /tmp.
Paso 5: Conectarse a MariaDB dentro del contenedor
Ahora vamos a conectarnos al servidor MariaDB.
docker exec -it mariadb mariadb -u root -proot
Si todo funciona verás:
MariaDB [(none)]>
Esto significa que ya estás dentro del servidor de base de datos.
Paso 6: Cargar la base de datos Sakila
Primero cargaremos la estructura de las tablas.
SOURCE /tmp/sakila-schema.sql;
MariaDB ejecutará todas las instrucciones para crear la base de datos y sus tablas.
Ahora carga los datos:
SOURCE /tmp/sakila-data.sql;
Este proceso insertará miles de registros en las tablas.
Puede tardar unos segundos.
Paso 7: Cargar la base de datos World
Ahora carga la base de datos World:
SOURCE /tmp/world.sql;
Este archivo crea las tablas e inserta los datos automáticamente.
Paso 8: Dar permisos al usuario alumno
Para que el usuario alumno pueda trabajar con estas bases de datos debemos darle permisos.
Ejecuta:
GRANT SELECT ON sakila.* TO 'alumno'@'%';
GRANT SELECT ON world.* TO 'alumno'@'%';
FLUSH PRIVILEGES;
Esto permitirá al usuario consultar los datos.
Si quieres que los alumnos puedan practicar también con INSERT, UPDATE o DELETE, usa:
GRANT ALL PRIVILEGES ON sakila.* TO 'alumno'@'%';
GRANT ALL PRIVILEGES ON world.* TO 'alumno'@'%';
FLUSH PRIVILEGES;
Paso 9: Verificar que las bases de datos se cargaron
Comprueba que todo se creó correctamente:
SHOW DATABASES;
Deberías ver algo parecido a:
information_schema
mysql
performance_schema
sakila
sys
tienda
world
Las bases importantes son:
- sakila
- world
Paso 10: Verificar las tablas
Revisar Sakila
USE sakila;
SHOW TABLES;
Verás tablas como:
actor
address
category
film
inventory
rental
staff
store
Revisar World
USE world;
SHOW TABLES;
Deberías ver:
city
country
countrylanguage
Paso 11: Salir de MariaDB
Para salir del cliente MariaDB escribe:
exit
O usa:
Ctrl + D
Paso 12: Probar acceso con el usuario alumno
Ahora probemos que el usuario alumno puede acceder.
Desde la terminal ejecuta:
docker exec -it mariadb mariadb -u alumno -palumno123
Dentro del cliente ejecuta:
SHOW DATABASES;
Deberías ver:
sakila
world
Si aparecen, todo funciona correctamente.
Primeras consultas SQL para practicar
Ahora puedes empezar a practicar SQL.
Ejemplo en Sakila:
USE sakila;
SELECT first_name, last_name
FROM actor
LIMIT 10;
Ejemplo en World:
USE world;
SELECT name, population
FROM country
WHERE continent = 'Europe'
LIMIT 10;
Estas bases de datos permiten practicar:
- consultas SELECT
- JOIN entre tablas
- filtros con WHERE
- agrupaciones con GROUP BY
- funciones agregadas
- subconsultas
Acceso con phpMyAdmin (Opcional)
Si tienes phpMyAdmin en tu entorno Docker, puedes acceder desde el navegador:
http://localhost:8081
Credenciales:
Usuario: alumno
Contraseña: alumno123
Problemas comunes
wget no está instalado
Instálalo con:
sudo apt update
sudo apt install wget -y
No existe el comando tar
Instala tar:
sudo apt install tar -y
El contenedor MariaDB no está corriendo
Verifica con:
docker ps
Si no aparece:
cd docker-env
docker-compose up -d
Error «Unknown database sakila»
Significa que el script no se ejecutó correctamente.
Vuelve a ejecutar:
SOURCE /tmp/sakila-schema.sql;
SOURCE /tmp/sakila-data.sql;
Próximos pasos
Ahora que tienes Sakila y World instaladas, puedes empezar a practicar SQL con ejercicios reales.
Algunas ideas para practicar:
- listar actores y películas
- encontrar los países más poblados
- calcular promedios con GROUP BY
- practicar JOIN entre múltiples tablas
- escribir subconsultas complejas
Estas bases de datos son utilizadas en universidades y cursos de bases de datos de todo el mundo para aprender SQL de forma práctica.
Si esta guía te ha sido útil, recuerda suscribirte al canal y dejar tu like para más tutoriales sobre SQL, Docker y desarrollo backend.