¿Ya dominas lo básico? Un curso estructurado de SQL es la vía rápida para dar el salto.
Ver cursos de SQL en UdemyEnlace de afiliado. No te cuesta nada extra.
- 01Preparar el entorno (lo que necesitas)
- 02Fundamentos de la sentencia SELECT
- 03Filtrar filas con WHERE
- 04Ordenar resultados con ORDER BY
- 05Combinar tablas con JOIN
- 06Agregar datos con GROUP BY
- 07Búsqueda aproximada con LIKE
- 08Modificar datos con INSERT, UPDATE y DELETE
- 09Introducción a las subconsultas
- 10Crear una VIEW
- 11Clasificar filas con funciones de ventana
- 12Entender las transacciones
- 13Escribir comentarios en SQL
- 14Operadores lógicos: AND, OR y NOT
- 15Trabajar con valores NULL
- 16INNER JOIN frente a LEFT JOIN
- 17Filtrar agregados con HAVING
- 18Eliminar duplicados con DISTINCT
- 19Combinar resultados con UNION
- 20Valores condicionales con CASE
- 21Comprobar existencia con EXISTS
- 22Cambiar la estructura de una tabla con ALTER TABLE
- 23Auto-uniones (self join)
- 24Acelerar búsquedas con INDEX
- 25GROUP BY con varias columnas
- 26Paginación con LIMIT y OFFSET
- 27Coincidencia de patrones con GLOB
- 28Cálculos con fechas usando date()
- 29Unir tres tablas
- 30Comparar con varios valores usando IN
- 31Tablas derivadas: subconsultas en el FROM
- 32Fundamentos de TRIGGER
- 33Consultas legibles con WITH (CTE)
- 34UPSERT: insertar o actualizar en una sola sentencia
- 35Combinar MIN, MAX y AVG
- 36Restringir la entrada con restricciones CHECK
- 37Numeración automática con AUTOINCREMENT
- 38Inspeccionar el plan con EXPLAIN QUERY PLAN
- 39ORDER BY con varias columnas
- 40Agregación condicional con CASE
- 41Eliminar objetos con DROP TABLE y DROP VIEW
- 42Combinar varias CTE
- 43Búsqueda por rango de fechas con BETWEEN
- 44Encontrar lo que falta con NOT EXISTS
- 45Sustituir NULL con COALESCE
- 46Funciones de texto: UPPER, LENGTH y SUBSTR
- 47Convertir tipos con CAST
- 48Unir valores agrupados con GROUP_CONCAT
- 49Garantizar la integridad con FOREIGN KEY
- 50[Aplicado] Construye un mini sistema de biblioteca
[Aplicado] Construye un mini sistema de biblioteca
En esta lección final juntarás lo aprendido para responder a una pregunta de negocio real: qué libros se prestan más.
No hay sintaxis nueva. Se combinan tres piezas que ya conoces: LEFT JOIN para no perder los libros que nunca se prestaron, COUNT con GROUP BY para contar los préstamos de cada uno, y ORDER BY sobre ese recuento para ordenar de más a menos.
Fíjate en un detalle importante del código: se cuenta COUNT(loans.id) y no COUNT(*). Con LEFT JOIN, un libro sin préstamos genera una fila con todo a NULL; COUNT(*) la contaría como 1 y COUNT(loans.id) devuelve correctamente 0. Ejecuta la consulta cambiando una por otra y comprueba la diferencia.
Ese es exactamente el tipo de error que produce informes que parecen correctos: ningún fallo, ningún aviso, solo unos números ligeramente mal. Cuando un recuento no cuadra con la intuición, revisar si se está contando la columna adecuada suele resolverlo.
Con estas tres construcciones ya puedes escribir la mayoría de consultas de negocio que se piden en el trabajo real. El siguiente paso natural es aprender a leer los planes de ejecución para que además vayan rápidas, y practicar con un conjunto de datos de verdad.
💡 El motor de SQL puede tardar unos segundos en cargarse la primera vez que ejecutas código.
