Vistas MySQL
Declaración CREAR VISTA de MySQL
En SQL, una vista es una tabla virtual basada en el conjunto de resultados de una instrucción SQL.
Una vista contiene 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.
Se crea una vista con la CREATE VIEW
sentencia.
CREAR VISTA Sintaxis
CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;
Nota: ¡Una vista siempre muestra datos actualizados! El motor de la base de datos recrea la vista cada vez que un usuario la consulta.
MySQL CREAR VISTA Ejemplos
El siguiente SQL crea una vista que muestra todos los clientes de Brasil:
Ejemplo
CREATE VIEW [Brazil Customers] AS
SELECT CustomerName, ContactName
FROM Customers
WHERE Country = 'Brazil';
Podemos consultar la vista anterior de la siguiente manera:
Ejemplo
SELECT * FROM [Brazil Customers];
El siguiente SQL crea una vista que selecciona todos los productos de la tabla "Productos" con un precio superior al precio medio:
Ejemplo
CREATE VIEW [Products Above Average Price] AS
SELECT ProductName, Price
FROM Products
WHERE Price > (SELECT AVG(Price) FROM Products);
Podemos consultar la vista anterior de la siguiente manera:
Ejemplo
SELECT * FROM [Products Above Average Price];
MySQL actualizando una vista
Una vista se puede actualizar con la CREATE OR REPLACE VIEW
declaración.
CREAR O REEMPLAZAR VISTA Sintaxis
CREATE OR REPLACE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;
El siguiente SQL agrega la columna "Ciudad" a la vista "Clientes de Brasil":
Ejemplo
CREATE OR REPLACE VIEW [Brazil Customers] AS
SELECT CustomerName, ContactName, City
FROM Customers
WHERE Country = 'Brazil';
MySQL soltando una vista
Una vista se elimina con la DROP VIEW
sentencia.
DROP VIEW Sintaxis
DROP VIEW view_name;
El siguiente SQL descarta la vista "Clientes de Brasil":
Ejemplo
DROP VIEW [Brazil Customers];