Uso de vistas

Avanzado
SQL
SQL
Actualizado: 27/08/2024

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:

  1. 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.
  2. 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.
  3. 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 - Autor del tutorial

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

  1. Comprender qué es una vista en SQL y cómo se diferencia de una tabla física.
  2. Aprender a crear vistas utilizando la sintaxis CREATE VIEW y cómo definir la consulta subyacente para la vista.
  3. Conocer cómo modificar una vista existente con la declaración ALTER VIEW.
  4. Aprender a eliminar vistas con la declaración DROP VIEW.
  5. Reconocer cómo se pueden utilizar JOINs en la definición de vistas para combinar datos de varias tablas o vistas.