10 Ejercicios de Inserción y Actualización de Datos en MySQL
Aprende a manipular información en bases de datos con estos 10 ejercicios resueltos de inserción y actualización de datos en MySQL. Domina los comandos fundamentales a través de ejemplos prácticos, con el esquema de la tabla de prueba y resultados reales de consola.
Aprendizaje teórico
Para que una base de datos sea verdaderamente útil, necesitamos poder agregarle información y modificarla cuando la realidad cambie. En MySQL, estas tareas diarias de manipulación (DML) se realizan mediante dos comandos fundamentales: INSERT y UPDATE.
¿Qué son y para qué sirven?
INSERT: se utiliza para añadir nuevas filas a una tabla. Imagina que estás anotando un nuevo contacto en tu agenda; INSERT es la acción de escribir esos nuevos datos.
UPDATE: permite modificar datos que ya existen. Es el equivalente a borrar el número antiguo de un contacto con un lápiz y escribir el nuevo.
¿Cómo funcionan de manera sencilla?
Para insertar, utilizamos INSERT INTO especificando el nombre de la tabla y las columnas, seguido de VALUES con los datos a guardar.
Para actualizar, usamos UPDATE indicando la tabla y SET para establecer los nuevos valores. Importante: un UPDATE casi siempre debe ir acompañado de WHERE para indicar exactamente qué fila modificar. Si lo omites, cambiarás todos los registros de la tabla por accidente.
Base de datos y tabla de prueba para los ejercicios
Para realizar estos 10 ejercicios de manera práctica, trabajaremos sobre la tabla productos en una base de datos de tecnología. Si deseas ejecutar las consultas en tu propio MySQL Workbench, phpMyAdmin, DBeaver o terminal, crea la tabla con este script:
-- 1. Crear y usar la base de datos
CREATE DATABASE IF NOT EXISTS tienda_tecnologia;
USE tienda_tecnologia;
-- 2. Crear la tabla productos
CREATE TABLE IF NOT EXISTS productos (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
categoria VARCHAR(50) DEFAULT NULL,
precio DECIMAL(10, 2) NOT NULL,
stock INT DEFAULT NULL
);Estructura de la tabla productos
| Columna | Tipo de dato | Descripción y reglas |
|---|---|---|
id | INT | Clave primaria con AUTO_INCREMENT para numerar cada producto. |
nombre | VARCHAR(100) | Nombre del artículo (requerido, NOT NULL). |
categoria | VARCHAR(50) | Categoría o departamento del producto (acepta NULL inicialmente). |
precio | DECIMAL(10, 2) | Precio en moneda con dos decimales de precisión. |
stock | INT | Cantidad de unidades disponibles en almacén. |
Nota: Los ejercicios 1 a 3 construyen progresivamente el catálogo de productos con INSERT, y los ejercicios 4 a 10 aplican actualizaciones controladas con UPDATE. Los «Resultados esperados» muestran el estado real de la tabla tras cada instrucción.
Ejercicio 1: Insertar un registro completo
Agrega un nuevo producto: un Teclado Mecánico de la categoría Periféricos, con un precio de 45.50 y un stock inicial de 20 unidades.
Pista
Utiliza INSERT INTO especificando el nombre de la tabla y las columnas, seguido de VALUES con los datos correspondientes.
INSERT INTO productos (nombre, categoria, precio, stock)
VALUES ('Teclado Mecánico', 'Periféricos', 45.50, 20);
terminal Resultado esperado:
Query OK, 1 row affected (0.01 sec) -- Comprobación (SELECT * FROM productos;): +----+------------------+-------------+--------+-------+ | id | nombre | categoria | precio | stock | +----+------------------+-------------+--------+-------+ | 1 | Teclado Mecánico | Periféricos | 45.50 | 20 | +----+------------------+-------------+--------+-------+ 1 row in set (0.00 sec)
Ejercicio 2: Insertar datos en columnas específicas
Inserta un Ratón Inalámbrico con precio de 25.00 registrando únicamente su nombre y precio, ya que todavía no se han definido su categoría ni su stock.
Pista
En INSERT INTO menciona solamente las columnas disponibles. Las demás tomarán su valor por defecto o quedarán como NULL.
INSERT INTO productos (nombre, precio)
VALUES ('Ratón Inalámbrico', 25.00);
terminal Resultado esperado:
Query OK, 1 row affected (0.01 sec) -- Comprobación (SELECT * FROM productos;): +----+-------------------+-------------+--------+-------+ | id | nombre | categoria | precio | stock | +----+-------------------+-------------+--------+-------+ | 1 | Teclado Mecánico | Periféricos | 45.50 | 20 | | 2 | Ratón Inalámbrico | NULL | 25.00 | NULL | +----+-------------------+-------------+--------+-------+ 2 rows in set (0.00 sec)
Ejercicio 3: Insertar múltiples registros a la vez
Inserta en una sola consulta tres monitores: Monitor 24 pulgadas (120.00, stock 15), Monitor 27 pulgadas (180.00, stock 10) y Monitor Curvo (250.00, stock 5). Todos pertenecen a Monitores.
Pista
Usa un solo INSERT INTO y separa los grupos de valores con comas.
INSERT INTO productos (nombre, categoria, precio, stock)
VALUES
('Monitor 24 pulgadas', 'Monitores', 120.00, 15),
('Monitor 27 pulgadas', 'Monitores', 180.00, 10),
('Monitor Curvo', 'Monitores', 250.00, 5);
terminal Resultado esperado:
Query OK, 3 rows affected (0.01 sec) Records: 3 Duplicates: 0 Warnings: 0 -- Comprobación (SELECT * FROM productos;): +----+---------------------+-------------+--------+-------+ | id | nombre | categoria | precio | stock | +----+---------------------+-------------+--------+-------+ | 1 | Teclado Mecánico | Periféricos | 45.50 | 20 | | 2 | Ratón Inalámbrico | NULL | 25.00 | NULL | | 3 | Monitor 24 pulgadas | Monitores | 120.00 | 15 | | 4 | Monitor 27 pulgadas | Monitores | 180.00 | 10 | | 5 | Monitor Curvo | Monitores | 250.00 | 5 | +----+---------------------+-------------+--------+-------+ 5 rows in set (0.00 sec)
Ejercicio 4: Actualizar un valor específico
Actualiza el precio del Teclado Mecánico a 40.00 en lugar de 45.50 para reflejar un ajuste de costo.
Pista
Utiliza UPDATE junto con SET y usa WHERE para buscar el producto por su nombre.
UPDATE productos
SET precio = 40.00
WHERE nombre = 'Teclado Mecánico';
terminal Resultado esperado:
Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0 -- Comprobación: +----+------------------+-------------+--------+-------+ | id | nombre | categoria | precio | stock | +----+------------------+-------------+--------+-------+ | 1 | Teclado Mecánico | Periféricos | 40.00 | 20 | +----+------------------+-------------+--------+-------+
Ejercicio 5: Actualizar varias columnas al mismo tiempo
Actualiza el Ratón Inalámbrico: establece su stock en 30 unidades y asígnalo a la categoría Periféricos.
Pista
En SET puedes cambiar varios campos a la vez separándolos con una coma.
UPDATE productos
SET categoria = 'Periféricos',
stock = 30
WHERE nombre = 'Ratón Inalámbrico';
terminal Resultado esperado:
Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0 -- Comprobación: +----+-------------------+-------------+--------+-------+ | id | nombre | categoria | precio | stock | +----+-------------------+-------------+--------+-------+ | 2 | Ratón Inalámbrico | Periféricos | 25.00 | 30 | +----+-------------------+-------------+--------+-------+
Ejercicio 6: Actualizar múltiples registros por categoría
Modifica todos los productos de la categoría Monitores para que ahora pertenezcan a la categoría Pantallas.
Pista
Usa WHERE para apuntar a la categoría actual. Todos los registros que cumplan la condición se actualizarán.
UPDATE productos
SET categoria = 'Pantallas'
WHERE categoria = 'Monitores';
terminal Resultado esperado:
Query OK, 3 rows affected (0.01 sec) Rows matched: 3 Changed: 3 Warnings: 0 -- Comprobación (SELECT nombre, categoria FROM productos WHERE categoria = 'Pantallas';): +---------------------+-----------+ | nombre | categoria | +---------------------+-----------+ | Monitor 24 pulgadas | Pantallas | | Monitor 27 pulgadas | Pantallas | | Monitor Curvo | Pantallas | +---------------------+-----------+ 3 rows in set (0.00 sec)
Ejercicio 7: Actualizar incrementando un valor existente
Se recibieron nuevas unidades: suma 15 unidades al stock actual del Teclado Mecánico.
Pista
Usa el valor actual de la columna en SET: columna = columna + valor.
UPDATE productos
SET stock = stock + 15
WHERE nombre = 'Teclado Mecánico';
terminal Resultado esperado:
Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0 -- Comprobación: +----+------------------+-------------+--------+-------+ | id | nombre | categoria | precio | stock | +----+------------------+-------------+--------+-------+ | 1 | Teclado Mecánico | Periféricos | 40.00 | 35 | +----+------------------+-------------+--------+-------+
Ejercicio 8: Aplicar descuentos con operaciones matemáticas
Aplica una rebaja del 10% a todos los productos de la categoría Periféricos.
Pista
Multiplica el precio actual por 0.90 y filtra por la categoría solicitada.
UPDATE productos
SET precio = precio * 0.90
WHERE categoria = 'Periféricos';
terminal Resultado esperado:
Query OK, 2 rows affected (0.01 sec) Rows matched: 2 Changed: 2 Warnings: 0 -- Comprobación: +----+-------------------+-------------+--------+-------+ | id | nombre | categoria | precio | stock | +----+-------------------+-------------+--------+-------+ | 1 | Teclado Mecánico | Periféricos | 36.00 | 35 | | 2 | Ratón Inalámbrico | Periféricos | 22.50 | 30 | +----+-------------------+-------------+--------+-------+ 2 rows in set (0.00 sec)
Ejercicio 9: Actualizar registros usando múltiples condiciones
Pon el stock en 0 de los productos de categoría Pantallas cuyo precio sea mayor de 150.00.
Pista
Combina dos condiciones en WHERE utilizando el operador lógico AND.
UPDATE productos
SET stock = 0
WHERE categoria = 'Pantallas' AND precio > 150.00;
terminal Resultado esperado:
Query OK, 2 rows affected (0.01 sec) Rows matched: 2 Changed: 2 Warnings: 0 -- Comprobación (SELECT nombre, precio, stock FROM productos WHERE categoria = 'Pantallas';): +---------------------+--------+-------+ | nombre | precio | stock | +---------------------+--------+-------+ | Monitor 24 pulgadas | 120.00 | 15 | | Monitor 27 pulgadas | 180.00 | 0 | | Monitor Curvo | 250.00 | 0 | +---------------------+--------+-------+ 3 rows in set (0.00 sec)
Ejercicio 10: Actualizar con una función de texto
Convierte a mayúsculas los nombres de todos los productos de la categoría Periféricos.
Pista
Utiliza la función nativa UPPER() dentro de SET para transformar el nombre actual.
UPDATE productos
SET nombre = UPPER(nombre)
WHERE categoria = 'Periféricos';
terminal Resultado esperado:
Query OK, 2 rows affected (0.01 sec) Rows matched: 2 Changed: 2 Warnings: 0 -- Comprobación (SELECT id, nombre, categoria, precio, stock FROM productos;): +----+---------------------+-------------+--------+-------+ | id | nombre | categoria | precio | stock | +----+---------------------+-------------+--------+-------+ | 1 | TECLADO MECÁNICO | Periféricos | 36.00 | 35 | | 2 | RATÓN INALÁMBRICO | Periféricos | 22.50 | 30 | | 3 | Monitor 24 pulgadas | Pantallas | 120.00 | 15 | | 4 | Monitor 27 pulgadas | Pantallas | 180.00 | 0 | | 5 | Monitor Curvo | Pantallas | 250.00 | 0 | +----+---------------------+-------------+--------+-------+ 5 rows in set (0.00 sec)
Preguntas frecuentes
¿Qué pasa si ejecuto un UPDATE y olvido poner el WHERE?
MySQL aplicará la actualización a todas las filas de la tabla simultáneamente, lo que puede arruinar tus datos. Siempre revisa tus consultas antes de ejecutarlas.
¿Es obligatorio indicar las columnas al usar INSERT INTO?
No es estrictamente obligatorio si insertas valores para todas las columnas y en el orden exacto en que fueron creadas. Sin embargo, es una excelente práctica indicar siempre las columnas para evitar errores si la estructura cambia.
¿Puedo actualizar un registro usando información de otra tabla?
Sí. Puedes combinar UPDATE con JOIN o utilizar subconsultas. Es una técnica más avanzada, pero muy útil para sincronizar datos.
Conclusión
¡Excelente trabajo! Has completado estos 10 ejercicios de inserción y actualización de datos en MySQL. Ahora eres capaz de agregar registros simples o múltiples, así como de realizar modificaciones precisas usando condiciones matemáticas o de texto. Manejar correctamente INSERT y UPDATE te da el poder de mantener la información de tus sistemas siempre viva, correcta y relevante. Sigue practicando estas instrucciones en entornos seguros para dominar por completo el flujo de datos.
Sigue aprendiendo
Documentación oficial de MySQL con todos los parámetros técnicos sobre la inserción de registros.
Guía completa oficial para comprender todas las variantes de modificación de datos.
Sigue practicando
Otros ejercicios prácticos recomendados
10 Ejercicios resueltos de Funciones de Texto, Números y Fechas en MySQL
Domina las funciones de texto, números y fechas en MySQL con estos 10 ejercicios resueltos. Aprende a manipular cadenas, redondear decimales y calcular intervalos de tiempo paso a paso sobre una tabla de usuarios con dat...
10 Ejercicios resueltos de Filtrado y Ordenamiento de Resultados en MySQL
Domina la extracción de datos con estos 10 ejercicios resueltos de filtrado y ordenamiento en MySQL. Aprende paso a paso a utilizar las cláusulas WHERE y ORDER BY para organizar tu información y encontrar exactamente lo...
10 Ejercicios de Consultas con SELECT en MySQL
Aprende a extraer información de bases de datos con estos 10 ejercicios resueltos de consultas con SELECT en MySQL. Domina desde la lectura básica hasta el uso de filtros y ordenamiento, paso a paso y con ejemplos prácti...