My sql

Solo disponible en BuenasTareas
  • Páginas : 19 (4531 palabras )
  • Descarga(s) : 0
  • Publicado : 10 de junio de 2011
Leer documento completo
Vista previa del texto
1. Creación de vistas en MYSQL
Creación o modificación de vistas con CREATE VIEW o ALTER VIEW Eliminación de vistas con DROP VIEW Obtención de información de definición de una vista (metadatos) con SHOW CREATE VIEW

Creación
ALTER VIEW ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW nombre_vista [(columnas)] AS sentencia_select [WITH [CASCADED | LOCAL] CHECK OPTION] Esta sentenciamodifica la definición 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 algún privilegio en cada columna seleccionada por la sentencia SELECT.

CREATE VIEW CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW nombre_vista [(columnas)] AS sentencia_select [WITH [CASCADED | LOCAL]CHECK OPTION] Esta sentencia crea una vista nueva o reemplaza una existente si se incluye la cláusula OR REPLACE. La sentencia_select es una sentencia SELECT que proporciona la definición de la vista. Puede estar dirigida a tablas de la base o a otras vistas. Se requiere que posea el permiso CREATE VIEW para la vista, y algún privilegio en cada columna seleccionada por la sentencia SELECT. Paracolumnas incluidas en otra parte de la sentencia SELECT debe poseer el privilegio SELECT. Si está presente la cláusula OR REPLACE, también deberá tenerse el privilegio DELETE para la vista. Toda vista pertenece a una base de datos. Por defecto, las vistas se crean en la base de datos actual. Pera crear una vista en una base de datos específica, indíquela con base_de_datos.nombre_vista al momento decrearla.

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. Al igual que las tablas, las vistas no pueden tener nombres de columnas duplicados. Por defecto, los nombres de las columnas devueltos por la sentencia SELECT se usanpara las columnas de la vista . Para dar explícitamente un nombre a las columnas de la vista utilice la clásula columnas para indicar una lista de nombres separados con comas. La cantidad de nombres indicados en columnas debe ser igual a la cantidad de columnas devueltas por la sentencia SELECT. Las columnas devueltas por la sentencia SELECT pueden ser simples referencias a columnas de la tabla,pero tambien pueden ser expresiones conteniendo funciones, constantes, operadores, etc. Los nombres de tablas o vistas sin calificar en la sentencia SELECT se interpretan como pertenecientes a la base de datos actual. Una vista puede hacer referencia a tablas o vistas en otras bases de datos precediendo el nombre de la tabla o vista con el nombre de la base de datos apropiada. Las vistas puedencrearse a partir de varios tipos de sentencias SELECT. Pueden hacer referencia a tablas o a otras vistas. Pueden usar combinaciones, UNION, y subconsultas. El SELECT inclusive no necesita hacer referencia a otras tablas. En el siguiente ejemplo se define una vista que selecciona dos columnas de otra tabla, así como una expresión calculada a partir de ellas: mysql> CREATE TABLE t (qty INT, priceINT); 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 definición de una vista está sujeta a las siguientes limitaciones: La sentencia SELECT no puede contener una subconsulta en su cláusula FROM. Lasentencia SELECT no puede hacer referencia a variables del sistema o del usuario.

La sentencia SELECT no puede hacer referencia a parámetros de sentencia preparados. Dentro de una rutina almacenada, la definición no puede hacer referencia a parámetros de la rutina o a variables locales. Cualquier tabla o vista referenciada por la definición debe existir. Sin embargo, es posible que después de...
tracking img