Sei sulla pagina 1di 3

VISTAS

Una vista es una consulta, que refleja el contenido de una o ms tablas, desde la que se puede acceder a los
datos como si fuera una tabla.

Dos son las principales razones por las que podemos crear vistas.

Seguridad, nos pueden interesar que los usuarios tengan acceso a una parte de la informacin que hay
asen una tabla, pero no a toda la tabla.
Comodidad, como hemos dicho el modelo relacional no es el ms cmodo para visualizar los datos, lo
que nos puede llevar a tener que escribir complejas sentencias SQL, tener una vista nos simplifica esta tarea.

Las vistas no tienen una copia fsica de los datos, son consultas a los datos que hay en las tablas, por lo que
si actualizamos los datos de una vista, estamos actualizando realmente la tabla, y si actualizamos la tabla
estos cambios sern visibles desde la vista.

Nota: No siempre podremos actualizar los datos de una vista, depender de la complejidad de la misma
(depender de si el conjunto de resultados tiene acceso a la clave principal de la tabla o no), y del gestor de
base de datos. No todos los gestores de bases de datos permiten actualizar vistas, ORACLE, por ejemplo, no
lo permite, mientras que SQL Server s.

Creacin de vistas.

Para crear una vista debemos utilizar la sentencia CREATE VIEW, debiendo proporcionar un
nombre a la vista y una sentencia SQL SELECT vlida.

CREATE VIEW <nombre_vista>


AS
(<sentencia_select>);

Ejemplo: Crear una vista sobre nuestra tabla alquileres, en la que se nos muestre el nombre y apellidos del
cliente en lugar de su cdigo.

CREATE VIEW vAlquileres AS (


SELECT nombre, apellidos,
matricula
FROM tAlquileres, tClientes
WHERE ( tAlquileres.codigo_cliente = tClientes.codigo ))

Si queremos, modificar la definicin de nuestra vista podemos utilizar la sentencia ALTER VIEW, de forma
muy parecida a como lo hacamos con las tablas. En este caso queremos aadir los campos fx_alquiler y
fx_devolucion a la vista.

ALTER VIEW vAlquileres AS (


SELECT nombre, apellidos,
matricula, fx_alquiler, fx_devolucion
FROM tAlquileres, tClientes
WHERE ( tAlquileres.codigo_cliente = tClientes.codigo ))
Por ltimo podemos eliminar la vista a travs de la sentencia DROP VIEW. Para eliminar la vista que hemos
creado anteriormente se utilizara:

DROP VIEW vAlquileres;

Una vista se consulta como si fuera una tabla. Ejemplo:

USE NORTHWIND GO
--CREACION DE VISTA PROVEEDORES Y SUS PEDIDOS

CREATE VIEW VIEW_SUPPLIER_PRODUCS AS


SELECT S.SUPPLIERID,S.COMPANYNAME,S.CONTACTNAME,P.PRODUCTID,P.PRODUCTNAME, P.UNITPRICE
FROM SUPPLIERS AS S INNER JOIN PRODUCTS AS P ON S.SUPPLIERID=P.SUPPLIERID GO

--CREACION DE UNA VISTA CON INSTRUCCION GROUP

CREATE VIEW VIEW_SUBTOTALES (CODIGO_ORDEN, SUB_TOTAL) AS


SELECT OD.ORDERID, SUM (CONVERT (MONEY, (OD.UNITPRICE* QUANTITY*(1-DISCOUNT)/100))*100)
FROM [ORDER DETAILS] OD GROUP BY OD.ORDERID
GO

--LLAMAR A LA CONSULTA ANTERIOR SELECT * FROM VIEW_SUBTOTALES


--VER VISTAS

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='VIEW'


--BORRAR UNA VISTA

DROP VIEW VIEW_SUBTOTALES

--ALTERAR UNA VISTA

ALTER VIEW VIEW_SUPPLIER_PRODUCS AS


Crear la siguiente base de datos llamada AGENCIA, capturar datos compartidos en los campos relacionados.

EJERCICIO

Utilizando la anterior base de datos llamada AGENCIA

Realiza las siguientes vistas.

1.-Mostrar lista de los clientes con su respectivo coche comprado

2.-Mostrar vista de los coches con la revisin realizada

3.-Mostrar vista de nombre del cliente y apellidos con la matricula del auto comprado

4.-Mostrar la vista de matricula, marca y modelo y el tipo de revisin realizada

5.-Mostrar vista de cdigo de cliente con la marca, modelo y precio del auto comprado.

Contestar:

1.- Qu es una vista?


2.- Cules son las razones para crear una vista?
3.- Qu pasa si actualizas una vista?
4.- Que gestores permiten actualizar una vista y cules no?
5.- Cmo se crea una vista?
6.- Cmo modificamos una vista?
7.- Cmo eliminamos una vista?
8.- Cmo ejecutamos una vista?

Potrebbero piacerti anche