Material del curso de SQL de la UNACAR 2020
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

2.0 KiB

Vistas

Una vista es una tabla virtual generada a partir de la ejecución de varias consultas sobre una o más tablas. Una vista tiene la misma estructura de filas y columnas que cualquier otra tabla MySQL, se almacenan del mismo modo y no es posible que existan dos con el mismo nombre.

Sintaxis

CREATE [OR REPLACE] VIEW nombre_vista [lista_columnas]
AS consulta

Si observas la sintaxis verás varios apartados:

  • nombre_vista: Representa el nombre de la tabla virtual que tendrá la vista.
  • lista_columnas: Es el listado de columnas que creará la vista.
  • consulta: Se trata de una consulta SELECT que nos devolvuelven los datos que forman de la vista.

También podemos ver el modificador opcional OR REPLACE. Cuando se crea una vista con OR REPLACE, se creará la vista si no existe una con el mismo nombre y, si existe, se reemplazará por ésta.

Ventajas de usar una vista

La mayor ventaja de utilizar vistas se obtiene en forma de rendimiento, ya que no estaremos generando constantemente una vista si ésta ya existe. Cuanto más complejas sean las consultas que se deben ejecutar para obtener la vista, mayor será la ganancia de rendimiento. Por otro lado, también puede suponer una ventaja en términos de seguridad si no queremos que los usuarios puedan obtener datos de las tablas originales sobre las que se crea la vista.

También podemos limitar los permisos de acceso a una vista a ciertos usuarios. Una vista, en general, puede ayudarte a construir una interfaz simplificada y abstracta a una base de datos compleja.

Implementación

Sintaxis

CREATE VIEW vistaProductosBarato AS SELECT id, nombre, precio FROM productos WHERE precio < 10.00;

Como se utiliza

Cuando crees una vista, podrás ejecutar consultas sobre ella como si de una tabla más se tratase. Por ejemplo, vamos a seleccionar todos los datos de la vista vistaProductosBaratos de nuestro ejemplo:

Sintaxis

SELECT * FROM vistaProductosBarato;

Borrar una vista

Sintaxis

DROP VIEW vistaProductosBarato;