ALL, ANY)Permite comparar un valor individual (nombre de atributo) con un conjunto de valores (consulta anidada).
Ejemplo: empleados con salario mayor que el salario medio en todos los departamentos.
SELECT * FROM Empleados
WHERE salario >
ALL (SELECT AVG(salario)
FROM Empleados
GROUP BY departamentoId);

-- Departamento con más empleados
-- Opción 1
SELECT departamentoId FROM Empleados
GROUP BY departamentoId HAVING COUNT(*)>= ALL
( SELECT COUNT(*)
FROM Empleados
GROUP BY departamentoId );
-- Opción 2
SELECT departamentoId FROM Empleados
GROUP BY departamentoId HAVING COUNT(*) =
( SELECT MAX(total) FROM
( SELECT COUNT(*) AS total
FROM Empleados
GROUP BY departamentoId
) NumEmpleados );
CREATE OR REPLACE VIEW [vista] AS [SELECT…]
-- Vista con las estadísticas de los Empleados por Departamento
CREATE OR REPLACE VIEW EstadísticasEmpleados AS
SELECT departamentoId,
COUNT(*) AS numEmpleados,
AVG(salario) salarioMedio,
AVG(salario * (1+comision)) salarioConComision,
SUM(salario) gastoSalarios
FROM Empleados
GROUP BY departamentoId;
-- Número de empleados que tiene el departamento con más empleados
SELECT MAX(numEmpleados)
FROM EstadísticasEmpleados;

SQL (Structured Query Language) es el lenguaje estándar para gestionar bases de datos relacionales, permitiendo crear esquemas (DDL), manipular datos (DML) y controlar acceso (DCL). Su popularidad se debe a su sintaxis intuitiva basada en el lenguaje natural, siendo accesible para analistas y programadores.
El DDL (Data Definition Language) incluye CREATE, ALTER y DROP para definir estructuras: tablas, índices, vistas y restricciones. La transformación del modelo relacional a SQL es directa, con tipos de datos específicos para cada atributo y restricciones que garantizan integridad.
El DML (Data Manipulation Language) incluye SELECT (consultas), INSERT (inserción), UPDATE (actualización) y DELETE (eliminación). La cláusula WHERE filtra datos, JOIN combina tablas, y subconsultas permiten consultas complejas anidadas. El ORDER BY y GROUP BY organizan y agrupan resultados.
Las vistas ofrecen una capa de abstracción, presentando al usuario un subconjunto lógico de datos sin exponer la estructura interna. Los índices mejoran rendimiento de búsquedas a costa de almacenamiento y tiempo de actualización. Las restricciones (PRIMARY KEY, FOREIGN KEY, CHECK, UNIQUE) garantizan integridad.
SQL es únicamente de lectura y modificación; lógica procedural requiere lenguajes de extensión específicos (PL/SQL, T-SQL, PL/pgSQL). La optimización de consultas es un art que requiere comprensión de índices, planes de ejecución y estadísticas de la base de datos. Dominar SQL es fundamental para cualquier profesional que trabaje con datos.
