Tema SQL
CREATE VIEW
Define un objeto de catálogo cuyo contenido es el resultado de un SELECT almacenado; se consulta como tabla pero no duplica datos salvo vistas materializadas.
Descripción
Las vistas encapsulan consultas complejas, simplifican permisos (conceder SELECT sobre la vista sin exponer tablas base) y estabilizan interfaces cuando el esquema evoluciona. CREATE OR REPLACE VIEW sustituye la definición en motores que lo permiten. Las vistas actualizables tienen restricciones fuertes (una tabla base, sin DISTINCT agresivo, etc.). Las vistas materializadas almacenan snapshot y requieren política de refresco.
Estructura general
Forma habitual de la sentencia: orden de cláusulas, qué parte filtra, agrupa o proyecta columnas, y qué devuelve el motor. Cópiala como plantilla y sustituye nombres por tus tablas reales.
CREATE VIEW nombre_vista AS
SELECT ...;
Componentes
Cada componente tiene un papel concreto en la ejecución lógica de la sentencia. Léelos en orden: así entiendes qué puedes omitir, qué es obligatorio y qué expresiones son válidas en cada sitio según tu motor.
- Vista
- El texto almacenado es el SELECT; cada acceso puede expandirse en el plan como subconsulta o merge según optimizador.
Ejemplos
Ejemplo 1
CREATE VIEW v_clientes_activos AS
SELECT id, nombre FROM clientes WHERE activo = 1;
Ejemplo 2
SELECT * FROM information_schema.views LIMIT 0;
Los ejemplos son ilustrativos. En producción usa consultas parametrizadas (prepared statements), revisa índices y aplica el principio de menor privilegio en cuentas de base de datos.