10 Ejercicios resueltos de Creación y Gestión de Tablas en MySQL: ¡Ideal para principiantes que buscan aprender SQL!
Aprendizaje Teórico: Fundamentos de Tablas en MySQL
Antes de sumergirnos en la práctica, es crucial entender qué es una tabla. Imagina una tabla como una hoja de cálculo, compuesta por filas y columnas. Cada columna representa un tipo de dato específico (como nombre
o edad
), mientras que cada fila es un registro único (los datos de una persona).
Estas tablas no flotan en el vacío; viven dentro de una base de datos, que actúa como un contenedor principal para todas nuestras tablas relacionadas. Por lo tanto, el primer paso siempre es crear y/o seleccionar la base de datos en la que vamos a trabajar.
Los comandos clave que usaremos son:
CREATE DATABASE
: Para crear el contenedor de nuestras tablas.USE
: Para seleccionar la base de datos con la que vamos a trabajar.CREATE TABLE
: Para construir una nueva tabla.ALTER TABLE
: Para modificar una tabla existente.DROP TABLE
: Para eliminar una tabla.
¡Paso Cero! Creando Nuestro Espacio de Trabajo 👷
Antes de crear cualquier tabla, debemos decirle a MySQL en qué base de datos la vamos a guardar. Si no lo hacemos, MySQL nos dará un error.
Primero, crearemos una base de datos llamada tienda_db
para nuestros ejercicios.
-- Crea una nueva base de datos si no existe.
-- Es una buena práctica para evitar errores si ya la habías creado antes.
CREATE DATABASE IF NOT EXISTS tienda_db;
Ahora que la base de datos existe, debemos seleccionarla para indicarle a MySQL que todos los comandos siguientes se ejecutarán dentro de ella.
-- Selecciona la base de datos 'tienda_db' para empezar a trabajar en ella.
USE tienda_db;
¡Listo! Ya tenemos nuestro «lienzo» preparado. Ahora, todas las tablas que creemos se almacenarán correctamente en tienda_db
.
¡Inténtalo Tú Mismo!
A continuación, te presentamos 10 desafíos diseñados para que apliques lo aprendido. Te animamos a que leas el enunciado de cada ejercicio y trates de escribir el código por tu cuenta antes de revisar la solución. ¡Es la mejor manera de aprender!
10 Ejercicios Resueltos de Creación y Gestión de Tablas
Ejercicio 1: Creando tu Primera Tabla
Problema: Ahora que estás dentro de la base de datos tienda_db
, crea una tabla llamada Usuarios
para almacenar información. Debe contener las siguientes columnas:
id
: Un número entero que se incrementa automáticamente y es la clave primaria.nombre
: Un texto de hasta 50 caracteres que no puede ser nulo.email
: Un texto de hasta 100 caracteres, único y no nulo.fecha_registro
: La fecha y hora en que se crea el registro, con el valor actual por defecto.
Solución:
-- Creamos la tabla 'Usuarios' dentro de la base de datos 'tienda_db' (previamente seleccionada con USE).
CREATE TABLE Usuarios (
-- 'id' es un entero, no nulo, se auto-incrementa y es la clave principal de la tabla.
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-- 'nombre' es un texto variable de hasta 50 caracteres y es obligatorio (NOT NULL).
nombre VARCHAR(50) NOT NULL,
-- 'email' es un texto de hasta 100 caracteres, debe ser único para cada usuario y es obligatorio.
email VARCHAR(100) NOT NULL UNIQUE,
-- 'fecha_registro' guarda la fecha y hora. Por defecto, tomará la del momento de la inserción.
fecha_registro TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Ejercicio 2: Insertando Datos en la Tabla
Problema: Inserta tres nuevos usuarios en la tabla Usuarios
que acabas de crear.
Solución:
-- Insertamos tres registros. No especificamos 'id' ni 'fecha_registro' porque se gestionan automáticamente.
INSERT INTO Usuarios (nombre, email) VALUES
('Ana García', 'ana.garcia@email.com'),
('Luis Morales', 'luis.m@email.com'),
('Sofía Torres', 'sofia.t@email.com');
Ejercicio 3: Añadiendo una Nueva Columna
Problema: Se necesita agregar una columna para almacenar la edad de los usuarios. Añade una columna llamada edad
de tipo entero a la tabla Usuarios
.
Solución:
-- Usamos ALTER TABLE para modificar la estructura de 'Usuarios'.
-- ADD COLUMN agrega una nueva columna llamada 'edad' de tipo entero.
ALTER TABLE Usuarios
ADD COLUMN edad INT;
Ejercicio 4: Modificando una Columna Existente
Problema: La columna nombre
debería permitir nombres más largos. Modifícala para que acepte hasta 100 caracteres.
Solución:
-- Modificamos la tabla 'Usuarios'.
-- MODIFY COLUMN cambia las propiedades de 'nombre' a VARCHAR(100), manteniendo la restricción NOT NULL.
ALTER TABLE Usuarios
MODIFY COLUMN nombre VARCHAR(100) NOT NULL;
Ejercicio 5: Creando una Tabla con Clave Foránea
Problema: Crea una tabla Pedidos
que se relacione con la tabla Usuarios
. Debe incluir:
pedido_id
: Entero autoincremental y clave primaria.usuario_id
: Entero que referencia alid
de la tablaUsuarios
.producto
: Texto de hasta 100 caracteres.cantidad
: Entero.
Solución:
-- Creamos la tabla 'Pedidos'.
CREATE TABLE Pedidos (
pedido_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-- Esta columna conectará con la tabla 'Usuarios'.
usuario_id INT,
producto VARCHAR(100) NOT NULL,
cantidad INT,
-- Definimos la clave foránea (FOREIGN KEY).
-- Esto asegura que cada 'usuario_id' en esta tabla debe existir en la columna 'id' de la tabla 'Usuarios'.
FOREIGN KEY (usuario_id) REFERENCES Usuarios(id)
);
Ejercicio 6: Eliminando una Columna
Problema: Has decidido que no necesitas almacenar la edad. Elimina la columna edad
de la tabla Usuarios
.
Solución:
-- Modificamos la tabla 'Usuarios' para eliminar una columna.
-- DROP COLUMN elimina permanentemente la columna 'edad' y todos sus datos.
ALTER TABLE Usuarios
DROP COLUMN edad;
Ejercicio 7: Renombrando una Tabla
Problema: El nombre Usuarios
es muy genérico. Renombra la tabla a Clientes
.
Solución:
-- Usamos RENAME TABLE para cambiar el nombre de 'Usuarios' a 'Clientes'.
-- ¡Ojo! Esto puede afectar a las claves foráneas que apuntan a esta tabla. Es importante actualizar las referencias si es necesario.
RENAME TABLE Usuarios TO Clientes;
Ejercicio 8: Creando una Tabla Temporal
Problema: Necesitas una tabla para un análisis rápido de emails. Crea una tabla temporal EmailsTemporales
con una única columna email
.
Solución:
-- CREATE TEMPORARY TABLE crea una tabla que solo existirá durante tu sesión actual.
-- Al cerrar la conexión con la base de datos, esta tabla se eliminará automáticamente.
CREATE TEMPORARY TABLE EmailsTemporales (
email VARCHAR(100) NOT NULL
);
Ejercicio 9: Añadiendo un Valor por Defecto a una Columna
Problema: En la tabla Pedidos
, quieres que la columna cantidad
tenga un valor por defecto de 1 si no se especifica al insertar un nuevo pedido.
Solución:
-- Modificamos la tabla 'Pedidos'.
-- ALTER COLUMN establece un valor por defecto para la columna 'cantidad'.
ALTER TABLE Pedidos
ALTER COLUMN cantidad SET DEFAULT 1;
Ejercicio 10: Eliminando una Tabla
Problema: Ya no necesitas la tabla Pedidos
. Elimínala de la base de datos (¡cuidado, esta acción es permanente!).
Solución:
-- DROP TABLE elimina permanentemente la tabla 'Pedidos' de la base de datos 'tienda_db'.
-- ¡Usa este comando con extrema precaución, ya que no se puede deshacer!
DROP TABLE Pedidos;
Preguntas Frecuentes (FAQs)
¿Qué pasa si olvido usar el comando USE
?
MySQL te devolverá un error como «No database selected». Es un error muy común al empezar. Siempre asegúrate de seleccionar una base de datos antes de intentar operar con tablas.
¿Qué es una clave primaria (PRIMARY KEY
) y por qué es importante?
Una clave primaria es una columna que identifica de forma única cada fila en una tabla. No puede contener valores nulos. Es fundamental para la integridad de los datos y para establecer relaciones entre tablas.
¿Cuál es la diferencia entre DROP TABLE
y TRUNCATE TABLE
?
DROP TABLE
elimina por completo la tabla, incluyendo su estructura y datos. TRUNCATE TABLE
, en cambio, elimina todos los registros (filas) de la tabla, pero mantiene su estructura intacta para que puedas seguir insertando datos.
¡Has dado un gran paso!
¡Felicidades! Al completar estos ejercicios, no solo has aprendido la sintaxis, sino que has entendido el flujo de trabajo correcto en MySQL: crear un espacio (base de datos), seleccionarlo y luego construir dentro de él (tablas). Estas son habilidades esenciales para cualquier persona que trabaje con datos.
¿Te ha gustado este tutorial? ¡Hay mucho más por descubrir! Visita nuestro blog para encontrar más artículos, tutoriales y ejercicios sobre MySQL y desarrollo web. ¡Sigue potenciando tus habilidades con nosotros!