Saltar al contenido
CodigoDev

10 Ejercicios de Inserción y Actualización de Datos en MySQL

MySQL Básico
Ejercicios de Inserción y Actualización de Datos en MySQL
lightbulb Introducción al ejercicio

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.

menu_book

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

ColumnaTipo de datoDescripción y reglas
idINTClave primaria con AUTO_INCREMENT para numerar cada producto.
nombreVARCHAR(100)Nombre del artículo (requerido, NOT NULL).
categoriaVARCHAR(50)Categoría o departamento del producto (acepta NULL inicialmente).
precioDECIMAL(10, 2)Precio en moneda con dos decimales de precisión.
stockINTCantidad 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

help_outline Problema:

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.

code Solución explicada:
sql
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

help_outline Problema:

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.

code Solución explicada:
sql
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

help_outline Problema:

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.

code Solución explicada:
sql
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

help_outline Problema:

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.

code Solución explicada:
sql
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

help_outline Problema:

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.

code Solución explicada:
sql
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

help_outline Problema:

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.

code Solución explicada:
sql
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

help_outline Problema:

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.

code Solución explicada:
sql
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

help_outline Problema:

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.

code Solución explicada:
sql
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

help_outline Problema:

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.

code Solución explicada:
sql
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

help_outline Problema:

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.

code Solución explicada:
sql
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)
help

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.

task_alt

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.

rocket_launch

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.

A
Autor del artículo

Alejandro Nes

calendar_today update Actualizado

Desarrollador de Software y creador de contenido educativo

Otros ejercicios prácticos recomendados

Ver todos arrow_forward