Clase 12 · 35 minGratis

Reto final: casos de negocio

Clase 12 del curso gratis SQL desde Cero: cinco pedidos de negocio reales resueltos con SQL. Crear tablas con llaves foráneas, insertar ventas, aplicar un descuento con UPDATE y eliminar productos sin ventas con DELETE.

Toca cualquier marca ▸ 0:00 de los apuntes y el video salta a ese momento. Abrir en YouTube

El cierre del curso son pedidos de negocio: alguien del equipo necesita algo, y tú lo traduces a SQL . Tocan CREATE, INSERT, UPDATE y DELETE, los comandos que más cuidado exigen .

La base tiene tres tablas : clientes (nombre, sexo, edad…), productos (id, nombre, precio, categoría) y ventas (orden, producto, cliente, cantidad, total pagado y fecha). Cada editor arranca con la base original; los ejercicios no dependen unos de otros.

Ejercicio 1: una tabla de categorías

«Queremos una tabla que guarde las categorías con su descripción.» Créala con id_categoria (llave primaria que se numere sola), nombre_categoria (obligatorio) y descripcion.

Reto · base negocio

Con AUTOINCREMENT, nadie tiene que inventar el id al insertar . Y hoy el espacio sobra: un nombre largo y explícito como nombre_categoria vale más que una abreviatura que nadie entiende .

Ejercicio 2: registrar devoluciones

«Necesitamos llevar el control de las devoluciones: la venta original, el producto, el cliente, la fecha y la razón.» La tabla devoluciones tiene que declarar su llave primaria (id_devolucion) y sus tres llaves foráneas: id_orden hacia ventas, id_producto hacia productos e id_cliente hacia clientes. Completa también fecha y razon.

Reto · base negocio

¿El cliente no se podría sacar de la venta? Sí; guardarlo otra vez es redundante. En una base pequeña no importa; con millones de registros, sería un criterio para no hacerlo . La sintaxis de la llave foránea se lee casi como una frase: la llave foránea id_orden hace referencia a ventas(id_orden) .

Ejercicio 3: insertar ventas recientes

«Registren estas tres ventas.»

  • Orden 101: producto 3, cliente 1, cantidad 2, total 400, fecha 2024-10-05.
  • Orden 102: producto 6, cliente 4, cantidad 1, total 120, fecha 2024-10-06.
  • Orden 103: producto 9, cliente 2, cantidad 3, total 150, fecha 2024-10-07.
Reto · base negocio

id_orden es autoincremental: si no lo escribes, la base pone el siguiente. Aquí se escribe porque el pedido de negocio trae números concretos . Y se valida con un SELECT … WHERE id_orden IN (…) .

Ejercicio 4: 10 % de descuento a los tres más caros

«Promoción especial: los tres accesorios más caros bajan un 10 %.» Primero, encuéntralos :

Pruébalo · base negocio

Reloj de lujo (1.200), collar de esmeraldas (1.000) y collar de oro (900). SQL Server usa TOP 3 en vez de LIMIT 3: misma idea, otro dialecto. Ahora escribe el UPDATE usando esa consulta como subconsulta :

Reto · base negocio

La trampa : ejecútalo dos veces y verás que el segundo descuento no cae sobre los mismos productos. El collar de oro quedó en 810 y el collar de perlas (850) pasó a ser el tercero más caro. Para que el cambio sea repetible, filtra por los id_producto que viste en el SELECT.

Ejercicio 5: eliminar productos sin ventas

«Hay productos que nunca se vendieron; se descontinúan y tienen que desaparecer de la tabla.» El camino del video: un LEFT JOIN entre productos y las ventas, para ver qué no cruzó .

La trampa: en ventas un mismo producto aparece muchas veces. Por eso el join se hace contra SELECT DISTINCT id_producto FROM ventas :

Pruébalo · base negocio

Los productos 46, 47 y 48 . Ahora bórralos:

Reto · base negocio

Un DELETE así de poderoso es la razón por la que, en muchas empresas, tu perfil no tiene permiso de borrar . Con NOT IN también se resuelve, y en una línea menos: DELETE FROM productos WHERE id_producto NOT IN (SELECT id_producto FROM ventas);

Terminaste el curso

Ya sabes consultar, filtrar, resumir, cruzar tablas, anidar consultas, crear estructuras y modificar datos con cuidado. Lo que sigue es practicar con datos de verdad: descarga las bases de este curso, ábrelas en DB Browser for SQLite y hazte tus propias preguntas.

Terminaste el curso

Vuelve a cualquier clase cuando lo necesites: el material sigue aquí.

Seguir el canal de WhatsApp