Aprende SQL practicando
Learn SQL by doing: write real queries against a real database, with instant feedback. Cada lección se ejecuta en tu navegador, sobre una pequeña base de datos de práctica: una panadería para la mayoría de lecciones y una empresa para las lecciones de empleados.
Las consultas se ejecutan en PostgreSQL. El núcleo de SQL es el mismo en MySQL, SQL Server y SQLite; las páginas de referencia indican en qué se diferencian. Consulta también las guías y la referencia.
0 de 34 lecciones completadas
Conceptos básicos
Gratis: lee, ordena y filtra una tabla.
- Tu primer SELECTLee columnas de una tabla, ordena las filas y elimina duplicados.Free
- Filtrar filas con WHEREConserva solo las filas que cumplen una condición, incluidos los rangos y los valores que faltan.Free
- Patrones, listas y mejores resultadosBusca texto con LIKE, compara con una lista usando IN y conserva solo las primeras filas con LIMIT.Free
Resúmenes
Contar, sumar y promediar, por grupo.
Combinaciones (JOIN)
Combina tablas por sus claves, incluidas las filas que no coinciden.
- Combina tablas con JOINEmpareja filas de dos tablas por una clave común y, después, agrupa las filas combinadas.Pro
- Conserva las filas sin coincidencia: LEFT JOINUn INNER JOIN descarta las filas sin coincidencia. Un LEFT JOIN las conserva, y así puedes encontrar lo que falta.Pro
- Conserva las filas sin coincidencia en ambos lados: RIGHT y FULL JOINUn RIGHT JOIN conserva todas las filas de la tabla de la derecha. Un FULL JOIN conserva las filas sin coincidencia de ambas tablas.Pro
- Compara filas dentro de una misma tablaUne una tabla consigo misma para comparar sus filas entre sí, sin repetir parejas.Pro
- Muchos a muchos a través de una tabla intermediaLos pedidos y los productos se relacionan a través de order_items. Unir a través de esa tabla permite responder preguntas por producto.Pro
- Todas las combinaciones: CROSS JOIN y el atajo USINGCROSS JOIN empareja cada fila con todas las filas de otra tabla. USING acorta un JOIN sobre una columna que tienen ambas tablas con el mismo nombre.Pro
Consultas avanzadas
CASE, subconsultas, funciones de ventana, UNION y funciones de texto y fecha.
- Decide según condiciones: CASE WHENCASE es la versión SQL de IF e IFS: elige un valor para cada fila según condiciones.Pro
- Consultas dentro de consultas: subconsultas, WITH y EXISTSUna subconsulta es un SELECT dentro de otra consulta. WITH da nombre a una subconsulta para poder reutilizarla. EXISTS comprueba si existe alguna fila coincidente.Pro
- Ranking y totales acumulados: funciones de ventanaOVER añade un cálculo sobre varias filas sin agruparlas, como RANK y los totales acumulados de Excel.Pro
- Mira las filas vecinas: LAG, LEAD y DENSE_RANKLAG y LEAD leen la fila anterior o la siguiente sin necesidad de un JOIN. DENSE_RANK asigna rangos sin huecos. Los empates cambian los totales acumulados.Pro
- Apila resultados: UNION y UNION ALLUNION pone las filas de dos consultas en un único resultado. UNION ALL conserva los repetidos. Ambas necesitan el mismo número de columnas.Pro
- Solapamiento y diferencia: INTERSECT y EXCEPTINTERSECT conserva las filas que aparecen en ambos resultados. EXCEPT conserva las filas del primer resultado que no están en el segundo.Pro
- Texto y fechas: unir, cortar y contarUne texto con ||, cambia las mayúsculas, extrae una parte de un valor y calcula los días que hay entre dos fechas.Pro
- Más herramientas de texto y fechas: REPLACE, SPLIT_PART y generate_seriesReemplaza y divide texto, suma días a una fecha y crea una lista de fechas para encontrar los huecos.Pro
- Convertir y comparar: CAST, NULLIF, ILIKE y paginaciónCambia el tipo de un valor, evita la división entre cero, compara texto sin distinguir mayúsculas y obtén los resultados una página cada vez.Pro
Modificar datos
Añade, cambia y elimina filas con seguridad.
- Añadir, cambiar y eliminar filasINSERT, UPDATE y DELETE, y por qué UPDATE y DELETE necesitan un WHERE.Pro
- Insertar o actualizar: ON CONFLICT y RETURNINGUn upsert inserta una fila, o la actualiza si la clave ya existe. RETURNING muestra las filas que cambiaron.Pro
- Crear una tabla con reglas: CREATE TABLE y transaccionesCREATE TABLE define las columnas y las reglas de una tabla nueva. Una transacción agrupa cambios para que ROLLBACK pueda deshacerlos.Pro
- Cambiar la estructura: ALTER TABLE, vistas e índicesAñade columnas y reglas a una tabla existente, guarda una consulta como vista, acelera las búsquedas con un índice y elimina lo que ya no necesitas.Pro
Desde Excel
Búsquedas, SUMAR.SI, tablas dinámicas y matrices dinámicas, en SQL.
- De VLOOKUP a JOINSi conoces VLOOKUP y XLOOKUP, ya conoces la idea que hay detrás de un JOIN.Pro
- SUMIF, COUNTIFS y tablas dinámicas en SQLLas sumas y los recuentos condicionales se convierten en WHERE más SUM o COUNT. Una tabla dinámica se convierte en GROUP BY sobre dos columnas.Pro
- FILTER, UNIQUE y SORT en SQLLas funciones de matrices dinámicas se corresponden con WHERE, DISTINCT y ORDER BY.Pro
Base de datos de empleados
Una segunda base de datos de práctica, de una pequeña empresa: organigramas, salarios, fechas de contratación y marcos de ventana.
- Organigramas con WITH recursivoSigue una cadena de jefes hacia arriba o hacia abajo, por cuantos niveles haga falta, con una expresión de tabla común recursiva.Pro
- Salarios: el N-ésimo más alto, por departamento y por encima de la mediaClasifica con empates, toma la fila superior de cada grupo y compara cada valor con la media de su grupo.Pro
- Jefes y parejas: autocombinaciones de empleadosUne la tabla de empleados consigo misma para mostrar jefes, contar subordinados directos y encontrar parejas.Pro
- Marcos de ventana: totales acumulados y promedios móvilesROWS BETWEEN decide qué filas abarca un cálculo de ventana: un total acumulado, un promedio móvil y qué hacen los empates.Pro
Práctica de entrevistas
Las preguntas que se repiten una y otra vez: el N-ésimo más alto, el mejor por grupo, duplicados y cambios en el tiempo.
- Patrones de entrevista: el N-ésimo más alto, el mejor por grupo, duplicadosLas preguntas que aparecen una y otra vez en las entrevistas de SQL, cada una con más de una forma correcta de responder.Pro
- Patrones de entrevista: primera fila por grupo, cambio en el tiempo, porcentaje del totalPreguntas con funciones de ventana que convierten una tabla en un informe.Pro
Caso práctico
Responde a preguntas reales sobre un mes de ventas.