Guía rápida de sql Vistas en sql
Las vistas en sql son tablas virtuales que se crean a través del conjunto de resultados de una consulta.
De la misma forma que una tabla real, una vista contiene filas y columnas formadas por los campos de una o más tablas reales de la base de datos.
Al crear vistas en sql se pueden utilizar clausuas WHERE y JOIN para presentar los datos reunidos como si de una tabla normal se tratase.
Su sintaxis es:
CREATE VIEW nombre_vista AS SELECT columnas FROM tabla WHERE condición
Al utilizar la vista, los datos siempre están actualizados a la información que contenga la tabla real, de modo que cada vez que un usuario realice la consulta, estás generará una nueva tabla virtual mostrando los datos actualizados.
Veamos algun ejemplo sobre como funcionan las vistas…
Crearemos una vista con una sola tabla donde tomaremos de la tabla producto solo la id y el nombre de aquellos que estén en existencias…
CREATE VIEW precios_productos AS SELECT IdProducto, NombreProducto FROM producto WHERE UnidadesEnExistencia>0
Naturalmente esta consulta se puede hacer sin crear una vista pero nos sirve para ver como funionan las vistas en sql.
Ahora si queremos seleccionar todos los resultados necesitamos otra consulta:
SELECT * FROM precios_productos
De este modo vemos que para poder acceder a los datos de una vista son necesarios dos pasos:
- Creación de la vista
- Extracción de los datos
Actualizar una vista
Las vistas pueden actualizarse, ya que es posible consultarlas, mientras no son eliminadas o reescritas, de la siguiente manera:
CREATE OR REPLACE VIEW nombre_vista AS SELECT columnas FROM tabla WHERE condición
Siguiendo con el ejemplo de la BBDD Neptuno vamos a proceder a mostrar todos los productos que tengan un precio menor que 20 pero usando CREATE OR REPLACE:
CREATE OR REPLACE VIEW precios_productos AS SELECT IdProducto, NombreProducto, CantidadPorUnidad FROM producto WHERE PrecioUnidad<20
Y nuevamente necesitamos una segunda consulta para ver los resultados
SELECT * FROM precios_productos
CREATE O REPLACE tiene una ventaja frente a CREATE y es que si el usuario vuelve a realizar la consulta y esta no ha sido eliminada, no ocurre un error, cosa que si ocurre con CREATE, de modo que yo prefiero usar la consulta con su REPLACE correspondiente para evitar errores inesperados.
Eliminar una vista
Utilizando DROP es muy sencillo eliminar una vista:
DROP VIEW nombre_vista
There is One Comment.