ACID
TransaccionesConjunto de propiedades que garantizan la fiabilidad de las transacciones: Atomicidad, Consistencia, Aislamiento (Isolation) y Durabilidad.
Ver en la lección: Transacciones: BEGIN, COMMIT y ROLLBACKLas definiciones de los términos y conceptos de SQL y bases de datos más usados, ordenados de la A a la Z. Cuando un término se explica en el curso, encontrarás un enlace directo a su lección.
Conjunto de propiedades que garantizan la fiabilidad de las transacciones: Atomicidad, Consistencia, Aislamiento (Isolation) y Durabilidad.
Ver en la lección: Transacciones: BEGIN, COMMIT y ROLLBACKNombre temporal que se asigna a una columna o tabla dentro de una consulta con la palabra clave AS, para mejorar la legibilidad o renombrar el resultado de una expresión.
Ver en la lección: Expresiones en SQL: Cálculos y manipulacionesSentencia que modifica la estructura de una tabla existente: añade, elimina o cambia columnas y restricciones.
Ver en la lección: Modificando estructuras: ALTER TABLEOperador lógico que combina condiciones exigiendo que todas se cumplan a la vez para que una fila pase el filtro.
Ver en la lección: Filtrando datos: WHERE y operadoresModificador de ORDER BY que ordena los resultados de forma ascendente (de menor a mayor, de la A a la Z). Es el orden por defecto.
Ver en la lección: Ordenando y eliminando duplicados: ORDER BY y DISTINCTMecanismo que genera automáticamente un valor numérico único y creciente para una columna (habitualmente la clave primaria) cada vez que se inserta una fila.
Ver en la lección: Creando tablas: CREATE TABLEFunción de agregación que calcula la media aritmética de los valores numéricos de una columna, ignorando los valores NULL.
Ver en la lección: Agregando datos: COUNT, SUM, AVG, MIN y MAXColección organizada de datos almacenados de forma estructurada para poder consultarlos y modificarlos de manera eficiente. En SQL, los datos se organizan en tablas.
Tipo de base de datos que organiza la información en tablas (relaciones) compuestas por filas y columnas, y que permite conectar unas tablas con otras mediante claves. Es el modelo sobre el que trabaja SQL.
Sentencia (BEGIN o BEGIN TRANSACTION) que inicia una transacción, agrupando las operaciones siguientes hasta que se confirmen o se deshagan.
Ver en la lección: Transacciones: BEGIN, COMMIT y ROLLBACKOperador que comprueba si un valor está dentro de un rango, incluyendo ambos extremos. Por ejemplo, «edad BETWEEN 18 AND 30».
Ver en la lección: Búsquedas avanzadas: BETWEEN, IN y LIKENúmero y tipo de correspondencias entre las filas de dos tablas relacionadas: uno a uno, uno a muchos o muchos a muchos. Describe cuántas filas de una tabla pueden asociarse con filas de otra.
Restricción que valida que los valores de una columna cumplan una condición determinada (por ejemplo, que un precio sea mayor que cero).
Ver en la lección: Creando tablas: CREATE TABLECada una de las partes que componen una sentencia SQL e introducen una operación concreta, como SELECT, FROM, WHERE, GROUP BY u ORDER BY.
Ver en la lección: El orden de ejecución en SQLFunción que devuelve el primer argumento no NULL de una lista. Muy útil para sustituir valores nulos por un valor por defecto.
Ver en la lección: Manejo de valores nulos: NULL en SQLCada uno de los atributos verticales de una tabla; define un dato con un nombre y un tipo concretos (por ejemplo, «email» de tipo texto). También se le llama campo o atributo.
Sentencia que confirma una transacción, guardando de forma permanente en la base de datos todos los cambios realizados desde su inicio.
Ver en la lección: Transacciones: BEGIN, COMMIT y ROLLBACKCaracteres especiales que se usan con LIKE para representar partes variables de un texto: % sustituye a cero o más caracteres y _ sustituye exactamente a uno.
Ver en la lección: Búsquedas avanzadas: BETWEEN, IN y LIKEInstrucción escrita en SQL que se envía a la base de datos para recuperar o modificar datos. La consulta más habitual es la de tipo SELECT.
Ver en la lección: Consultas básicas con SELECTFunción de agregación que cuenta filas. COUNT(*) cuenta todas las filas, mientras que COUNT(columna) cuenta solo aquellas en las que la columna no es NULL.
Ver en la lección: Agregando datos: COUNT, SUM, AVG, MIN y MAXSentencia que crea una tabla nueva, definiendo sus columnas, los tipos de datos y las restricciones (clave primaria, NOT NULL, etc.).
Ver en la lección: Creando tablas: CREATE TABLEConsulta con nombre y temporal, definida con la cláusula WITH, que existe solo durante la ejecución de la consulta principal. Hace el código más legible y reutilizable que las subconsultas anidadas.
Ver en la lección: Expresiones de tabla comunes: CTEsData Definition Language: subconjunto de SQL que define y modifica la estructura de la base de datos. Incluye sentencias como CREATE, ALTER y DROP.
Restricción que asigna un valor por defecto a una columna cuando en una inserción no se proporciona ninguno.
Ver en la lección: Creando tablas: CREATE TABLESentencia que elimina filas de una tabla. Se acota con WHERE para borrar filas concretas; sin él, borra todas las filas de la tabla.
Ver en la lección: Eliminando registros: DELETEFunción de ventana similar a RANK, pero que no deja huecos en la numeración tras un empate: las posiciones siguen siendo consecutivas.
Ver en la lección: Funciones de ventanaModificador de ORDER BY que ordena los resultados de forma descendente (de mayor a menor, de la Z a la A).
Ver en la lección: Ordenando y eliminando duplicados: ORDER BY y DISTINCTPalabra clave que elimina las filas duplicadas del resultado, devolviendo solo combinaciones de valores únicas.
Ver en la lección: Ordenando y eliminando duplicados: ORDER BY y DISTINCTData Manipulation Language: subconjunto de SQL que consulta y modifica los datos almacenados. Incluye SELECT, INSERT, UPDATE y DELETE.
Sentencia que elimina por completo una tabla, con su estructura y todos sus datos. Es irreversible; con IF EXISTS se evita el error si la tabla no existe.
Ver en la lección: Eliminando tablas: DROP TABLEDefinición de la estructura de una base de datos: qué tablas existen, qué columnas y tipos tienen y cómo se relacionan entre sí. En algunos motores también designa un espacio de nombres que agrupa tablas.
Operador de conjuntos que devuelve las filas de la primera consulta que no aparecen en la segunda. En MySQL/MariaDB su equivalente suele ser un LEFT JOIN con IS NULL.
Ver en la lección: Combinando resultados: UNION, INTERSECT y EXCEPTOperadores que comprueban si una subconsulta devuelve al menos una fila. EXISTS es verdadero cuando hay resultados y NOT EXISTS cuando no los hay.
Ver en la lección: Subconsultas: consultas dentro de consultasCombinación de columnas, valores, operadores y funciones que se evalúa para producir un valor, como un cálculo aritmético o la concatenación de textos dentro de un SELECT.
Ver en la lección: Expresiones en SQL: Cálculos y manipulacionesCada una de las entradas horizontales de una tabla; representa un elemento concreto con valores para cada columna. También se le llama registro o, formalmente, tupla.
Restricción que enlaza una columna con la clave primaria de otra tabla, garantizando la integridad referencial: cada valor debe existir en la tabla referenciada. También llamada clave ajena.
Ver en la lección: Claves foráneas: FOREIGN KEYCláusula que indica la tabla (o tablas) de la que se obtienen los datos. Es la primera que se evalúa al ejecutar una consulta.
Ver en la lección: Consultas básicas con SELECTUnión externa que devuelve todas las filas de ambas tablas, emparejando las que coinciden y rellenando con NULL las que no tienen pareja en el otro lado.
Ver en la lección: JOINs externos: LEFT, RIGHT y FULL OUTER JOINFunción que resume un conjunto de filas en un único valor, como COUNT, SUM, AVG, MIN o MAX. Suele emplearse junto con GROUP BY.
Ver en la lección: Agregando datos: COUNT, SUM, AVG, MIN y MAXFunción que realiza un cálculo sobre un conjunto de filas relacionadas con la fila actual (la «ventana») sin colapsarlas en una sola, a diferencia de las funciones de agregación. Se define con OVER.
Ver en la lección: Funciones de ventanaCláusula que agrupa las filas que comparten el mismo valor en una o varias columnas, para aplicar funciones de agregación a cada grupo por separado.
Ver en la lección: Agrupando datos: GROUP BY y HAVINGCláusula que filtra los grupos creados por GROUP BY según una condición sobre valores agregados. Es a los grupos lo que WHERE es a las filas.
Ver en la lección: Agrupando datos: GROUP BY y HAVINGCláusula opcional (por ejemplo, en DROP TABLE IF EXISTS) que evita que se produzca un error cuando el objeto sobre el que se actúa no existe.
Ver en la lección: Eliminando tablas: DROP TABLEFunción (disponible en SQLite y MySQL) que devuelve un valor alternativo cuando el primero es NULL. Es una versión de dos argumentos equivalente a COALESCE.
Ver en la lección: Manejo de valores nulos: NULL en SQLOperador que comprueba si un valor coincide con alguno de los de una lista o con el resultado de una subconsulta. Equivale a varias condiciones unidas por OR.
Ver en la lección: Búsquedas avanzadas: BETWEEN, IN y LIKEEstructura auxiliar que acelera la búsqueda de filas en una tabla, a costa de algo más de espacio y de un pequeño coste al escribir. Se crea con CREATE INDEX.
Ver en la lección: Índices: CREATE INDEXUnión que devuelve únicamente las filas con coincidencia en ambas tablas. Es el tipo de JOIN más habitual y el que se aplica por defecto al escribir solo JOIN.
Ver en la lección: Uniendo tablas: Introducción a JOINsSentencia que añade una o varias filas nuevas a una tabla, indicando las columnas y los valores correspondientes.
Ver en la lección: Añadiendo registros: INSERT INTOPropiedad que asegura que las relaciones entre tablas sean coherentes: una clave foránea siempre debe apuntar a una fila que existe en la tabla referenciada.
Ver en la lección: Claves foráneas: FOREIGN KEYOperador de conjuntos que devuelve solo las filas presentes en los resultados de ambas consultas.
Ver en la lección: Combinando resultados: UNION, INTERSECT y EXCEPTOperadores para comprobar si un valor es (o no es) NULL. Deben usarse en lugar de = o <>, porque las comparaciones normales con NULL nunca son verdaderas.
Ver en la lección: Manejo de valores nulos: NULL en SQLOperación que combina filas de dos o más tablas relacionadas a partir de una condición de unión (normalmente la igualdad entre una clave foránea y una primaria).
Ver en la lección: Uniendo tablas: Introducción a JOINsFunción de ventana que accede al valor de una fila anterior dentro de la partición, útil para comparar cada fila con la que la precede.
Ver en la lección: Funciones de ventanaFunción de ventana que accede al valor de una fila posterior dentro de la partición, útil para comparar cada fila con la que le sigue.
Ver en la lección: Funciones de ventanaUnión externa que devuelve todas las filas de la tabla izquierda y las coincidentes de la derecha; cuando no hay coincidencia, las columnas de la derecha se rellenan con NULL.
Ver en la lección: JOINs externos: LEFT, RIGHT y FULL OUTER JOINOperador que busca patrones de texto usando comodines: % representa cualquier secuencia de caracteres y _ representa un único carácter.
Ver en la lección: Búsquedas avanzadas: BETWEEN, IN y LIKECláusula que restringe el número máximo de filas devueltas. Suele combinarse con ORDER BY para obtener, por ejemplo, los primeros resultados; junto con OFFSET permite paginar.
Ver en la lección: Ordenando y eliminando duplicados: ORDER BY y DISTINCTMotor de base de datos de código abierto creado como bifurcación (fork) de MySQL por sus desarrolladores originales, con el que mantiene una amplia compatibilidad.
Ver en la lección: Motores de bases de datos: cuál elegir y por quéFunción de agregación que devuelve el valor más grande de una columna dentro del grupo.
Ver en la lección: Agregando datos: COUNT, SUM, AVG, MIN y MAXFunción de agregación que devuelve el valor más pequeño de una columna dentro del grupo.
Ver en la lección: Agregando datos: COUNT, SUM, AVG, MIN y MAXComponente del RDBMS responsable de leer, escribir y procesar los datos físicamente. En sentido amplio se usa como sinónimo del propio sistema gestor (SQLite, PostgreSQL, MySQL…).
Ver en la lección: Motores de bases de datos: cuál elegir y por quéUno de los motores de bases de datos relacionales de código abierto más populares, muy usado en aplicaciones web. Actualmente es propiedad de Oracle.
Ver en la lección: Motores de bases de datos: cuál elegir y por quéProceso de diseñar las tablas para reducir la redundancia y evitar inconsistencias, dividiendo la información en tablas relacionadas según una serie de reglas conocidas como formas normales.
Operador lógico que niega una condición: selecciona las filas para las que dicha condición es falsa.
Ver en la lección: Filtrando datos: WHERE y operadoresRestricción de columna que obliga a que siempre haya un valor: impide que se guarden filas con NULL en esa columna.
Ver en la lección: Creando tablas: CREATE TABLEMarcador que representa la ausencia de valor o un dato desconocido. No equivale a cero ni a una cadena vacía, y cualquier comparación con NULL mediante = da un resultado desconocido.
Ver en la lección: Manejo de valores nulos: NULL en SQLOpción de una clave foránea que, al borrar una fila de la tabla referenciada, elimina automáticamente las filas relacionadas que dependen de ella.
Ver en la lección: Claves foráneas: FOREIGN KEYOperador lógico que combina condiciones de modo que basta con que una de ellas se cumpla para que la fila pase el filtro.
Ver en la lección: Filtrando datos: WHERE y operadoresSecuencia real en que la base de datos evalúa las cláusulas de una consulta (FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT), que difiere del orden en que se escriben.
Ver en la lección: El orden de ejecución en SQLCláusula que ordena las filas del resultado según una o varias columnas, de forma ascendente (ASC) o descendente (DESC).
Ver en la lección: Ordenando y eliminando duplicados: ORDER BY y DISTINCTCláusula que define la ventana sobre la que opera una función de ventana, incluyendo su partición (PARTITION BY) y su ordenación (ORDER BY).
Ver en la lección: Funciones de ventanaParte de la cláusula OVER que divide las filas en grupos (particiones) sobre los que se calcula la función de ventana de forma independiente.
Ver en la lección: Funciones de ventanaMotor de base de datos relacional de código abierto, muy potente y respetuoso con el estándar SQL. Destaca por su robustez, sus tipos avanzados y su extensibilidad.
Ver en la lección: Motores de bases de datos: cuál elegir y por quéCondición lógica que se evalúa como verdadera, falsa o desconocida, empleada en cláusulas como WHERE o HAVING para decidir qué filas se conservan.
Ver en la lección: Filtrando datos: WHERE y operadoresRestricción que identifica de forma única cada fila de una tabla. Sus valores no pueden repetirse ni ser NULL, y por tabla solo puede haber una clave primaria.
Ver en la lección: Creando tablas: CREATE TABLEFunción de ventana que asigna una posición según el orden establecido; las filas empatadas comparten posición y se dejan huecos en la numeración siguiente.
Ver en la lección: Funciones de ventanaRelational Database Management System, o Sistema Gestor de Bases de Datos relacional. Es el software que almacena, gestiona y da acceso a una base de datos relacional. SQLite, PostgreSQL, MySQL y MariaDB son ejemplos de RDBMS.
Ver en la lección: Motores de bases de datos: cuál elegir y por quéSinónimo de fila: un conjunto de valores relacionados que ocupa una línea de la tabla y describe un único elemento.
Vínculo lógico entre dos tablas, normalmente establecido mediante claves primarias y foráneas. En el modelo relacional, «relación» es además el término formal para una tabla.
Ver en la lección: Claves foráneas: FOREIGN KEYRegla que limita los valores admitidos en una columna o tabla para garantizar la integridad de los datos: PRIMARY KEY, FOREIGN KEY, NOT NULL, UNIQUE, CHECK o DEFAULT.
Ver en la lección: Creando tablas: CREATE TABLEUnión externa que devuelve todas las filas de la tabla derecha y las coincidentes de la izquierda, completando con NULL las columnas sin coincidencia.
Ver en la lección: JOINs externos: LEFT, RIGHT y FULL OUTER JOINSentencia que deshace una transacción, revirtiendo todos los cambios realizados desde su inicio y dejando la base de datos como estaba.
Ver en la lección: Transacciones: BEGIN, COMMIT y ROLLBACKFunción de ventana que asigna un número correlativo y único a cada fila según el orden indicado, empezando en 1 en cada partición.
Ver en la lección: Funciones de ventanaSentencia que recupera datos de una o varias tablas. Se indican las columnas deseadas tras SELECT; con SELECT * se seleccionan todas.
Ver en la lección: Consultas básicas con SELECTForma de SELECT en la que el asterisco (*) representa «todas las columnas» de la tabla. Cómodo para explorar datos, pero conviene evitarlo en producción y nombrar las columnas explícitamente.
Ver en la lección: Consultas básicas con SELECTCláusula de UPDATE que especifica qué columnas se modifican y con qué valores, mediante asignaciones del tipo «columna = valor».
Ver en la lección: Modificando datos: UPDATEStructured Query Language (lenguaje de consulta estructurado). Es el lenguaje estándar para definir, consultar y manipular datos en bases de datos relacionales. Se pronuncia «ese-cu-ele» o «síquel».
Motor de base de datos ligero, sin servidor, que guarda toda la base de datos en un único archivo. Es el más usado del mundo por ir integrado en móviles, navegadores y aplicaciones.
Ver en la lección: Motores de bases de datos: cuál elegir y por quéConsulta anidada dentro de otra. Puede aparecer en WHERE, FROM o SELECT y su resultado se utiliza como parte de la consulta principal.
Ver en la lección: Subconsultas: consultas dentro de consultasFunción de agregación que devuelve la suma de los valores numéricos de una columna dentro del grupo.
Ver en la lección: Agregando datos: COUNT, SUM, AVG, MIN y MAXEstructura donde se almacenan los datos en una base de datos relacional, organizada en filas y columnas. Cada tabla representa una entidad (por ejemplo, «usuarios» o «pedidos»).
Ver en la lección: Creando tablas: CREATE TABLEClase de valor que puede almacenar una columna: numérico (INTEGER, REAL), de texto (TEXT, VARCHAR), fecha, booleano, etc. Determina cómo se guardan y validan los datos.
Ver en la lección: Creando tablas: CREATE TABLEConjunto de operaciones que se ejecutan como una unidad indivisible: o se confirman todas (COMMIT) o no se aplica ninguna (ROLLBACK). Garantiza la coherencia de los datos.
Ver en la lección: Transacciones: BEGIN, COMMIT y ROLLBACKSentencia que borra todas las filas de una tabla de forma rápida, manteniendo su estructura. A diferencia de DELETE, no evalúa condiciones fila a fila.
Ver en la lección: Eliminando tablas: DROP TABLENombre formal, procedente del modelo relacional, de una fila de una tabla: una colección ordenada de valores, uno por cada columna.
Operador de conjuntos que combina los resultados de dos consultas en uno solo, eliminando las filas duplicadas. Ambas consultas deben devolver columnas compatibles.
Ver en la lección: Combinando resultados: UNION, INTERSECT y EXCEPTVariante de UNION que combina los resultados de dos consultas conservando los duplicados. Es más rápida porque no realiza la eliminación de repetidos.
Ver en la lección: Combinando resultados: UNION, INTERSECT y EXCEPTRestricción que garantiza que los valores de una columna (o combinación de columnas) no se repitan entre las filas de la tabla.
Ver en la lección: Creando tablas: CREATE TABLESentencia que modifica los valores de filas ya existentes. Se combina con WHERE para acotar qué filas se actualizan; sin él, afecta a toda la tabla.
Ver en la lección: Modificando datos: UPDATEConsulta almacenada con nombre que se comporta como una tabla virtual: no guarda datos propios, sino que ejecuta su SELECT cada vez que se consulta. Se crea con CREATE VIEW.
Ver en la lección: Vistas: CREATE VIEWCláusula que filtra las filas de una consulta, conservando solo aquellas que cumplen una condición determinada.
Ver en la lección: Filtrando datos: WHERE y operadoresPalabra clave que introduce una o varias CTE (expresiones de tabla comunes) antes de la consulta principal que las utiliza.
Ver en la lección: Expresiones de tabla comunes: CTEs