Las vistas en SQL son tablas virtuales creadas a partir del resultado de una consulta. Aunque no almacenan datos físicamente, se comportan como tablas en consultas y son herramientas poderosas por varias razones:
- Seguridad de datos: Se pueden usar vistas para restringir el acceso a datos sensibles. Por ejemplo, se puede crear una vista que solo muestre los campos necesarios para un usuario específico y oculte otros campos que contengan datos sensibles.
- Simplicidad: Las vistas también se pueden utilizar para simplificar consultas complejas. Si se tiene una consulta compleja que se usa frecuentemente, se puede crear una vista de esa consulta y luego referenciar la vista en lugar de tener que escribir toda la consulta cada vez.
- Consistencia: Las vistas proporcionan una representación consistente de los datos, incluso si los datos subyacentes cambian. Por lo tanto, se podría cambiar la estructura de la base de datos sin afectar a las aplicaciones que utilizan vistas.
Creación de vistas
La sintaxis para crear una vista en SQL es la siguiente:
CREATE VIEW vista_nombre AS
SELECT column1, column2,...
FROM table_name
WHERE [condition];
Por ejemplo, supóngase que se tiene una tabla Empleados
con los campos id
, nombre
, cargo
y salario
. Pero se quiere que cierto grupo de usuarios solo pueda ver los nombres y los cargos de los empleados, no sus salarios ni identificadores. Se podría crear una vista para este propósito:
CREATE VIEW Vista_Empleados AS
SELECT nombre, cargo
FROM Empleados;
Una vez creada la vista, los usuarios pueden consultarla de la misma manera que consultarían cualquier otra tabla:
SELECT * FROM Vista_Empleados;
Modificación de vistas
Si se necesita cambiar la definición de una vista, se puede utilizar la declaración ALTER VIEW
. La sintaxis es la siguiente:
ALTER VIEW vista_nombre AS
SELECT column1, column2,...
FROM table_name
WHERE [condition];
Por ejemplo, si se decide que los usuarios también deberían poder ver el id
de los empleados, se podría modificar Vista_Empleados
de la siguiente manera:
ALTER VIEW Vista_Empleados AS
SELECT id, nombre, cargo
FROM Empleados;
Eliminación de vistas
Puede eliminarse una vista con la declaración DROP VIEW
. La sintaxis es la siguiente:
DROP VIEW vista_nombre;
Entonces, para eliminar Vista_Empleados
, se usaría:
DROP VIEW Vista_Empleados;
Vistas con JOINs
Las vistas también pueden incluir JOINs entre varias tablas o vistas. Por ejemplo, si se tiene una segunda tabla Departamentos
que incluye un id
y un nombre_departamento
, se podría crear una vista que muestre el nombre, el cargo y el nombre del departamento de cada empleado:
CREATE VIEW Vista_Empleados_Departamentos AS
SELECT E.nombre, E.cargo, D.nombre_departamento
FROM Empleados E
INNER JOIN Departamentos D ON E.id = D.id;
Notas importantes
- Las vistas son especialmente útiles en escenarios como informes complejos o cuando se necesita acceso restringido a datos específicos.
- El rendimiento puede verse afectado si las vistas se basan en consultas complejas o se acceden con frecuencia. Es importante equilibrar la comodidad de las vistas con su impacto en el rendimiento de la base de datos.
- Vistas materializadas: En ciertos casos, las vistas materializadas, que almacenan datos físicamente, pueden ser una alternativa efectiva. Estas vistas ofrecen un mejor rendimiento en situaciones donde las consultas subyacentes son muy costosas y los datos no cambian con frecuencia.
Conclusión
Las vistas en SQL son herramientas versátiles que ofrecen seguridad, simplificación y consistencia en el manejo de datos. Sin embargo, es crucial usarlas estratégicamente y estar consciente de su impacto en el rendimiento. La comprensión adecuada de cuándo y cómo utilizar vistas y vistas materializadas es esencial para cualquier administrador de bases de datos.

Alan Sastre
Ingeniero de Software y formador, CEO en CertiDevs
Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, SQL es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.
Más tutoriales de SQL
Explora más contenido relacionado con SQL y continúa aprendiendo con nuestros tutoriales gratuitos.
Aprendizajes de esta lección
- Comprender qué es una vista en SQL y cómo se diferencia de una tabla física.
- Aprender a crear vistas utilizando la sintaxis
CREATE VIEW
y cómo definir la consulta subyacente para la vista. - Conocer cómo modificar una vista existente con la declaración
ALTER VIEW
. - Aprender a eliminar vistas con la declaración
DROP VIEW
. - Reconocer cómo se pueden utilizar JOINs en la definición de vistas para combinar datos de varias tablas o vistas.