Glosario SQL con ejemplos claros
发布时间:2026-09-16 | 浏览:1
Busca un término para entender qué significa, cuándo usarlo, cómo se escribe y qué error conviene evitar.
ADD COLUMN vs MODIFY COLUMN
Distingue crear una columna de redefinirla y verifica el resultado sin copiar sintaxis entre motores.
Nombre temporal para columnas, expresiones y tablas que mejora la legibilidad sin cambiar el esquema.
Alias con COUNT y SUM
Nombra conteos, sumas y otros agregados para que el resultado se entienda sin leer la consulta.
Alias en subconsultas
Asigna un nombre a resultados derivados y referencia sus columnas con claridad desde la consulta exterior.
Modifica la estructura de una tabla existente: columnas, restricciones o nombres.
ALTER TABLE en tablas grandes
Distingue cambios de metadatos, validaciones y reescrituras antes de alterar tablas grandes.
Combina condiciones, usa paréntesis y entiende qué ocurre cuando NULL introduce un resultado desconocido.
Calcula medias de valores conocidos y distingue una media simple de una media ponderada.
Añadir restricciones con ALTER TABLE
Añade restricciones después de medir duplicados, nulos y referencias huérfanas; adapta la migración al motor.
BEGIN / START TRANSACTION
Marca el comienzo de un bloque de trabajo que debe terminar con COMMIT para guardar los cambios o con ROLLBACK para deshacerlos.
Filtra intervalos inclusivos y evita errores de límites al trabajar con fechas y horas.
Buenas prácticas para alias
Elige alias breves y estables, evita ambigüedades y mantén una convención coherente.
Devuelve valores distintos según condiciones.
Convierte una expresión a otro tipo y ayuda a detectar entradas incompatibles sin depender de conversiones implícitas.
Impide guardar una fila cuando no cumple una regla definida en la tabla.
Clave primaria compuesta
Identifica una fila mediante la combinación de dos o más columnas y evita duplicar esa identidad.
Claves autogeneradas
Compara IDENTITY, AUTO_INCREMENT e INTEGER PRIMARY KEY para generar identificadores sin confundirlos con la restricción PRIMARY KEY.
Elige el primer valor no nulo para presentar una alternativa sin modificar el dato almacenado.
Columnas generadas
Calcula una columna a partir de otras columnas de la misma fila y compara GENERATED, VIRTUAL, STORED y PERSISTED.
Confirma la transacción actual después de revisar el alcance y el resultado de sus cambios.
Une columnas y separadores en un valor calculado y requiere decidir cómo tratar NULL.
Consulta SQL (query)
Instrucción que consulta o modifica datos y combina cláusulas con una intención concreta.
Cuenta filas, valores no nulos o valores distintos según la pregunta.
COUNT(DISTINCT) con varias columnas
Cuenta combinaciones únicas de dos o más columnas con un patrón portable y variantes por motor.
Crea una tabla con columnas, tipos, valores predeterminados y restricciones de integridad.
CREATE TABLE AS SELECT
Crea una tabla nueva y la llena con el resultado de una consulta, distinguiéndola de INSERT ... SELECT y VIEW.
Combina cada fila de una tabla con todas las filas de otra. Es útil para generar combinaciones, pero puede multiplicar el resultado muy rápido.
CTE recursiva con WITH RECURSIVE
Recorre jerarquías mediante un caso inicial y un paso recursivo que avanza hasta que no quedan filas nuevas.
Devuelve la fecha actual del motor o de la sesión sin incluir la hora.
CURRENT_TIMESTAMP
Obtiene la fecha y hora actuales y obliga a distinguir tipo, zona horaria y semántica de cada motor.
Cómo usar alias en SELECT
Usa AS para nombrar columnas y cálculos, ordenar por el alias y evitar referencias prematuras en WHERE.
Define un valor automático cuando no se proporciona uno.
Elimina filas con comprobación previa, transacción reversible y control de relaciones.
DELETE vs TRUNCATE vs DROP
DELETE filtra filas, TRUNCATE vacía la tabla y DROP elimina su definición; sus efectos cambian por motor.
Elimina filas repetidas del resultado comparando todas las columnas seleccionadas.
Elimina una tabla completa: estructura, filas y dependencias según el motor.
Eliminar columnas con ALTER TABLE: ejemplos prácticos
Elimina una columna solo después de localizar datos, claves, índices, vistas y aplicaciones dependientes.
Encontrar duplicados
Detecta valores o claves repetidas con GROUP BY, COUNT y HAVING sin confundirlas con filas multiplicadas por un JOIN.
Errores comunes con alias SQL
Diagnostica comas ausentes, alias fuera de alcance y referencias incoherentes a tablas.
Devuelve filas del primer resultado que no aparecen en el segundo.
Comprueba si una subconsulta devuelve al menos una fila; NOT EXISTS comprueba ausencias.
Muestra el plan que el motor piensa utilizar para resolver una consulta. Sirve para investigar rendimiento antes de cambiar índices o reescribir SQL.
Extrae año, mes u otra parte de una fecha y muestra las alternativas cuando cambia el dialecto.
FILTER en agregaciones
Filtra la entrada de un agregado concreto sin afectar a las demás métricas de la misma consulta.
FIRST_VALUE y LAST_VALUE
Lee el primer o último valor de una ventana y controla el frame para evitar resultados engañosos.
Garantiza que un valor referencia una fila existente en otra tabla.
Define tablas, vistas u otras fuentes y permite nombrarlas con alias.
FULL OUTER JOIN
Conserva coincidencias y también filas sin pareja de ambos conjuntos.
Forma grupos para calcular un resumen independiente en cada uno.
GROUP BY con varias columnas
Agrupa por combinaciones de valores y controla la granularidad de cada fila resumida.
Filtra grupos después de calcular COUNT, SUM u otras agregaciones.
Comprueba si un valor pertenece a una lista o subconsulta.
Crea una ruta de acceso que puede acelerar filtros, relaciones y ordenaciones.
Índice en FOREIGN KEY
Decide cuándo indexar la clave foránea de la tabla hija y qué motores ya crean ese índice.
Conserva únicamente las parejas de filas que cumplen la condición de unión.
INNER JOIN vs LEFT JOIN
INNER JOIN conserva coincidencias; LEFT JOIN mantiene toda la tabla izquierda y señala ausencias con NULL.
Añade una o varias filas alineando columnas, valores predeterminados y restricciones.
INSERT INTO ... SELECT
Inserta en una tabla las filas producidas por un SELECT y valida columnas, restricciones y alcance antes de modificar datos.
Conserva las filas completas que aparecen en los dos resultados.
IS DISTINCT FROM
Compara dos expresiones y devuelve verdadero o falso incluso cuando una o ambas contienen NULL.
IS NULL / IS NOT NULL
Comprueba valores desconocidos con IS NULL e IS NOT NULL y evita compararlos mediante =.
Combina filas de tablas relacionadas.
Devuelve un valor de una fila anterior dentro de una ventana. Permite calcular cambios entre periodos sin unir la tabla consigo misma.
Devuelve un valor de una fila posterior dentro de una ventana. Resulta útil para comparar cada registro con el siguiente evento de una secuencia.
Conserva todas las filas de la tabla izquierda y usa NULL cuando no existe coincidencia.
Mide la longitud de un texto y obliga a distinguir caracteres de bytes según el motor.
Filtra texto mediante patrones con %, _, prefijos y reglas de mayúsculas dependientes del motor.
Fija un máximo de filas y permite construir consultas top N con un orden explícito.
Encuentra el mayor valor y decide cómo recuperar una o todas las filas empatadas.
Sincroniza origen y destino con acciones condicionales y simula la clasificación antes de modificar datos.
Encuentra el menor valor y recupera su fila sin depender de resultados arbitrarios.
Modificar la estructura de una tabla
Planifica cambios de esquema por fases: expandir, migrar, comprobar y restringir.
Nivel de aislamiento
Define qué estados concurrentes puede observar una transacción y qué garantías ofrece el motor.
Impide guardar NULL en una columna que debe tener un valor.
Compara dos expresiones. Si son iguales, devuelve NULL; si son diferentes, devuelve la primera.
NULLS FIRST / LAST
Controla si los valores NULL aparecen al principio o al final de un resultado ordenado.
Omite filas ordenadas para paginar; necesita un orden estable y cambia de sintaxis entre motores.
ON DELETE CASCADE
Propaga el borrado de una fila padre a las filas hijas que la referencian mediante una FOREIGN KEY.
Ordena resultados con varios criterios y resuelve empates de forma estable.
Crea prioridades de orden explícitas cuando las categorías no siguen un orden natural.
Familia de LEFT, RIGHT y FULL JOIN que conserva filas sin coincidencia.
Define la ventana de cálculo de una función sin agrupar ni perder las filas del resultado.
Divide filas en grupos para una función de ventana sin colapsarlas.
En SQL estándar, identifica cada fila con valores únicos y no nulos; incluye la excepción histórica de SQLite.
RANK y DENSE_RANK
Las dos funciones asignan posiciones respetando empates. La diferencia está en la posición que aparece después de un empate.
Renombrar columnas y tablas con ALTER TABLE
Cambia nombres de tablas o columnas sin mover datos y revisa vistas, consultas y código dependiente.
Sustituye todas las apariciones de un fragmento dentro de un texto.
Devuelve valores de las filas afectadas por INSERT, UPDATE o DELETE cuando el motor soporta esta extensión.
Conserva la tabla derecha completa y puede reescribirse invirtiendo un LEFT JOIN.
Cancela los cambios pendientes de una transacción antes de confirmarlos.
Redondea un número a la cantidad de decimales indicada.
Numera filas según un orden y puede reiniciar la secuencia para cada partición.
ROWS BETWEEN / window frame
Delimita las filas que usa una función de ventana para acumulados y métricas móviles.
Crea un punto intermedio dentro de una transacción para deshacer solo el trabajo posterior.
Define columnas, cálculos y alias del resultado sin modificar los datos.
Es un JOIN donde la misma tabla aparece dos veces con alias distintos. Permite comparar filas o recorrer relaciones como empleado y responsable.
STRING_AGG / GROUP_CONCAT
Concatena valores de varias filas en una cadena y distingue la sintaxis, el orden y el separador de cada motor.
Utiliza el resultado de una consulta dentro de otra para completar una condición o cálculo.
Extrae una parte de un texto indicando la posición inicial y la cantidad de caracteres.
Suma valores filtrados, interpreta conjuntos sin filas y evita duplicar totales tras un JOIN.
SUM con CASE WHEN
Cuenta condiciones o suma importes selectivamente combinando CASE con una agregación.
Sumar y restar fechas
Desplaza fechas por días, meses u horas y adapta la sintaxis al dialecto de tu motor.
Distingue estructura y datos: filas, columnas, tipos, claves y restricciones de una tabla.
Tablas temporales
Materializa resultados intermedios durante una sesión o conexión y compáralos con CTE y tablas permanentes.
Top N por grupo con ROW_NUMBER
Obtén las primeras N filas de cada grupo con una numeración independiente y un desempate explícito.
Limpia espacios o caracteres sobrantes de los extremos de un texto.
Vacía una tabla completa, exige un preflight y cambia en transacciones, identidades y claves foráneas.
Apila resultados compatibles y conserva una sola copia de cada fila.
Apila todos los resultados y mantiene cada aparición, incluso si se repite.
UNION vs UNION ALL
UNION conserva una sola copia de cada fila; UNION ALL mantiene cada aparición y evita deduplicar.
Evita duplicados en una columna o combinación y distingue unicidad, obligatoriedad y tratamiento de NULL.
Modifica filas con SET y WHERE, comprueba el alcance y protege cambios mediante transacciones.
Transforman el texto del resultado entre mayúsculas y minúsculas sin modificar el dato.
Inserta una fila o actualiza la existente cuando una clave única detecta un conflicto.
Consulta reutilizable que se usa como una tabla virtual y refleja los datos de sus tablas base.
Filtra filas con condiciones, lógica booleana y comprobaciones correctas de NULL.
WHERE vs HAVING
WHERE filtra filas antes de agrupar; HAVING conserva grupos después de calcular agregaciones.
Define resultados intermedios con nombre y alcance de una sola sentencia para organizar consultas complejas.
CTE vs subconsulta
Compara dos formas de organizar resultados intermedios y decide cuándo conviene cada una sin asumir ventajas de rendimiento.
Índice compuesto
Indexa varias columnas en un orden deliberado y aprende por qué el prefijo del índice importa para filtros y ordenaciones.
Índice parcial / filtrado
Indexa solo las filas que cumplen una condición y valida el predicado con tus consultas reales.
Índice sobre expresión
Indexa transformaciones como LOWER(email) cuando esa expresión forma parte de consultas reales y frecuentes.
Paginación keyset
Continúa desde la última fila con un cursor estable y evita depender de offsets cada vez mayores.
Divide filas ordenadas en N grupos lo más equilibrados posible mediante una función de ventana.
UPDATE con JOIN / UPDATE FROM
Actualiza una tabla usando datos de otra y adapta UPDATE FROM o UPDATE JOIN al motor.
DELETE con JOIN / USING
Borra filas según otra tabla con USING, JOIN o EXISTS y comprueba el alcance antes de eliminar.
GROUPING SETS / ROLLUP / CUBE
Calcula subtotales, total general y varios niveles de agrupación en una sola consulta.
Encuentra filas sin coincidencia con NOT EXISTS o LEFT JOIN + IS NULL y evita trampas con NULL.
Diferencia entre fechas
Calcula días, horas o meses entre dos fechas y adapta DATEDIFF/TIMESTAMPDIFF/resta según el motor.
PERCENT_RANK / CUME_DIST
Mide rango relativo y distribución acumulada dentro de una ventana, con empates y particiones.
LEAST / GREATEST
Elige el menor o mayor valor entre varias expresiones de una fila y controla las diferencias de NULL entre motores.
Compara un valor con una columna de una subconsulta: basta una coincidencia con ANY y deben cumplirse todas con ALL.
Agrupar por mes en SQL
Resume fechas por mes sin mezclar años y adapta la clave temporal a PostgreSQL, MySQL, SQL Server o SQLite.
LATERAL / APPLY
Haz que una subconsulta de FROM dependa de cada fila exterior y adapta el patrón a APPLY en SQL Server.
Porcentaje del total en SQL
Calcula qué parte representa cada grupo respecto al total con SUM() OVER() y evita errores de división y redondeo.
Agrupar por rangos con CASE
Convierte valores continuos en tramos con CASE y resume cada categoría con GROUP BY sin huecos ni solapamientos.
Primer y último día del mes en SQL
Calcula los límites de un mes por motor y evita perder filas al filtrar timestamps del último día.
UPDATE con CASE: varias filas
Asigna valores distintos a varias filas en un solo UPDATE y conserva un WHERE explícito para limitar el alcance.
ON UPDATE CASCADE
Propaga a las filas hijas un cambio de la clave referenciada y ayuda a mantener relaciones válidas.
No hay resultados
Prueba con una palabra más corta, elimina un filtro o busca el concepto en el curso.