Sie sind auf Seite 1von 17

Introducción

Introducción a TSQL
a SQL
Unidad 7
Unidad 10

Autor
Isabel Ponce
Unidad 10

Objetivos

• Vistas
– Ventajas
– Creación
– Modificación de vistas
– Eliminación de vistas
– Restricciones
Introducción

• A partir de esta unidad se


examinarán los componentes de
bases de datos que permiten ocultar
gran parte de la complejidad de las
operaciones SQL a los usuarios, ya
que permiten sistematizar
operaciones repetitivas y dar mayor
seguridad a los datos almacenados.
Vistas

• Las vistas son nombres asignados a


instrucciones select almacenadas en
la base de datos.

• Las vistas permiten especificar


exactamente cómo verá los datos un
usuario.

• Son una especie de consultas


almacenadas.

• El factor principal para usarlas es la


seguridad.
Vistas

• Sus ventajas son:

– Se ven exactamente igual a una tabla.


– No almacenan datos.
– Pueden incluir mas de una tabla.
– Simplifican y/o complementan los
datos.
– Proporcionan independencia del
esquema de la base de datos.
– Facilidad de uso, ya que el usuario
sólo ve lo que requiere en una sola
instrucción.
– Proporcionan seguridad. Sólo pueden
ver lo que se les permita; además se
les puede asignar permisos a las
vistas más fácil que a columnas.
Crear Vistas

• Sintaxis para crear una vista:

CREATE VIEW [OR RE]<nombreVista>


[(<columna>*)] AS <instrucciónSelect>
[WITH CHECK OPTION]

• Siempre se deben especificar


explícitamente las columnas que se
desean incluir.
• Ejemplo:
create view autores
as select * from authors;

• Permite cualquier consulta:


select * from autores;
With Check Option

• La opción with check option evita


que se puedan insertar o modificar
datos no autorizados mediante la
vista.

• Por omisión las modificaciones de


datos realizadas mediante vistas no
se verifican para saber si pertenecen
a la definición de la vista por lo que
pueden ingresarse datos aunque no
sean mostrados en la vista.

• Cuando se incluye esta opción,


insert y update deben coincidir con la
cláusula where de la vista.
With Check Option

• Ejemplo:

create view autoresCA


as select * from authors
where state = 'CA'
with check option;

• Si se intenta insertar un autor de otro


estado, genera error:

insert into autoresCA


values(1, 'nombre', 'apellido', '',
null, null, 'MI', null, 1);
Ejemplos Create View

• Ejemplos:

• CREATE VIEW titles_view AS


SELECT title, type, price, pubdate
FROM titles;

• CREATE VIEW accounts (title, advance,


amt_due) AS
SELECT title, advance, price * royalty *
ytd_sales
FROM titles
WHERE price > 5;

• CREATE VIEW SoloCA AS


SELECT au_lname, au_fname, city,
state
FROM authors
WHERE state = 'CA'
WITH CHECK OPTION;
Ver información
de una vista

• Para obtener información de las


vistas se puede usar

desc autores;

• Y para obtener más información se


puede consultar information_schema

select table_name, view_definition


from information_schema.views
where table_name = autores;
Modificación de Vistas

• Para modificar una vista se emplea:

ALTER VIEW <nombreVista>


[(<columna>*)]
AS <instrucciónSelect>
[WITH CHECK OPTION];

• La ventaja de modificarla y no
borrarla para volver a crearla es que
mantiene los permisos asignados,
aunque si se le agregaron nuevos
elementos se deben asignar los
permisos correspondientes.

alter view autores


as select au_fname, au_lname
from authors;
Eliminación de Vistas

• Para eliminar una vista se emplea:

DROP VIEW <nombreVista>

• Ejemplo:

drop view autores;


Restricciones

• La creación de vistas no se puede


combinar con otras instrucciones
SQL en un lote.

• Se puede incluir una vista en la


definición de otra vista. Se
recomienda no más de una vista
anidada.

• La cláusula que no se pueden incluir


es:

– select into

• No pueden hacer referencias a


tablas temporales.
Restricciones

• Generalmente hay alguna restricción


en el número de columnas.

• Se deben especificar los nombres


de columnas derivadas.

• No se le pueden crear índices o


disparadores (triggers).

• Al ejecutar, se deben tener permisos


select sobre los objetos a los que
hace referencia, o se podría crear
una vista que no se podría ejecutar.

• Si se crea con Select * y se le


incorporan columnas nuevas a la
tabla base, éstas no se mostrarán en
la vista. Se resuelve al crearla.
Restricciones

• Se pueden modificar datos mediante


una vista multitabla pero sólo se
actualiza una tabla a la vez.

• No se pueden modificar datos si la vista


contiene distinct, group by, o columnas
derivadas.

• Los datos de una vista no se


almacenan por separado, si se
actualizan datos desde la vista, se está
modificando la tabla base.

• Las columnas not null de la tabla base,


que no son parte de la vista, deben
tener valores por omisión para que se
pueda insertar desde la vista.

• Si se eliminan los objetos a los que


hace referencia, ésta permanece y al
usarla indica error.
Resumen Unidad 10

• Las vistas pueden crearse para


proporcionar un acceso alterno a los
datos.

• Son objetos poderosos para facilitar


información a los usuarios y deben
considerarse en el diseño de BD.

• La principal consideración para el


uso de las vistas es la seguridad.
Ejercicios

1. Crear una vista que muestre los


nombres completos de los autores y
los libros que han publicado y
consultarla
2. Crear una vista que muestre todos
los nombres de los libros y una
columna que indique el total de
ventas en dólares (price * ytd_sales)
y consultarla.
3. Crear una vista que muestre los
autores y cuánto se les debe pagar
por las ventas de sus libros a la
fecha. Consultarla.

Das könnte Ihnen auch gefallen