jueves, 14 de julio de 2011

como hacer vistas en SQL

Vistas
En el modelo de datos relacional la forma de guardar la información no es la mejor para ver los datos
Una vista es una consulta, que refleja el contenido de una o más 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 información que hay en una tabla, pero no a toda la tabla.
  • Comodidad, como hemos dicho el modelo relacional no es el más comodo 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 física 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 serán visibles desde la vista.



Creación de vistas.
Para crear una vista debemos utilizar la sentencia CREATE VIEW, debiendo proporcionar un nombre a la vista y una sentencia SQL SELECT válida.


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 código.

CREATE VIEW vAlquileres
AS(
SELECT nombre, 
       apellidos, 
       matricula
FROM tAlquileres, 
     tClientes 
WHERE ( tAlquileres.codigo_cliente = tClientes.codigo )
) 


Si queremos, modificar la definición de nuestra vista podemos utilizar la sentencia ALTER VIEW, de forma muy parecida a como lo haciamos con las tablas. En este caso queremos añadir 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 través de la sentencia DROP VIEW. Para eliminar la vista que hemos creado anteriormente se uitlizaría:

DROP VIEW vAlquileres;


Una vista se consulta como si fuese una tabla

No hay comentarios:

Publicar un comentario