Mapa del sitio
Encuentra todas las páginas públicas de AprenderSQL.es agrupadas por sección.
Otras páginas
Herramientas SQL
Curso SQL
- Curso Sql
- Pon alias y crea columnas calculadas
- Modifica tablas con ALTER TABLE
- Combina condiciones con AND, OR y NOT
- Filtra rangos y listas con BETWEEN e IN
- Repaso integrado: CASE y funciones de ventana
- Crea categorías con CASE
- Protege los datos con restricciones
- Repaso integrado: CREATE TABLE y ALTER TABLE
- Crea tablas y elige tipos de datos
- Diagnostico Sql
- Evita duplicados con DISTINCT
- Comprueba lo aprendido y prepara tu repaso
- Resume datos con COUNT, SUM, AVG, MIN y MAX
- Transforma textos y fechas
- Práctica: combina UNION, CASE y funciones
- Calcula posiciones con funciones de ventana
- Práctica: domina funciones de ventana
- Repaso integrado: GROUP BY y HAVING
- Crea resúmenes por grupo con GROUP BY
- Filtra grupos con HAVING
- Mejora búsquedas con índices
- Une coincidencias con INNER JOIN
- Repaso integrado: INSERT, UPDATE y DELETE
- Añade filas con INSERT
- Combina varias tablas sin duplicar filas
- Cómo leer una consulta SQL
- Conserva todas las filas con LEFT JOIN
- Busca patrones de texto con LIKE
- Combina resultados con UNION
- Compara valores en tus filtros
- Ordena y limita los resultados
- Práctica: combina filtros y resúmenes
- Práctica: elige el filtro adecuado
- Práctica: elige y comprueba un JOIN
- Práctica: diseña una tabla con reglas e índice
- Proyecto práctico: base de datos de una biblioteca
- Proyecto SQL: análisis y auditoría de ventas
- Qué es SQL y para qué sirve
- Conecta tablas con claves y relaciones
- Ruta Analista Datos
- Ruta Desarrollador
- Rutas Aprendizaje
- Rutas Recuperacion
- Elige varias columnas y ordénalas
- Selecciona datos con SELECT y FROM
- Resuelve preguntas con subconsultas
- Organiza consultas por etapas con CTE
- Entiende tablas, filas y columnas
- Controla cambios con COMMIT y ROLLBACK
- Actualiza y elimina datos con seguridad
- Trabaja correctamente con valores NULL
- Guarda consultas reutilizables con vistas
- Filtra filas con WHERE
- Práctica: elige entre subconsultas y CTE
Errores SQL
- Errores SQL: diagnóstico y recuperación
- Error de sintaxis SQL
- JOIN con filas duplicadas
- UPDATE o DELETE sin WHERE
- NULL en WHERE no devuelve filas
- WHERE con <> no incluye NULL
- LEFT JOIN pierde filas
- GROUP BY con columna no agrupada
- Columna ambigua en SQLColumna no existe en SQL
- Subconsulta devuelve más de una filaSubconsulta devuelve más de una columna
- Función de agregación en WHERE
- FOREIGN KEY falla
- INSERT: columnas y valores no coinciden
- Valor demasiado largo para VARCHAR
- UNIQUE: valor duplicado
- NOT NULL falla
- CHECK constraint falla
- Paginación repite o salta filas
- DISTINCT y ORDER BY: columna no seleccionada
- UNION: número de columnas no coincide
- UNION: tipos incompatibles
- Alias no funciona en WHERE
- Función de ventana en WHERE
- CTE fuera de alcance
- NOT IN no devuelve filas por NULL
- COUNT(*) con LEFT JOIN devuelve 1
- División por cero en SQL
- División entera pierde decimales
- Deadlock / interbloqueo en transacciones
- Funciones de agregación anidadas
- Fecha no válida al convertir texto
- DROP COLUMN falla por dependencias
Glosario SQL
- ADD COLUMN vs MODIFY COLUMN
- Agrupar por mes en SQL
- Alias
- Alias con COUNT y SUM
- Alias en subconsultas
- ALTER TABLE
- ALTER TABLE en tablas grandes
- AND, OR y NOT
- AVG
- Añadir restricciones con ALTER TABLE
- BEGIN / START TRANSACTION
- BETWEEN
- Buenas prácticas para alias
- CASE
- CAST
- CHECK
- Clave primaria compuesta
- Claves autogeneradas: IDENTITY, AUTO_INCREMENT y AUTOINCREMENT
- COALESCE
- Columnas generadas en SQL: GENERATED ALWAYS AS
- COMMIT
- CONCAT
- COUNT
- COUNT(DISTINCT) con varias columnas
- CREATE TABLE
- CREATE TABLE AS SELECT
- CROSS JOIN
- CTE recursiva con WITH RECURSIVE
- CURRENT_DATE
- CURRENT_TIMESTAMP
- Cómo usar alias en SELECT
- DEFAULT
- DELETE
- DELETE vs TRUNCATE vs DROP
- DISTINCT
- DROP TABLE
- Eliminar columnas con ALTER TABLE: ejemplos prácticos
- Encontrar duplicados con GROUP BY y HAVING
- Errores comunes con alias SQL
- EXCEPT
- EXISTS
- EXPLAIN
- EXTRACT
- FILTER (WHERE ...) en agregaciones SQL
- FIRST_VALUE y LAST_VALUE en SQL
- FOREIGN KEY
- FROM
- FULL OUTER JOIN
- Glosario SQL
- GROUP BY
- GROUP BY con varias columnas
- HAVING
- IN
- INDEX
- Índice en FOREIGN KEY: cuándo crearlo
- INNER JOIN
- INNER JOIN vs LEFT JOIN
- INSERT INTO
- INSERT INTO ... SELECT
- INTERSECT
- IS DISTINCT FROM
- IS NULL / IS NOT NULL
- JOIN
- LAG
- LEAD
- LEFT JOIN
- LENGTH
- LIKE
- LIMIT
- MAX
- MERGE
- MIN
- Modificar la estructura de una tabla
- Nivel de aislamiento
- NOT NULL
- NULLIF
- NULLS FIRST / LAST
- OFFSET
- ON DELETE CASCADE con FOREIGN KEY
- ORDER BY
- ORDER BY CASE
- OUTER JOIN
- OVER
- PARTITION BY
- PRIMARY KEY
- Query
- RANK y DENSE_RANK
- Renombrar columnas y tablas con ALTER TABLE
- REPLACE
- RETURNING con INSERT, UPDATE y DELETE
- RIGHT JOIN
- ROLLBACK
- ROUND
- ROW_NUMBER
- ROWS BETWEEN / window frame
- SAVEPOINT
- SELECT
- SELF JOIN
- STRING_AGG y GROUP_CONCAT: concatenar filas en SQL
- Subquery
- SUBSTRING
- SUM
- SUM con CASE WHEN
- Sumar y restar fechas en SQL
- Tablas temporales en SQL: CREATE TEMP y TEMPORARY TABLE
- TABLE
- Top N por grupo en SQL con ROW_NUMBER()
- Normalización de bases de datos
- Filtrar entre dos fechas
- Orden de ejecución SQL
- Tipos de datos SQL
- TRIM
- TRUNCATE TABLE
- UNION
- UNION ALL
- UNION vs UNION ALL
- UNIQUE
- UPDATE
- UPPER y LOWER
- UPSERT en SQL: ON CONFLICT y ON DUPLICATE KEY UPDATE
- VIEW
- Vistas en SQL Server
- WHERE
- WHERE vs HAVING
- WITH y CTE
- CTE vs subconsulta
- Índice compuesto en SQL: varias columnas y orden
- Índice parcial o filtrado en SQL: indexar solo algunas filas
- Índices sobre expresiones o índices funcionales
- NTILE
- Paginación keyset / cursor
- UPDATE con JOIN / UPDATE FROM
- DELETE con JOIN / USING
- GROUPING SETS / ROLLUP / CUBE
- Anti-join: NOT EXISTS / LEFT JOIN
- Diferencia entre fechas
- PERCENT_RANK / CUME_DIST
- LEAST / GREATEST
- LATERAL / APPLY
- Porcentaje del total en SQL
- Agrupar por rangos con CASE en SQL
- Primer y último día del mes en SQL
- UPDATE con CASE: actualizar varias filas con valores distintos
- ON UPDATE CASCADE con FOREIGN KEY