Vistas en SQL, cómo crear una view o tabla virtual

Una vista de SQL, es una tabla virtual basada en el conjunto de resultados de una instrucción SQL.

Las vistas contienen filas y columnas, como una tabla real. Los campos de una vista son campos de una o más tablas reales de la base de datos.

Puede agregar instrucciones y funciones SQL a una vista y presentar los datos como si provinieran de una sola tabla.

Las vistas se crean con la sentencia CREATE VIEW.


Sintaxis de CREATE VIEW

CREATE VIEW nombre_nueva_vista AS
    SELECT columna1, columna2,...
    FROM nombre_tabla_existente
    WHERE condicion;

Importante: ¡Una vista siempre muestra datos actualizados! El motor de la base de datos recrea la vista cada vez que un usuario la consulta.


Ejemplos de CREATE VIEW en SQL

CREATE VIEW [Clientes Mexico] AS
    SELECT Nombre_Cliente, Nombre_Contacto
    FROM Clientes
    WHERE Pais = 'Mexico';

Podemos consultar la nueva vista así:

SELECT *
FROM [Clientes Mexico];

Esta sentencia crea una vista que selecciona todos los productos de la tabla «Productos» con un precio superior al precio medio:

CREATE VIEW [Productos Precio superior media] AS
    SELECT Nombre_Producto, Precio
    FROM Productos
    WHERE Precio > (SELECT AVG(Precio) FROM [Clientes Mexico]);

Ejecutamos la siguiente sentencia para consultar la vista:

SELECT *
FROM [Productos Precio superior media];

Actualizar una Vista en SQL

Una vista se puede actualizar con la sentencia CREATE OR REPLACE VIEW.

Sintaxis de CREATE OR REPLACE VIEW en SQL

CREATE OR REPLACE VIEW nombre_vista AS
    SELECT columna1, columna2,...
    FROM nombre_tabla
    WHERE condicion;

En el siguiente ejemplo, sentencia SQL agrega la columna «Ciudad» a la vista «Clientes de Mexico»:

CREATE OR REPLACE VIEW [Clientes Mexico] AS
    SELECT Nombre_Cliente, Nombre_Contacto, Ciudad
    FROM Clientes
    WHERE Pais = 'Mexico';

Borrar una Vista en SQL

Las vistas se eliminan con la siguiente sentencia SQL, DROP VIEW.

DROP VIEW [Nombre Vista]