Misión 2 · Lección 2

Manipulación de Bases de Datos

Objetivos de la lección

INSERT — Agregar Datos

-- Insertar un registro completo
INSERT INTO clientes (nombre, email)
VALUES ('Ana Torres', 'ana@example.com');

-- Insertar múltiples filas
INSERT INTO productos (nombre, precio, stock)
VALUES ('Café', 2.50, 100),
       ('Té verde', 1.80, 50);

SELECT — Consultas Básicas

-- Consultar todas las filas
SELECT * FROM productos;

-- Selección de columnas
SELECT nombre, precio FROM productos;

-- Condiciones
SELECT * FROM productos WHERE precio >= 2.00;

UPDATE — Modificar Datos

-- Cambiar el email de un cliente
UPDATE clientes
SET email = 'nuevo_correo@example.com'
WHERE id = 3;

-- Aumentar el stock de todos los productos
UPDATE productos
SET stock = stock + 10;

¡Cuidado! Siempre usa WHERE para evitar actualizar todo por error.

DELETE — Borrar Datos

-- Eliminar un cliente específico
DELETE FROM clientes WHERE id = 5;

-- Vaciar la tabla por completo (no recomendado)
DELETE FROM clientes; -- ¡peligroso!

Para reiniciar un contador autoincremental se puede usar TRUNCATE.

ORDER BY y LIMIT

-- Productos más caros
SELECT nombre, precio
FROM productos
ORDER BY precio DESC
LIMIT 5;

-- Primeros clientes en orden alfabético
SELECT nombre FROM clientes
ORDER BY nombre ASC
LIMIT 10;

Funciones Agregadas

-- Número total de clientes
SELECT COUNT(*) FROM clientes;

-- Precio promedio de productos
SELECT AVG(precio) FROM productos;

-- Máximo y mínimo
SELECT MAX(precio), MIN(precio) FROM productos;

Filtros con LIKE e IN

-- Nombres que empiezan por 'A'
SELECT * FROM clientes
WHERE nombre LIKE 'A%';

-- Productos con ciertos IDs
SELECT * FROM productos
WHERE id IN (1, 3, 5);

Manipulación Segura con Transacciones

BEGIN;
  UPDATE productos SET stock = stock - 1 WHERE id = 2;
  INSERT INTO pedidos (cliente_id, total) VALUES (4, 1.80);
COMMIT;

-- Si algo sale mal
ROLLBACK;

Buenas Prácticas

Ejercicio Guiado

  1. Agrega un nuevo cliente y dos productos.
  2. Actualiza el stock de un producto.
  3. Elimina un cliente ficticio.
  4. Consulta los 3 productos más baratos.
-- Consulta de apoyo
SELECT nombre, precio
FROM productos
ORDER BY precio ASC
LIMIT 3;