Sei sulla pagina 1di 8

Instituto Tecnolgico de Parral

AE 4.2 Prctica vistas.

Objetivo
Practicar diversos comandos para la
manipulacin de vistas.

Alumno
ngel Ivn Portillo Daz
12410481

Fecha
29 de octubre de 2014

Descripcin
Investigar si es posible crear vistas actualizables en MySQL y cules son las
condiciones para hacerlo.
Investigar el concepto de vista materializada y si es posible crear este tipo
de vistas en MySQL.
Utilizando una copia de la base de datos sakila realizar lo siguiente:
A. Crear una vista para cada una de las siguientes consultas:
Mostrar todos los datos de la tabla de ciudades.
Mostrar los nombres de los lenguajes.
Mostrar los nombres completos de los empleados (staff), concatenando el
nombre y apellido con un alias nombre completo.
Mostrar los ttulos de las pelculas cuya duracin este entre 60 y 80.
Mostrar la clasificacin de la pelcula con costo de renta ms alto.
Mostrar el total de los pagos recaudados por las rentas en el mes de agosto
del 2005.
Mostrar el costo de renta promedio de las pelculas.
Mostrar el nombre de la pelcula de menor duracin.
Mostrar el nmero de tiendas.
Mostrar las clasificaciones de las pelculas, sin duplicados.
B. Mostrar el listado de tablas y vistas identificadas por su tipo (tabla o vista).
C. Mostrar el listado de las vistas.
D. Mostrar la sentencia de creacin de dos de las vistas del paso A.
E. Modificar la vista de la consulta mostrar el total de los pagos recaudados
por las rentas en el mes de agosto del 2005 para que comprenda tambin los
pagos de junio y julio del mismo ao (conservar el mismo nombre de vista).
F. Borrar todas las vistas creadas en el paso A.

Contenido
Resultados ..................................................................................................................................... 3
Conclusin ..................................................................................................................................... 8
Bibliografa .................................................................................................................................... 8

Resultados
Vistas actualizables
Algunas vistas son actualizables. Esto significa que se las puede emplear en
sentencias como UPDATE, DELETE, o INSERT para actualizar el contenido de la
tabla subyacente. Para que una vista sea actualizable, debe haber una relacin uno-auno entre los registros de la vista y los registros de la tabla subyacente. Hay otros
elementos que impiden que una vista sea actualizable. Ms especficamente, una vista
no ser actualizable si contiene:
Funciones agregadas (SUM(), MIN(), MAX(), COUNT(), etctera)
DISTINCT
GROUP BY
HAVING
UNION o UNION ALL
Una subconsulta en la lista de columnas del SELECT
Join
Una vista no actualizable en la clusula FROM
Una subconsulta en la clusula WHERE que hace referencia a una tabla en la
clusula FROM.
Hace referencia solamente a valores literales (en tal caso no hay una) tabla
subyacente para actualizar.
ALGORITHM = TEMPTABLE (utilizar una tabla temporal siempre resulta en una vista
no actualizable)
Con respecto a la posibilidad de agregar registros mediante sentencias INSERT, es
necesario que las columnas de la vista actualizable tambin cumplan los siguientes
requisitos adicionales:
No debe haber nombres duplicados entre las columnas de la vista.
La vista debe contemplar todas las columnas de la tabla en la base de datos que no
tengan indicado un valor por defecto.
Las columnas de la vista deben ser referencias a columnas simples y no columnas
derivadas. Una columna derivada es una que deriva de una expresin.

Vista materializada
Una vista materializada almacena el resultado de la consulta en una tabla cach real,
que ser actualizada de forma peridica a partir de las tablas originales. Esto
proporciona un acceso mucho ms eficiente, a costa de un incremento en el tamao
de la base de datos y a una posible falta de sincrona, es decir, que los datos de la
vista pueden estar potencialmente desfasados con respecto a los datos reales. En
MYSQL no se puede hacer uso de este tipo de vistas.

Utilizando una copia de la base de datos sakila realizar lo siguiente:


A. Crear una vista para cada una de las siguientes consultas:
Mostrar todos los datos de la tabla de ciudades.
Create view ciudades as select * from city;

Mostrar los nombres de los lenguajes.


Create view nombreLenguaje as select name from language;

Mostrar los nombres completos de los empleados (staff), concatenando el nombre y


apellido con un alias nombre completo.
Create view NombreStaff as select concat(first_name,,last_name) as nombre
completo from staff;

Mostrar los ttulos de las pelculas cuya duracin este entre 60 y 80.
Create view pelculas as select title from film where length between 60 and 80;

Mostrar la clasificacin de la pelcula con costo de renta ms alto.


Create view clasificacin as select rating,max(rental_rate) from film;

Mostrar el total de los pagos recaudados por las rentas en el mes de agosto del
2005.
Create view totalPagos as select sum(amount) from payment where
YEAR(Payment_date)=2005 and MONTH(Payment_date)=8;

Mostrar el costo de renta promedio de las pelculas.


Create view costoRenta as select avg(rental_rate) from film;

Mostrar el nombre de la pelcula de menor duracin.

Create view nombrePelicula as select title from film order by length limit 1;

Mostrar el nmero de tiendas.


Create view numeroTiendas as select count(*) from store;

Mostrar las clasificaciones de las pelculas, sin duplicados.


Create view clasificaciones as select distinct rating from film;

B. Mostrar el listado de tablas y vistas identificadas por su tipo (tabla o vista).


Show full tables;

C. Mostrar el listado de las vistas.


Show full tables where table_type=view;

D. Mostrar la sentencia de creacin de dos de las vistas del paso A.


Show create view ciudades;

Show create view nombreLenguajes;

E. Modificar la vista de la consulta mostrar el total de los pagos recaudados


por las rentas en el mes de agosto del 2005 para que comprenda tambin los
pagos de junio y julio del mismo ao (conservar el mismo nombre de vista).
Create or replace view totalPagos as select sum(amount) from payment where
YEAR(Payment_date)=2005 and MONTH(Payment_date) between 6 and 8;

F. Borrar todas las vistas creadas en el paso A.


Drop view ciudades;

Drop view nombreLenguaje;

Drop view NombreStaff;

Drop view pelculas;

Drop view clasificacin;

Drop view totalPagos;

Drop view costoRenta;

Drop view nombrePelicula;

Drop view numeroTiendas;

Drop view clasificaciones;

Conclusin
Con esta prctica aprendemos ms sobre cmo mantener seguros los datos de las
bases de datos creando usuarios, otorgando y quitando permisos a los usuarios sobre
ciertas tablas dentro de la base de datos. Ningn contratiempo ocurri a la hora de
realizar la prctica. Fue fcil la actividad ya que no eran muchas cosas ni complicadas.
El tiempo estimado de realizacin fue de 40 minutos.

Bibliografa
1. Mendoza, Raul. Vistas y Funciones en Mysq. [En lnea] [Citado el: 29 de Octubre de 2014.]
http://vistasyfunciones.blogspot.mx/2012/07/vistas-y-funciones-en-mysql.html.
2. MYSQL. A.6 MySQL 5.6 FAQ: Views. [En lnea] [Citado el: 29 de Octubre de 2014.]
http://dev.mysql.com/doc/refman/5.6/en/faqs-views.html.
3. WIKIPEDIA. Vista materializada. [En lnea] [Citado el: 29 de Octubre de 2014.]
http://es.wikipedia.org/wiki/Vista_materializada.

Potrebbero piacerti anche