Anda di halaman 1dari 12

UNIDAD 5

DEFINICIN Y OBJETIVO DE LAS VISTAS. INSTRUCCIONES PARA LA ADMINISTRACIN DE VISTAS.

INSTRUCCIONES PARA LA ADMINISTRACION DE VISTAS Creacin o modificacin de vistas con CREATE VIEW o ALTER VIEW. Eliminacin de vistas con DROP VIEW.

Obtencin de informacin de definicin de una vista (metadatos) con SHOW CREATE VIEW

Sintaxis de CREATE VIEW

* Toda vista pertenece a una base de datos. Por defecto, las vistas se crean en la base de datos actual. Para crear una vista en una base de datos especfica:
base_de_datos.nombre_vista al momento de crearla. mysql> CREATE VIEW test.v AS SELECT * FROM t; * Las tablas y las vistas comparten el mismo espacio de nombres en la base de datos, por eso, una base de datos no puede contener una tabla y una vista con el mismo nombre.

*las vistas no pueden tener nombres de columnas duplicados * Para dar explcitamente un nombre a las columnas de la vista se utiliza la clusula columnas para indicar una lista de nombres separados con comas. Las columnas devueltas por la sentencia SELECT pueden ser simples referencias a columnas de la tabla, pero tambin pueden ser expresiones conteniendo funciones, constantes, operadores, etc. Pueden usar combinaciones, UNION, y subconsultas.
CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW nombre_vista [(columnas)] AS sentencia_select [WITH [CASCADED | LOCAL] CHECK OPTION]

En el siguiente ejemplo se define una vista que selecciona dos columnas de otra tabla, as como una expresin calculada a partir de ellas:

mysql> CREATE TABLE t (qty INT, price INT);


mysql> INSERT INTO t VALUES(3, 50); mysql> CREATE VIEW v AS SELECT qty, price, qty*price AS value FROM t; mysql> SELECT * FROM v; + +------+------- +-------+

| qty | price | value |


+------+-------+--------+ |3 | 50 | 150 |

+------+-------+-------+

La definicin de una vista est sujeta a las siguientes limitaciones:


La sentencia SELECT no puede contener una subconsulta en su clusula FROM. La sentencia SELECT no puede hacer referencia a variables del sistema o del usuario. La sentencia SELECT no puede hacer referencia a parmetros de sentencia preparados. Dentro de una rutina almacenada, la definicin no puede hacer referencia a parmetros de la rutina o a variables locales. Las tablas mencionadas en la definicin de la vista deben existir siempre. No se puede asociar un disparador con una vista.

Sintaxis de ALTER VIEW


ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW nombre_vista [(columnas)] AS sentencia_select [WITH [CASCADED | LOCAL] CHECK OPTION]

Esta sentencia modifica la definicin de una vista existente. La sintaxis es semejante a la empleada en CREATE VIEW. Se requiere que posea los permisos CREATE VIEW y DELETE para la vista, y algn privilegio en cada columna seleccionada por la sentencia SELECT. Esta sentencia se introdujo en MySQL 5.0.1.

DROP VIEW [IF EXISTS] nombre_vista [, nombre_vista] ... [RESTRICT | CASCADE]

DROP VIEW elimina una o ms vistas de la base de datos. Se debe poseer el privilegio DROP en cada vista a eliminar. La clusula IF EXISTS se emplea para evitar que ocurra un error por intentar eliminar una vista inexistente. Cuando se utiliza esta clusula, se genera una NOTE por cada vista inexistente.

SHOW CREATE VIEW nombre_vista

mysql> SHOW CREATE VIEW v; +--------+-----------------------------------------------------------------------+ | Table | Create Table |

+-------+-----------------------------------------------------------------------+ | v | CREATE VIEW `test`.`v` AS select 1 AS `a`,2 AS `b` |

+-------+-----------------------------------------------------------------------+

Anda mungkin juga menyukai