Вы находитесь на странице: 1из 4

9 de julio de 2012

[VISTAS EN SQL SERVER 2008] VISTAS EN SQL SERVER 2008

Una vista es una tabla virtual cuyo contenido est definido por una consulta. Al igual que una tabla real, una vista consta de un conjunto de columnas y filas de datos con un nombre. Sin embargo, a menos que est indexada, una vista no existe como conjunto de valores de datos almacenados en una base de datos. Las filas y las columnas de datos proceden de tablas a las que se hace referencia en la consulta que define la vista y se producen de forma dinmica cuando se hace referencia a la vista. Una vista acta como filtro de las tablas a las que se hace referencia en ella. La consulta que define la vista puede provenir de una o de varias tablas, o bien de otras vistas de la base de datos actual u otras bases de datos. No existe ninguna restriccin a la hora de consultar vistas y muy pocas restricciones a la hora de modificar los datos de stas. En esta ilustracin se muestra una vista basada en dos tablas.

Las principales razones por las que podemos crear vistas son: Seguridad, nos pueden interesar que los usuarios tengan acceso a una parte de la informacin que hay en 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.

IDAT | Administracin de Base de Datos II

9 de julio de 2012

[VISTAS EN SQL SERVER 2008]

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). Antes de crear una vista, considere las siguientes indicaciones: Slo puede crear vistas en la base de datos actual. Sin embargo, las tablas y las vistas a las que se haga referencia desde la nueva vista pueden encontrarse en otras bases de datos e, incluso, en otros servidores, si la vista se define mediante consultas distribuidas. Los nombres de las vistas deben seguir las reglas que se aplican a los identificadores y ser nicos para cada esquema. Adems, el nombre debe ser distinto del de las tablas incluidas en ese esquema. Es posible generar vistas dentro de otras vistas. Microsoft SQL Server permite anidar vistas. El anidamiento no debe superar los 32 niveles. Es posible que el lmite real del anidamiento de vistas sea inferior en funcin de la complejidad de la vista y de la memoria disponible. La consulta que define la vista no puede incluir la clusula ORDER BY, a menos que tambin haya una clusula TOP en la lista de seleccin de la instruccin SELECT. Debe especificar el nombre de todas las columnas de la vista en el caso de que: I. II. Alguna de las columnas de la vista derive de una expresin aritmtica, una funcin integrada o una constante. Dos o ms columnas de la vista tuviesen, en caso contrario, el mismo nombre (normalmente, debido a que la definicin de la vista incluye una combinacin y las columnas de dos o ms tablas diferentes tienen el mismo nombre). Desee darle a una columna de la vista un nombre distinto del de la columna de la que deriva. (Tambin puede cambiar el nombre de las columnas en la vista). Una columna de una vista hereda los tipos de datos de la columna de la que deriva, aunque no cambie su nombre.

III.

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.
IDAT | Administracin de Base de Datos II 2

9 de julio de 2012

[VISTAS EN SQL SERVER 2008]

CREATE VIEW <nombre_vista> AS (<sentencia_select>); Ejemplo: crear una vista para mostrar los nombres de los clientes que comiencen con "M" CREATE VIEW wvClientes AS ( SELECT nombre FROM clientes WHERE nombre like 'M%' ) Si queremos, modificar la definicin de nuestra vista podemos utilizar la sentencia ALTER VIEW, de forma muy parecida de cmo se realiza con las tablas. En este caso queremos aadir los campos fecha y fecha_Cobro a la vista. ALTER VIEW wvClientes AS ( SELECT nombre, GETDATE() as fecha, DATEADD(day, 15, GETDATE()) as FechaCobro FROM clientes WHERE nombre like 'M%' ) 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 wvClientes;

Para ejecutar una vista lo hacemos como si se tratara de una tabla.


Ejemplo: SELECT * FROM wvClientes

IDAT | Administracin de Base de Datos II

9 de julio de 2012

[VISTAS EN SQL SERVER 2008]

Ejercicios
Para realizar los ejercicios ejecutar el script que se encuentra en el archivo datos.SQL 1. Crear una vista que muestre el idPelicula, Titulo, Censura y Genero de la tabla pelculas 2. Crear una vista que muestre a todas las pelculas con el estado estreno. 3. Crear una vista que muestre a todas las pelculas con el estado Cartelera. 4. Modificar la vista del ejercicio 1 agregar a la vista el campo estado de la tabla Estados. (Relacionar dos tablas Peliculas y Estados usar INNER JOIN para la consulta) 5. Eliminar la vista del ejercicio 2. 6. Crear una vista que muestre el titulo de la pelcula, nombre de la sala, estado de la pelcula y hora de proyeccin de la tabla Proyecciones. a. 1ra Forma : Realizar una consulta con la tabla Proyecciones Seguida de Peliculas, Estados y Salas. Utilizando INNER JOIN. b. 2da Forma: Utilizar la vista del ejercicio 4 con eso evitamos hacer INNER JOIN con la tabla estados. Recordar que las vistas se ejecutan o se consulta igual que una tabla.

IDAT | Administracin de Base de Datos II

Вам также может понравиться