Creación y consulta de vistas
Las vistas son consultas guardadas que puede crear en las bases de datos. Una sola vista puede hacer referencia a una o varias tablas. Y, al igual que una tabla, una vista consta de filas y columnas de datos. Puede usar vistas como origen para las consultas de la misma manera que las tablas. Sin embargo, las vistas no almacenan datos de forma persistente; La definición de la vista se desempaqueta en tiempo de ejecución y se consultan los objetos de origen.
La similitud aparente entre una tabla y una vista proporciona una ventaja importante. Las aplicaciones se pueden escribir para usar vistas en lugar de las tablas subyacentes, lo que protege a la aplicación de realizar cambios en las tablas. Esto le proporciona una capa adicional de seguridad para los datos.
Siempre que la vista continúe presentando la misma estructura a la aplicación que realiza la llamada, la aplicación también recibirá resultados coherentes. De este modo, las vistas se pueden considerar una interfaz de programación de aplicaciones (API) en una base de datos con fines de recuperación de datos.
Nota:
Los desarrolladores o administradores de bases de datos deben crear vistas con el permiso adecuado en la base de datos.
Crea una vista
Para crear una vista, use la instrucción CREATE VIEW para asignar un nombre y almacenar una sola instrucción SELECT. Crearía una vista con la sintaxis siguiente:
CREATE VIEW <schema_name.view_name> [<column_alias_list>]
[WITH <view_options>]
AS select_statement;
Nota:
La cláusula ORDER BY no se permite en una definición de vista a menos que la vista use un elemento TOP, OFFSET/FETCH o FOR XML.
Por ejemplo, para crear una vista denominada Sales.CustOrders basada en una instrucción SELECT personalizada que abarque varias tablas, podría escribir la consulta siguiente:
CREATE VIEW Sales.CustOrders
AS
SELECT
O.custid,
DATEADD(month, DATEDIFF(month, 0, O.orderdate), 0) AS ordermonth,
SUM(OD.qty) AS qty
FROM Sales.Orders AS O
JOIN Sales.OrderDetails AS OD
ON OD.orderid = O.orderid
GROUP BY custid, DATEADD(month, DATEDIFF(month, 0, O.orderdate), 0);
Observe que la mayoría del código del ejemplo consta de la instrucción SELECT. Las instrucciones SELECT dentro de las definiciones de vista pueden ser tan complejas o sencillas como quiere que sean.
Consulta de una vista
Para consultar una vista y recuperar los resultados de ella, refiérase a ella en la cláusula FROM de una instrucción SELECT, tal como lo haría con una tabla. Por ejemplo, para devolver el identificador de cliente, el mes del pedido y la cantidad de elementos de cada pedido en la vista Sales.CustOrders , puede ejecutar la consulta siguiente:
SELECT custid, ordermonth, qty
FROM Sales.CustOrders;