La sentencia SQL CREATE VIEW es una de las herramientas más potentes y a la vez menos aprovechadas. Las vistas permiten simplificar consultas complejas, proteger datos sensibles y mejorar el rendimiento en bases de datos grandes.
En este artículo aprenderás qué es una vista en SQL, cómo usar en sql CREATE VIEW, y verás ejemplos prácticos para entender su utilidad tanto en SQL Server como en MySQL, PostgreSQL y Oracle.
¿Qué es una vista en SQL?
Una vista en SQL (VIEW) es una consulta almacenada que se comporta como una tabla virtual.
No guarda datos físicamente, sino que muestra resultados dinámicos basados en una o varias tablas reales.

En otras palabras, una vista es como una “ventana” hacia los datos: ves la información que necesitas sin acceder directamente a las tablas base.
Por ejemplo, si una base de datos tiene muchas tablas relacionadas (clientes, pedidos, productos), puedes crear una vista en sql CREATE VIEW que combine todo en una sola consulta fácil de usar.
¿Para qué sirve una vista en SQL?
Las vistas se utilizan en casi todos los sistemas de bases de datos por razones muy prácticas. Estas son sus principales funciones:
- Simplificar consultas complejas:
Puedes crear una vista que ya tenga losJOIN,WHEREyGROUP BYdefinidos. Luego, solo consultas la vista sin repetir la lógica cada vez. - Mejorar la seguridad:
Permiten ocultar columnas sensibles (como sueldos, contraseñas o datos personales) mostrando solo lo necesario. - Estandarizar consultas:
Si varios usuarios o aplicaciones necesitan los mismos datos, una vista garantiza consistencia en la información consultada. - Optimizar mantenimiento:
Si cambias la estructura de las tablas, solo debes modificar la vista, no todas las consultas del sistema. - Acelerar reportes y análisis:
Con una vista predefinida, los reportes pueden ejecutarse más rápido al reutilizar consultas optimizadas.
Sintaxis general de SQL CREATE VIEW
La sintaxis básica en sql CREATE VIEW es muy sencilla:
Ejemplo básico de CREATE VIEW en SQL
CREATE VIEW nombre_vista AS
SELECT columnas
FROM tabla
WHERE condición;
🔹 nombre_vista → Es el nombre que le asignas a la vista.
🔹 SELECT → Define qué datos mostrará la vista.
🔹 AS → Indica que la vista se basa en la consulta que sigue.
Ejemplo básico de SQL CREATE VIEW
Supongamos que tienes una tabla de empleados llamada Empleados con las siguientes columnas:
| ID | Nombre | Cargo | Salario | Departamento |
|---|---|---|---|---|
| 1 | Ana Pérez | Gerente | 5000 | Ventas |
| 2 | Luis Gómez | Analista | 3500 | Finanzas |
| 3 | María López | Asistente | 2500 | Recursos Humanos |
Y deseas crear una vista que muestre solo el nombre, cargo y departamento de los empleados.
Ejemplo de CREATE VIEW en SQL Server
CREATE VIEW vista_empleados AS
SELECT Nombre, Cargo, Departamento
FROM Empleados;
Ahora puedes usar la vista como si fuera una tabla:
SELECT * FROM vista_empleados;
El resultado será:
| Nombre | Cargo | Departamento |
|---|---|---|
| Ana Pérez | Gerente | Ventas |
| Luis Gómez | Analista | Finanzas |
| María López | Asistente | Recursos Humanos |
Ejemplo de vista con condiciones
También puedes aplicar filtros directamente en la vista.
Por ejemplo, una vista que solo muestre empleados del departamento de Ventas:
Ejemplo de CREATE VIEW para filtrar empleados del departamento de Ventas
CREATE VIEW vista_ventas AS
SELECT Nombre, Cargo, Salario
FROM Empleados
WHERE Departamento = 'Ventas';
-- Cada vez que consultes la vista:
SELECT * FROM vista_ventas;
El motor SQL mostrará solo los empleados de Ventas, aunque se agreguen nuevos registros a la tabla original.
Vistas con múltiples tablas (JOIN)
Las vistas también pueden combinar datos de varias tablas mediante JOINs.
Ejemplo práctico en un sistema de facturación:
Ejemplo de vista para facturas en SQL
CREATE VIEW vista_facturas AS
SELECT
F.NumeroFactura,
C.Nombre AS Cliente,
F.Fecha,
F.Total
FROM Facturas F
INNER JOIN Clientes C ON F.IdCliente = C.IdCliente;
Ahora puedes consultar fácilmente:
SELECT * FROM vista_facturas;
Y obtendrás una lista de facturas con el nombre del cliente, sin necesidad de hacer el JOIN cada vez.
Cómo actualizar una vista existente: SQL ALTER VIEW
Si necesitas modificar una vista (por ejemplo, agregar una columna o cambiar la consulta), puedes usar ALTER VIEW:
Ejemplo de ALTER VIEW en SQL
ALTER VIEW vista_empleados AS
SELECT Nombre, Cargo, Departamento, Salario
FROM Empleados;
Esto reemplaza la definición anterior, manteniendo el mismo nombre de vista.
Cómo eliminar una vista: SQL DROP VIEW
Si ya no necesitas una vista, elimínala con:
Ejemplo de DROP VIEW en SQL
DROP VIEW vista_empleados;
Esto solo borra la definición de la vista, no los datos originales.
Diferencia entre VIEW y MATERIALIZED VIEW
| Tipo de vista | Descripción | Actualización |
|---|---|---|
| VIEW | No almacena datos, muestra resultados en tiempo real. | Se actualiza automáticamente al consultar. |
| MATERIALIZED VIEW | Guarda los resultados físicamente. | Se debe actualizar manualmente o con un proceso programado. |
Las vistas materializadas son útiles cuando las consultas son muy pesadas o se usan para reportes periódicos.
Ventajas de usar CREATE VIEW en SQL
- Reutilización de consultas complejas:
Evita escribir el mismo código SQL una y otra vez. - Seguridad de datos:
Limita el acceso a columnas o registros específicos mediante permisos en la vista. - Mantenimiento simplificado:
Si cambia la estructura de una tabla, solo modificas la vista. - Rendimiento optimizado:
En sistemas como SQL Server, las vistas indexadas aceleran notablemente las consultas. - Orden y claridad:
Facilita la organización de grandes bases de datos con múltiples relaciones.
Limitaciones de las vistas en SQL
Aunque las vistas son muy útiles, tienen algunas limitaciones:
- No siempre se pueden actualizar (depende de la complejidad del SELECT).
- No es recomendable incluir ORDER BY directamente dentro de una vista.
- Las vistas con funciones agregadas o joins múltiples pueden afectar el rendimiento si se consultan con frecuencia.
Ejemplo práctico completo
Supón que tienes un sistema de ventas con las tablas Clientes, Facturas y DetalleFactura.
Quieres una vista que muestre el nombre del cliente, la fecha de factura y el total de cada venta.
Ejemplo de vista resumen de ventas en SQL
CREATE VIEW vista_resumen_ventas AS
SELECT
C.Nombre AS Cliente,
F.NumeroFactura,
F.Fecha,
SUM(D.Cantidad * D.PrecioUnitario) AS Total
FROM Facturas F
INNER JOIN Clientes C ON F.IdCliente = C.IdCliente
INNER JOIN DetalleFactura D ON F.IdFactura = D.IdFactura
GROUP BY C.Nombre, F.NumeroFactura, F.Fecha;
Ahora puedes consultar:
SELECT * FROM vista_resumen_ventas;
Obtendrás un resumen limpio de todas las ventas, listo para usar en reportes o dashboards.
Conclusión
El comando SQL CREATE VIEW es una de las herramientas más poderosas para organizar, proteger y simplificar consultas dentro de una base de datos.
Crear vistas permite estructurar información compleja, reducir errores y optimizar el trabajo de desarrolladores y analistas.
Usar correctamente una vista SQL puede marcar la diferencia entre una base de datos difícil de mantener y una arquitectura eficiente y segura.
Ya sea que trabajes con SQL Server, MySQL o PostgreSQL, dominar el uso CREATE VIEW te ayudará a diseñar sistemas más escalables, claros y profesionales.



