122 términos de SQL explicados en español, con ejemplos. Referencia rápida del curso Aprende SQL.
- ACID — Transacciones
- Las cuatro garantías de una transacción: Atomicidad (todo o nada), Consistencia (nunca deja datos en estado inválido), Aislamiento (una transacción no ve los cambios a medias de otra) y Durabilidad (confirmado, sobrevive a un apagón).
Ver en la lección: Transacciones: BEGIN, COMMIT, ROLLBACK y SAVEPOINT →
- Alias (AS) — Consultas
- Un nombre temporal para una columna o tabla dentro de una consulta, con la palabra AS — útil para renombrar el resultado de un cálculo o acortar nombres largos en un JOIN.
SELECT precio * 1.18 AS precio_con_igv FROM productos;
Ver en la lección: Columnas calculadas, alias y DISTINCT →
- ALTER TABLE — Estructura
- Modifica la estructura de una tabla que ya existe: agrega, quita o cambia columnas y restricciones.
ALTER TABLE clientes ADD COLUMN telefono VARCHAR(20);
Ver en la lección: Modificar y borrar estructuras: ALTER, DROP y claves foráneas →
- AND — Filtrado
- Operador lógico: exige que TODAS las condiciones se cumplan para que la fila pase el filtro.
Ver en la lección: Operadores lógicos: AND, OR, NOT →
- ASC — Consultas
- Modificador de ORDER BY para orden ascendente (menor a mayor, A a la Z). Es el orden por defecto si no se indica nada.
Ver en la lección: Ordenar y limitar: ORDER BY y LIMIT →
- AUTOINCREMENT / AUTO_INCREMENT — Estructura
- Hace que el motor asigne un número correlativo automático a una columna (típicamente la clave primaria) en cada INSERT. El nombre exacto cambia por motor.
Ver en la lección: Crear tablas y restricciones: CREATE TABLE →
- AVG — Agregación
- Calcula el promedio de una columna numérica, ignorando los NULL.
Ver en la lección: Funciones de agregación: COUNT, SUM, AVG, MIN, MAX →
- Base de datos — Concepto
- Conjunto de datos organizados para poder guardarlos, consultarlos y modificarlos de forma eficiente y consistente.
- Base de datos clave-valor — NoSQL
- Motor NoSQL (Redis, DynamoDB) que funciona como un diccionario gigante: una clave de texto apunta a un valor. Sin columnas, sin JOINs, acceso muy rápido por clave exacta.
Ver en la lección: NoSQL: cuando el modelo relacional no es la respuesta →
- Base de datos columnar — NoSQL
- Motor NoSQL (Cassandra, HBase) optimizado para escribir enormes volúmenes de datos muy rápido — típico en logs, métricas y sensores IoT, donde se escribe mucho más de lo que se consulta.
Ver en la lección: NoSQL: cuando el modelo relacional no es la respuesta →
- Base de datos de documentos — NoSQL
- Motor NoSQL (MongoDB, CouchDB) que guarda cada registro como un documento tipo JSON, con los datos relacionados embebidos adentro en vez de repartidos en tablas separadas.
Ver en la lección: NoSQL: cuando el modelo relacional no es la respuesta →
- Base de datos de grafos — NoSQL
- Motor NoSQL (Neo4j, ArangoDB) donde los nodos y sus relaciones son ciudadanos de primera clase, no filas ni JOINs — ideal para recomendaciones, redes sociales y cualquier "amigos de amigos".
Ver en la lección: NoSQL: cuando el modelo relacional no es la respuesta →
- Base de datos relacional — Concepto
- Base de datos que organiza la información en tablas conectadas entre sí mediante claves, en vez de un solo bloque de datos suelto. Es el modelo sobre el que trabaja SQL.
- BEGIN — Transacciones
- Abre una transacción manual, agrupando las operaciones siguientes hasta que se confirmen (COMMIT) o se deshagan (ROLLBACK).
Ver en la lección: Transacciones: BEGIN, COMMIT, ROLLBACK y SAVEPOINT →
- BETWEEN — Filtrado
- Comprueba si un valor cae dentro de un rango, incluyendo ambos extremos.
edad BETWEEN 18 AND 30
Ver en la lección: Rangos y listas: BETWEEN e IN →
- Cardinalidad — Concepto
- Cómo se relacionan las filas de dos tablas: uno a uno, uno a muchos, o muchos a muchos. Define qué tipo de JOIN y de clave foránea tiene sentido usar.
Ver en la lección: Modificar y borrar estructuras: ALTER, DROP y claves foráneas →
- CHECK — Estructura
- Restricción que valida una condición sobre cada fila antes de aceptarla.
precio DECIMAL(10,2) CHECK (precio >= 0)
Ver en la lección: Crear tablas y restricciones: CREATE TABLE →
- Cláusula — Concepto
- Cada bloque con el que se arma una sentencia SQL — SELECT, FROM, WHERE, GROUP BY, ORDER BY — cada uno con su propia función.
Ver en la lección: Agrupación múltiple y orden de ejecución →
- COALESCE — Valores NULL
- Devuelve el primer valor no NULL de una lista de argumentos. Sirve para reemplazar un NULL por un valor por defecto.
COALESCE(telefono, 'sin teléfono')
Ver en la lección: Conversión de tipos: CAST, COALESCE y NULLIF →
- Columna (campo) — Concepto
- Cada atributo vertical de una tabla, con un nombre y un tipo de dato fijo — por ejemplo, la columna "email" es siempre texto.
Ver en la lección: Crear tablas y restricciones: CREATE TABLE →
- COMMIT — Transacciones
- Confirma una transacción: guarda de forma permanente todos los cambios hechos desde el BEGIN.
Ver en la lección: Transacciones: BEGIN, COMMIT, ROLLBACK y SAVEPOINT →
- Comodín (% y _) — Filtrado
- Se usan junto a LIKE: % representa cero o más caracteres cualquiera, _ representa exactamente un carácter.
nombre LIKE 'Ana%' -- empieza con 'Ana'
Ver en la lección: Búsqueda de texto: LIKE y patrones →
- Consulta (query) — Concepto
- Una instrucción SQL enviada a la base de datos para leer o modificar datos. La más común es SELECT.
Ver en la lección: Consultas básicas: SELECT y FROM →
- COUNT — Agregación
- Cuenta filas. COUNT(*) cuenta todas; COUNT(columna) solo las que no son NULL en esa columna.
Ver en la lección: Funciones de agregación: COUNT, SUM, AVG, MIN, MAX →
- CREATE TABLE — Estructura
- Crea una tabla nueva, definiendo sus columnas, tipos de datos y restricciones.
Ver en la lección: Crear tablas y restricciones: CREATE TABLE →
- CROSS JOIN — Uniones
- Combina cada fila de una tabla con TODAS las filas de la otra (producto cartesiano), sin condición de unión. Crece muy rápido: 100 × 100 filas = 10.000.
Ver en la lección: FULL OUTER JOIN y CROSS JOIN →
- CTE (Common Table Expression) — Subconsultas
- Una subconsulta con nombre, definida con WITH, reutilizable dentro de la consulta principal. Hace legibles las consultas complejas al dividirlas en pasos con nombre.
WITH ventas_2026 AS (SELECT * FROM ventas WHERE anio = 2026)
SELECT cliente, SUM(monto) FROM ventas_2026 GROUP BY cliente;
Ver en la lección: Expresiones de tabla común: WITH →
- CTE recursivo (WITH RECURSIVE) — Subconsultas
- Una CTE que se referencia a sí misma, repitiéndose hasta que una condición detiene la recursión. Sirve para recorrer jerarquías (organigramas, categorías anidadas, árboles genealógicos).
Ver en la lección: CTEs recursivos →
- DDL (Data Definition Language) — Concepto
- El subconjunto de SQL que define o cambia la estructura de la base de datos: CREATE, ALTER, DROP. No toca los datos en sí, solo el "molde".
Ver en la lección: Crear tablas y restricciones: CREATE TABLE →
- DEFAULT — Estructura
- Asigna un valor automático a una columna cuando un INSERT no especifica ninguno.
Ver en la lección: Crear tablas y restricciones: CREATE TABLE →
- DELETE — Manipulación
- Elimina filas de una tabla. Igual que UPDATE, sin WHERE borra TODA la tabla.
Ver en la lección: Eliminar datos: DELETE →
- DENSE_RANK — Ventana
- Como RANK, pero sin saltos tras un empate: las posiciones siguen siendo consecutivas (1, 1, 2…).
Ver en la lección: Ranking: ROW_NUMBER, RANK, DENSE_RANK →
- DESC — Consultas
- Modificador de ORDER BY para orden descendente (mayor a menor, Z a la A).
Ver en la lección: Ordenar y limitar: ORDER BY y LIMIT →
- DISTINCT — Consultas
- Elimina las filas duplicadas del resultado, dejando solo combinaciones de valores únicas.
Ver en la lección: Columnas calculadas, alias y DISTINCT →
- DML (Data Manipulation Language) — Concepto
- El subconjunto de SQL que lee y modifica los datos dentro de las tablas: SELECT, INSERT, UPDATE, DELETE.
Ver en la lección: Insertar datos: INSERT →
- Driver (de base de datos) — Seguridad
- La librería que traduce entre tu lenguaje de programación y el protocolo de red de un motor de base de datos concreto — por ejemplo, mysql2 para hablar con MySQL/MariaDB desde Node.js.
Ver en la lección: SQL en producción: conectar con Node.js →
- DROP TABLE — Estructura
- Elimina por completo una tabla, con su estructura y todos sus datos. Irreversible.
Ver en la lección: Modificar y borrar estructuras: ALTER, DROP y claves foráneas →
- Embeber (denormalizar) — NoSQL
- Guardar datos relacionados juntos, dentro del mismo registro, a propósito duplicando información — lo opuesto a normalizar. Evita JOINs a costa de poder quedar inconsistente si el dato duplicado cambia.
Ver en la lección: NoSQL: cuando el modelo relacional no es la respuesta →
- Esquema (schema) — Concepto
- La estructura completa de una base de datos: qué tablas hay, sus columnas, tipos y cómo se relacionan. En algunos motores además agrupa tablas bajo un espacio de nombres.
- EXCEPT — Conjuntos
- Devuelve las filas del primer SELECT que NO aparecen en el segundo. (En MySQL/MariaDB se simula con LEFT JOIN + IS NULL).
Ver en la lección: Operaciones de conjuntos: UNION, INTERSECT, EXCEPT →
- EXISTS / NOT EXISTS — Subconsultas
- Comprueba si una subconsulta devuelve alguna fila, sin importar cuáles — solo si hay o no resultado. Suele ser más eficiente que IN con subconsultas grandes.
Ver en la lección: Subconsultas correlacionadas y EXISTS →
- EXPLAIN / EXPLAIN QUERY PLAN — Motores
- Muestra cómo el motor PLANEA ejecutar una consulta (qué índices usa, en qué orden recorre las tablas) sin ejecutarla realmente — la herramienta base para diagnosticar consultas lentas.
Ver en la lección: Optimización (EXPLAIN QUERY PLAN) y motores de bases de datos →
- Expresión — Concepto
- Cualquier combinación de columnas, valores, operadores y funciones que produce un valor al evaluarse — un cálculo, una concatenación de texto, etc.
Ver en la lección: Columnas calculadas, alias y DISTINCT →
- Fila (registro) — Concepto
- Cada entrada horizontal de una tabla: un elemento concreto con un valor para cada columna. También se le llama registro.
- FOREIGN KEY (clave foránea) — Estructura
- Columna que referencia la clave primaria de otra tabla, garantizando que ese valor exista allí. Es lo que conecta tablas relacionadas.
Ver en la lección: Modificar y borrar estructuras: ALTER, DROP y claves foráneas →
- FROM — Consultas
- Indica de qué tabla (o tablas) vienen los datos. Aunque se escribe después de SELECT, es la primera cláusula que el motor evalúa.
Ver en la lección: Consultas básicas: SELECT y FROM →
- FULL OUTER JOIN — Uniones
- Conserva todas las filas de ambas tablas, con NULL donde no hay coincidencia del otro lado. (No disponible en MySQL/MariaDB; se simula con LEFT JOIN UNION RIGHT JOIN).
Ver en la lección: FULL OUTER JOIN y CROSS JOIN →
- Función de agregación — Agregación
- Resume varias filas en un solo valor — COUNT, SUM, AVG, MIN, MAX. Se suele combinar con GROUP BY para calcular un resultado por grupo.
Ver en la lección: Funciones de agregación: COUNT, SUM, AVG, MIN, MAX →
- Función de ventana — Ventana
- Calcula un valor sobre un conjunto de filas relacionadas (la "ventana") SIN colapsarlas en una sola fila, a diferencia de GROUP BY — cada fila conserva su lugar en el resultado.
Ver en la lección: Funciones de ventana: OVER y PARTITION BY →
- GROUP BY — Agregación
- Agrupa las filas que comparten el mismo valor en una o más columnas, para aplicarles una función de agregación por grupo en vez de a toda la tabla.
SELECT ciudad, COUNT(*) FROM clientes GROUP BY ciudad;
Ver en la lección: Agrupar datos: GROUP BY →
- HAVING — Agregación
- Filtra grupos DESPUÉS de agrupar — lo que WHERE es a las filas, HAVING lo es a los grupos. Se usa cuando la condición depende de una función de agregación.
SELECT cliente_id FROM pedidos GROUP BY cliente_id HAVING COUNT(*) > 10;
Ver en la lección: Filtrar grupos: HAVING →
- IF EXISTS — Estructura
- Cláusula opcional (ej: DROP TABLE IF EXISTS) que evita un error si el objeto sobre el que se actúa no existe.
Ver en la lección: Modificar y borrar estructuras: ALTER, DROP y claves foráneas →
- IN — Filtrado
- Comprueba si un valor coincide con alguno de una lista, o con el resultado de una subconsulta. Equivale a varios OR encadenados.
Ver en la lección: Rangos y listas: BETWEEN e IN →
- Índice (INDEX) — Estructura
- Estructura auxiliar que el motor mantiene para encontrar filas rápido sin recorrer toda la tabla — como el índice de un libro. Acelera lecturas, cuesta espacio y algo de velocidad al escribir.
Ver en la lección: Índices: CREATE INDEX →
- INNER JOIN — Uniones
- Devuelve solo las filas que tienen coincidencia en AMBAS tablas. Es lo que se aplica por defecto al escribir solo JOIN.
Ver en la lección: Combinar tablas: INNER JOIN →
- INSERT INTO — Manipulación
- Agrega una o más filas nuevas a una tabla.
INSERT INTO clientes (nombre, email) VALUES ('Ana', 'ana@x.com');Ver en la lección: Insertar datos: INSERT →
- Integridad referencial — Estructura
- Garantía de que una clave foránea siempre apunta a una fila que realmente existe en la tabla referenciada — nunca a un "huérfano".
Ver en la lección: Modificar y borrar estructuras: ALTER, DROP y claves foráneas →
- INTERSECT — Conjuntos
- Devuelve solo las filas presentes en AMBOS resultados.
Ver en la lección: Operaciones de conjuntos: UNION, INTERSECT, EXCEPT →
- Inyección SQL — Seguridad
- Vulnerabilidad donde un atacante mete código SQL a través de un campo de entrada porque la app concatenó ese texto directo en la consulta en vez de usar prepared statements. Puede exponer o borrar datos ajenos.
Ver en la lección: SQL en producción: conectar con Node.js →
- IS NULL / IS NOT NULL — Valores NULL
- La única forma correcta de comprobar si un valor es (o no) NULL — una comparación normal con = siempre da "desconocido" frente a NULL.
Ver en la lección: Lógica condicional: CASE y manejo de NULL →
- JOIN — Uniones
- Combina filas de dos o más tablas relacionadas, usando una condición de unión (normalmente clave foránea = clave primaria).
Ver en la lección: Combinar tablas: INNER JOIN →
- LAG — Ventana
- Trae el valor de una fila ANTERIOR dentro de la partición — útil para comparar cada fila con la que la precede (ej: variación mes contra mes).
Ver en la lección: Acceso entre filas: LAG y LEAD →
- LEAD — Ventana
- Trae el valor de una fila POSTERIOR dentro de la partición — el espejo de LAG.
Ver en la lección: Acceso entre filas: LAG y LEAD →
- LEFT JOIN — Uniones
- Conserva TODAS las filas de la tabla izquierda, tengan o no coincidencia en la derecha — sin coincidencia, las columnas de la derecha llegan en NULL.
Ver en la lección: Conservar filas: LEFT y RIGHT JOIN →
- LIKE — Filtrado
- Busca coincidencias de texto usando comodines, en vez de una igualdad exacta.
Ver en la lección: Búsqueda de texto: LIKE y patrones →
- LIMIT / OFFSET — Consultas
- LIMIT recorta cuántas filas devuelve la consulta; OFFSET salta las primeras N. Juntos arman la paginación.
SELECT * FROM productos ORDER BY id LIMIT 20 OFFSET 40; -- página 3
Ver en la lección: Ordenar y limitar: ORDER BY y LIMIT →
- MariaDB — Motores
- Fork de MySQL creado por sus desarrolladores originales tras la compra de Oracle, con el que mantiene amplia compatibilidad. Enfoque más comunitario y abierto.
Ver en la lección: Optimización (EXPLAIN QUERY PLAN) y motores de bases de datos →
- MAX — Agregación
- Devuelve el valor más grande de una columna dentro del grupo.
Ver en la lección: Funciones de agregación: COUNT, SUM, AVG, MIN, MAX →
- MIN — Agregación
- Devuelve el valor más pequeño de una columna dentro del grupo.
Ver en la lección: Funciones de agregación: COUNT, SUM, AVG, MIN, MAX →
- MongoDB — NoSQL
- El motor de documentos más usado. Guarda colecciones de documentos JSON con esquema flexible — dos documentos de la misma colección pueden tener campos distintos.
Ver en la lección: NoSQL: cuando el modelo relacional no es la respuesta →
- Motor de base de datos — Motores
- El software concreto que implementa un RDBMS y ejecuta las consultas — SQLite, PostgreSQL, MySQL, MariaDB. Cada uno tiene sus propias variaciones de sintaxis sobre el estándar SQL.
Ver en la lección: Optimización (EXPLAIN QUERY PLAN) y motores de bases de datos →
- MySQL — Motores
- Uno de los motores cliente-servidor de código abierto más usados en aplicaciones web, hoy propiedad de Oracle.
Ver en la lección: Optimización (EXPLAIN QUERY PLAN) y motores de bases de datos →
- Normalización — Concepto
- Diseñar las tablas para no repetir el mismo dato en varias filas, dividiéndolo en tablas relacionadas por clave foránea. Reduce inconsistencias, a costa de necesitar más JOINs para leer.
Ver en la lección: Modificar y borrar estructuras: ALTER, DROP y claves foráneas →
- NoSQL — NoSQL
- "Not Only SQL" — familia de motores que abandonan o relajan el modelo de tablas relacionadas. No es "anti-SQL": coexiste con las bases relacionales, y se usa cuando un problema concreto (escritura masiva, escalado extremo, datos sin forma tabular) lo justifica.
Ver en la lección: NoSQL: cuando el modelo relacional no es la respuesta →
- NOT — Filtrado
- Operador lógico que invierte una condición: selecciona las filas donde esa condición es falsa.
Ver en la lección: Operadores lógicos: AND, OR, NOT →
- NOT NULL — Estructura
- Restricción que obliga a que una columna siempre tenga un valor — impide guardar NULL ahí.
Ver en la lección: Crear tablas y restricciones: CREATE TABLE →
- NTILE — Ventana
- Reparte las filas de una partición en N grupos de tamaño lo más parejo posible — por ejemplo, NTILE(4) arma cuartiles.
Ver en la lección: Distribución: NTILE y percentiles →
- NULL — Valores NULL
- Representa la AUSENCIA de un valor — no es lo mismo que 0, texto vacío o falso. Por eso nunca se compara con = NULL; se usa IS NULL / IS NOT NULL.
Ver en la lección: Lógica condicional: CASE y manejo de NULL →
- NULLIF — Valores NULL
- Devuelve NULL si dos valores son iguales, o el primero si son distintos. Útil para evitar división por cero: NULLIF(divisor, 0).
Ver en la lección: Conversión de tipos: CAST, COALESCE y NULLIF →
- ON DELETE CASCADE — Estructura
- Opción de una clave foránea: al borrar la fila referenciada, borra automáticamente también las filas relacionadas que dependen de ella.
Ver en la lección: Modificar y borrar estructuras: ALTER, DROP y claves foráneas →
- OR — Filtrado
- Operador lógico: basta con que UNA de las condiciones se cumpla para que la fila pase.
Ver en la lección: Operadores lógicos: AND, OR, NOT →
- Orden de ejecución — Concepto
- El orden REAL en que el motor procesa las cláusulas — FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT — que no coincide con el orden en que se escriben. Por eso HAVING puede filtrar por algo que WHERE todavía no "conoce".
Ver en la lección: Agrupación múltiple y orden de ejecución →
- ORDER BY — Consultas
- Ordena las filas del resultado según una o más columnas.
SELECT * FROM productos ORDER BY precio DESC;
Ver en la lección: Ordenar y limitar: ORDER BY y LIMIT →
- OVER — Ventana
- La cláusula que convierte una función normal en función de ventana, definiendo su partición y su orden.
Ver en la lección: Funciones de ventana: OVER y PARTITION BY →
- PARTITION BY — Ventana
- Dentro de OVER, divide las filas en grupos (particiones) sobre los que la función de ventana calcula de forma independiente — como un GROUP BY que no colapsa filas.
Ver en la lección: Funciones de ventana: OVER y PARTITION BY →
- Pool de conexiones — Seguridad
- Conjunto de conexiones a la base de datos que un servidor abre por adelantado y reutiliza entre peticiones, en vez de abrir y cerrar una conexión nueva por cada request. Evita saturar la base de datos bajo tráfico.
Ver en la lección: SQL en producción: conectar con Node.js →
- PostgreSQL — Motores
- Motor cliente-servidor de código abierto, muy fiel al estándar SQL, con tipos de datos avanzados y gran extensibilidad. Hoy el más valorado por developers en encuestas como Stack Overflow.
Ver en la lección: Optimización (EXPLAIN QUERY PLAN) y motores de bases de datos →
- Predicado — Filtrado
- Una condición lógica que se evalúa como verdadera, falsa o desconocida (por un NULL de por medio) — lo que va dentro de un WHERE o un HAVING.
Ver en la lección: Filtrar filas: WHERE →
- Prepared statement (consulta parametrizada) — Seguridad
- Una consulta con marcadores (? o :nombre) donde los valores viajan por separado del texto SQL, en vez de concatenarse directo. Es la defensa estándar contra inyección SQL.
-- en vez de concatenar texto:
SELECT * FROM users WHERE email = ?;
Ver en la lección: SQL en producción: conectar con Node.js →
- PRIMARY KEY (clave primaria) — Estructura
- La columna (o combinación) que identifica de forma única cada fila. No se repite ni admite NULL, y solo puede haber una por tabla.
Ver en la lección: Crear tablas y restricciones: CREATE TABLE →
- RANK — Ventana
- Asigna una posición según el orden; las filas empatadas comparten puesto, y el siguiente puesto salta (1, 1, 3…).
Ver en la lección: Ranking: ROW_NUMBER, RANK, DENSE_RANK →
- RDBMS (SGBD) — Concepto
- Relational Database Management System — el software que administra una base de datos relacional (crea tablas, ejecuta consultas, controla accesos). SQLite, PostgreSQL, MySQL y MariaDB son RDBMS distintos.
- Redis — NoSQL
- Motor clave-valor en memoria, muy usado como capa de caché delante de una base relacional — guarda ahí lo que se lee muchísimo y cambia poco (sesiones, contadores, resultados frecuentes).
Ver en la lección: NoSQL: cuando el modelo relacional no es la respuesta →
- Relación — Concepto
- El vínculo lógico entre dos tablas, normalmente por clave primaria/foránea. En el modelo relacional formal, "relación" es también el término técnico para "tabla".
Ver en la lección: Modificar y borrar estructuras: ALTER, DROP y claves foráneas →
- Restricción (constraint) — Estructura
- Regla que limita qué valores acepta una columna o tabla, para proteger la integridad de los datos: PRIMARY KEY, FOREIGN KEY, NOT NULL, UNIQUE, CHECK, DEFAULT.
Ver en la lección: Crear tablas y restricciones: CREATE TABLE →
- RIGHT JOIN — Uniones
- Como LEFT JOIN pero al revés: conserva todas las filas de la tabla derecha.
Ver en la lección: Conservar filas: LEFT y RIGHT JOIN →
- ROLLBACK — Transacciones
- Deshace una transacción, revirtiendo todos los cambios como si nunca hubieran pasado.
Ver en la lección: Transacciones: BEGIN, COMMIT, ROLLBACK y SAVEPOINT →
- ROW_NUMBER — Ventana
- Asigna un número correlativo único a cada fila según el orden indicado, sin empates — 1, 2, 3, 4… aunque haya valores repetidos.
Ver en la lección: Ranking: ROW_NUMBER, RANK, DENSE_RANK →
- SAVEPOINT — Transacciones
- Un punto de control dentro de una transacción larga, al que se puede volver con ROLLBACK TO sin deshacer TODA la transacción — solo lo hecho después de ese punto.
Ver en la lección: Transacciones: BEGIN, COMMIT, ROLLBACK y SAVEPOINT →
- SELECT — Consultas
- La sentencia para leer datos: elige qué columnas traer, de qué tabla, con qué filtro y en qué orden.
SELECT nombre, email FROM clientes;
Ver en la lección: Consultas básicas: SELECT y FROM →
- SELECT * — Consultas
- El asterisco pide "todas las columnas" sin nombrarlas una por una. Cómodo para explorar datos, pero mala práctica en código de producción — mejor nombrar las columnas explícitamente.
Ver en la lección: Consultas básicas: SELECT y FROM →
- SELF JOIN — Uniones
- Una tabla unida consigo misma, usando dos alias distintos — útil para comparar filas de la misma tabla entre sí (ej: un empleado y su jefe, ambos en la tabla "empleados").
Ver en la lección: Auto-relaciones: SELF JOIN →
- SET — Manipulación
- Dentro de un UPDATE, indica qué columnas cambian y con qué valores.
Ver en la lección: Actualizar datos: UPDATE →
- SQL — Concepto
- Structured Query Language: el lenguaje estándar para definir, consultar y modificar datos en una base de datos relacional. Se lee "ese-cu-ele" o "síquel".
- SQLite — Motores
- Motor embebido, sin servidor: toda la base de datos vive en un solo archivo. El más usado del mundo — va integrado en navegadores, móviles y apps de escritorio. Es el que corre este curso en tu navegador.
Ver en la lección: Optimización (EXPLAIN QUERY PLAN) y motores de bases de datos →
- Subconsulta — Subconsultas
- Un SELECT anidado dentro de otra consulta. Puede ir en el WHERE, el FROM o el SELECT.
SELECT nombre FROM clientes WHERE id IN (SELECT cliente_id FROM pedidos WHERE monto > 1000);
Ver en la lección: Subconsultas escalares →
- Subconsulta correlacionada — Subconsultas
- Una subconsulta que usa una columna de la consulta externa, así que se vuelve a ejecutar para cada fila externa (a diferencia de una subconsulta normal, que corre una sola vez).
Ver en la lección: Subconsultas correlacionadas y EXISTS →
- SUM — Agregación
- Suma los valores numéricos de una columna dentro del grupo.
Ver en la lección: Funciones de agregación: COUNT, SUM, AVG, MIN, MAX →
- Tabla — Concepto
- Estructura que guarda datos de un mismo tipo de entidad (por ejemplo, "clientes") organizados en filas y columnas.
Ver en la lección: Crear tablas y restricciones: CREATE TABLE →
- Tipo de dato — Estructura
- Define qué clase de valor acepta una columna (entero, texto, fecha, booleano…). Los nombres varían por motor — un texto es TEXT en SQLite/PostgreSQL pero VARCHAR(n) en MySQL.
Ver en la lección: Crear tablas y restricciones: CREATE TABLE →
- Transacción — Transacciones
- Un grupo de operaciones que se ejecutan como una sola unidad: o se aplican todas, o ninguna. Evita estados intermedios inconsistentes.
Ver en la lección: Transacciones: BEGIN, COMMIT, ROLLBACK y SAVEPOINT →
- Trigger — Motores
- Código que el motor ejecuta automáticamente cuando ocurre un evento (INSERT, UPDATE, DELETE) sobre una tabla — por ejemplo, actualizar un stock cada vez que se registra una venta.
Ver en la lección: Triggers y automatización →
- TRUNCATE — Manipulación
- Borra todas las filas de una tabla de golpe, sin evaluarlas una por una como DELETE — más rápido, pero sin condiciones posibles y sin poder deshacerse en algunos motores.
Ver en la lección: Eliminar datos: DELETE →
- Tupla — Concepto
- Nombre formal (del modelo relacional) para una fila: una lista ordenada de valores, uno por columna.
- UNION — Conjuntos
- Combina el resultado de dos SELECT (con las mismas columnas) en uno solo, eliminando filas duplicadas.
Ver en la lección: Operaciones de conjuntos: UNION, INTERSECT, EXCEPT →
- UNION ALL — Conjuntos
- Igual que UNION, pero conserva los duplicados. Más rápido porque no tiene que comparar filas para descartarlos.
Ver en la lección: Operaciones de conjuntos: UNION, INTERSECT, EXCEPT →
- UNIQUE — Estructura
- Restricción que impide que se repita un valor en esa columna entre distintas filas (a diferencia de PRIMARY KEY, puede haber varias UNIQUE por tabla y sí admite un NULL).
Ver en la lección: Crear tablas y restricciones: CREATE TABLE →
- UPDATE — Manipulación
- Modifica filas ya existentes. Sin un WHERE, actualiza TODA la tabla — uno de los errores más comunes y peligrosos en SQL.
UPDATE productos SET precio = precio * 1.10 WHERE categoria = 'electronica';
Ver en la lección: Actualizar datos: UPDATE →
- UPSERT — Manipulación
- Un INSERT que se convierte en UPDATE si la fila ya existe según una clave. La sintaxis cambia por motor: ON CONFLICT ... DO UPDATE (PostgreSQL/SQLite) vs ON DUPLICATE KEY UPDATE (MySQL/MariaDB).
- Vista (VIEW) — Estructura
- Un SELECT guardado con nombre que se usa como si fuera una tabla. No duplica datos: cada consulta a la vista ejecuta el SELECT original por debajo.
Ver en la lección: Vistas: CREATE VIEW →
- WHERE — Filtrado
- Filtra qué filas entran al resultado, evaluando una condición fila por fila antes de cualquier agrupación.
SELECT * FROM pedidos WHERE estado = 'pendiente';
Ver en la lección: Filtrar filas: WHERE →
- WITH — Subconsultas
- La palabra clave que introduce una o varias CTE antes de la consulta principal que las usa.
Ver en la lección: Expresiones de tabla común: WITH →