SlideShare una empresa de Scribd logo
1 de 13
Vistas TBD – Unidad 05 Noviembre 2009
Definición 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. Una vista no existe como conjunto de valores de datos almacenados en una base de datos (a menos que sea una vista materializada). 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 dinámica cuando se hace referencia a la vista. Una vista actúa como filtro de las tablas subyacentes a las que se hace referencia en ella. Taller de Bases de Datos - Unidad 5 2
Ejemplo: Taller de Bases de Datos - Unidad 5 3
Escenarios de utilización Suelen utilizarse para centrar, simplificar y personalizar la percepción de la base de datos para cada usuario. Los datos innecesarios o sensibles pueden quedar fuera de la vista. Pueden emplearse como mecanismos de seguridad, que permiten a los usuarios obtener acceso a los datos por medio de la vista, pero no les conceden el permiso de obtener acceso directo a las tablas base subyacentes de la vista. Permiten simplificar la forma en que los usuarios trabajan con los datos. Es posible crear como vista una consulta compleja que se utilice para la elaboración de informes y que realice subconsultas, combinaciones externas y agregaciones para recuperar datos de un grupo de tablas. La vista simplifica el acceso a los datos ya que evita la necesidad de escribir o enviar la consulta subyacente cada vez que se genera el informe; en lugar de eso, se realiza una consulta en la vista. Taller de Bases de Datos - Unidad 5 4
Escenarios de utilización (2) Permiten que varios usuarios puedan ver los datos de modo distinto, aunque estén utilizando los mismos simultáneamente. Esto resulta de gran utilidad cuando usuarios que tienen distintos intereses y calificaciones trabajan con la misma base de datos. Por ejemplo, es posible crear una vista que recupere únicamente los datos para los clientes con los que trabaja el responsable comercial de una cuenta. La vista puede determinar qué datos deben recuperarse en función del Id. de inicio de sesión del responsable comercial que utilice la vista. Entre otros... Taller de Bases de Datos - Unidad 5 5
Instrucciones para el manejo de vistas  en MySQL Creación o modificación: CREATE VIEW o ALTER VIEW Eliminación: DROP VIEW Obtención de información de definición de una vista (metadatos): SHOW CREATE VIEW Taller de Bases de Datos - Unidad 5 6
Sintaxis de CREATE VIEW CREATE [ORREPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW nombre_vista [(columnas)] 	AS sentencia_select [WITH [CASCADED | LOCAL] CHECKOPTION] Esta sentencia crea una vista nueva o reemplaza una existente si se incluye la cláusula ORREPLACE. 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. Si está presente la cláusula ORREPLACE, 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. Utilizebase_de_datos.nombre_vista pera crear una vista en una base de datos específica al momento de crearla: mysql> CREATE VIEW test.v AS SELECT * FROM t;  Taller de Bases de Datos - Unidad 5 7
Sintaxis de CREATE VIEW (2) 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. 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 pueden crearse 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> CREATETABLE t (qtyINT, priceINT); mysql> INSERTINTO t VALUES(3, 50); mysql> CREATE VIEW v AS SELECTqty, price, qty*price AS valueFROM t; mysql> SELECT * FROM v; +------+-------+-------+ | qty  | price | value | +------+-------+-------+ | 3    |    50 |   150 | +------+-------+-------+  Taller de Bases de Datos - Unidad 5 8
Sintaxis de CREATE VIEW (3) Cualquier tabla o vista referenciada por la definición debe existir. Sin embargo, es posible que después de crear una vista, se elimine alguna tabla o vista a la que se hace referencia. Para comprobar la definición de una vista en busca de problemas de este tipo, utilice la sentencia CHECKTABLE.  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 relación uno-a-uno entre los registros de la vista y los registros de la tabla subyacente. Hay otros elementos que impiden que una vista sea actualizable. Más específicamente, una vista no será actualizable si contiene:  Funciones agregadas (SUM(), MIN(), MAX(), COUNT(), etc.). DISTINCT. GROUPBY. HAVING. UNION o UNION ALL. Una subconsulta en la lista de columnas del SELECT. Join. Una vista no actualizable en la cláusula FROM. Entre otras… Taller de Bases de Datos - Unidad 5 9
Sintaxis de ALTER VIEW ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW nombre_vista [(columnas)] AS sentencia_select [WITH [CASCADED | LOCAL] CHECKOPTION] Esta sentencia modifica 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.  Taller de Bases de Datos - Unidad 5 10
Sintaxis de DROP VIEW DROP VIEW [IFEXISTS] nombre_vista [, nombre_vista] ... [RESTRICT | CASCADE] Elimina una o más vistas de la base de datos. Se debe poseer el privilegio DROP en cada vista a eliminar. La cláusula IFEXISTS se emplea para evitar que ocurra un error por intentar eliminar una vista inexistente. RESTRICT y CASCADEson ignoradas.  Taller de Bases de Datos - Unidad 5 11
Sintaxis de SHOW CREATE VIEW SHOW CREATE VIEW nombre_vista Muestra la sentencia CREATE VIEW que se utilizó para crear la vista.  mysql> SHOW CREATE VIEW v; +-------+----------------------------------------------------+ | Table | CreateTable                                       | +-------+----------------------------------------------------+ | v     | CREATE VIEW `test`.`v` AS select 1 AS `a`,2 AS `b` | +-------+----------------------------------------------------+  Taller de Bases de Datos - Unidad 5 12
Actividad Investigar que es una vista materializada. Investigar si MySQL utiliza vistas materializadas y, si así es, como se utilizan. Taller de Bases de Datos - Unidad 5 13

Más contenido relacionado

La actualidad más candente

Vistas En Sql Y My Sql
Vistas En Sql Y My SqlVistas En Sql Y My Sql
Vistas En Sql Y My Sql
Ziscko
 

La actualidad más candente (17)

Vistas en SQL
Vistas en SQLVistas en SQL
Vistas en SQL
 
PostgreSQL - Lección 10 - Vistas
PostgreSQL - Lección 10 - VistasPostgreSQL - Lección 10 - Vistas
PostgreSQL - Lección 10 - Vistas
 
Vistas En Sql Y My Sql
Vistas En Sql Y My SqlVistas En Sql Y My Sql
Vistas En Sql Y My Sql
 
Crear vistas en microsoft access
Crear vistas en microsoft accessCrear vistas en microsoft access
Crear vistas en microsoft access
 
Vistas
VistasVistas
Vistas
 
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
 
Trabajo grupal - Base de Datos
Trabajo grupal - Base de DatosTrabajo grupal - Base de Datos
Trabajo grupal - Base de Datos
 
Manejo De Sentencias De Definicion
Manejo De Sentencias De DefinicionManejo De Sentencias De Definicion
Manejo De Sentencias De Definicion
 
Vistas
VistasVistas
Vistas
 
VISTAS
VISTASVISTAS
VISTAS
 
Vistas
Vistas Vistas
Vistas
 
Manejo Control De Datos
Manejo Control De DatosManejo Control De Datos
Manejo Control De Datos
 
Diapositivas de vistas
Diapositivas de vistasDiapositivas de vistas
Diapositivas de vistas
 
Vistas
VistasVistas
Vistas
 
Vistasensqlymysql
VistasensqlymysqlVistasensqlymysql
Vistasensqlymysql
 
1.3. MANEJO DE CONTROL DE DATOS
1.3.	MANEJO DE CONTROL DE DATOS1.3.	MANEJO DE CONTROL DE DATOS
1.3. MANEJO DE CONTROL DE DATOS
 
Yupa cesar bdii_t7
Yupa cesar bdii_t7Yupa cesar bdii_t7
Yupa cesar bdii_t7
 

Destacado

Programa de Clase - COmunicación II
Programa de Clase - COmunicación IIPrograma de Clase - COmunicación II
Programa de Clase - COmunicación II
Martín Martínez
 
Universal security de panama
Universal security de panamaUniversal security de panama
Universal security de panama
Carlitaroque
 
El ordenador y sus componentes
El ordenador y sus componentesEl ordenador y sus componentes
El ordenador y sus componentes
esthergismera
 
Investigación cualitativa e investigacion cuantitativa
Investigación cualitativa e investigacion cuantitativaInvestigación cualitativa e investigacion cuantitativa
Investigación cualitativa e investigacion cuantitativa
Mayra Hebi
 
Solucionario 1 de marzo
Solucionario  1 de marzoSolucionario  1 de marzo
Solucionario 1 de marzo
william
 

Destacado (20)

Sql Consultas MáS Complejas
Sql Consultas MáS ComplejasSql Consultas MáS Complejas
Sql Consultas MáS Complejas
 
Programa de Clase - COmunicación II
Programa de Clase - COmunicación IIPrograma de Clase - COmunicación II
Programa de Clase - COmunicación II
 
Ontologías
OntologíasOntologías
Ontologías
 
Snoopy
SnoopySnoopy
Snoopy
 
Universal security de panama
Universal security de panamaUniversal security de panama
Universal security de panama
 
κόκκωρα Iris, carla i bianca
κόκκωρα Iris, carla i biancaκόκκωρα Iris, carla i bianca
κόκκωρα Iris, carla i bianca
 
Tema 4
Tema 4Tema 4
Tema 4
 
Estudio propuesta presupuesto feitec
Estudio propuesta presupuesto feitecEstudio propuesta presupuesto feitec
Estudio propuesta presupuesto feitec
 
11 c 5
11 c 511 c 5
11 c 5
 
Hidrocarburos
HidrocarburosHidrocarburos
Hidrocarburos
 
Beatificación Álvaro del Portillo (3)
Beatificación Álvaro del Portillo (3)Beatificación Álvaro del Portillo (3)
Beatificación Álvaro del Portillo (3)
 
Universidad interamericana para el desarrollo
Universidad interamericana para el desarrolloUniversidad interamericana para el desarrollo
Universidad interamericana para el desarrollo
 
2.a el sermon
2.a el sermon2.a el sermon
2.a el sermon
 
Secundaria claves
Secundaria clavesSecundaria claves
Secundaria claves
 
El ordenador y sus componentes
El ordenador y sus componentesEl ordenador y sus componentes
El ordenador y sus componentes
 
Investigación cualitativa e investigacion cuantitativa
Investigación cualitativa e investigacion cuantitativaInvestigación cualitativa e investigacion cuantitativa
Investigación cualitativa e investigacion cuantitativa
 
S 2898 pronunciamiento ci proyecto ley incentivos empresarial carbono neut ex...
S 2898 pronunciamiento ci proyecto ley incentivos empresarial carbono neut ex...S 2898 pronunciamiento ci proyecto ley incentivos empresarial carbono neut ex...
S 2898 pronunciamiento ci proyecto ley incentivos empresarial carbono neut ex...
 
Solucionario 1 de marzo
Solucionario  1 de marzoSolucionario  1 de marzo
Solucionario 1 de marzo
 
Conferencia del Prelado del Opus Dei en el Meeting de Rimini 2014
Conferencia del Prelado del Opus Dei en el Meeting de Rimini 2014Conferencia del Prelado del Opus Dei en el Meeting de Rimini 2014
Conferencia del Prelado del Opus Dei en el Meeting de Rimini 2014
 
Convento de Mafra
Convento de MafraConvento de Mafra
Convento de Mafra
 

Similar a Vistas

Vistas En Sql Y My Sql
Vistas En Sql Y My SqlVistas En Sql Y My Sql
Vistas En Sql Y My Sql
tec lerdo
 
Vistas en sql_y_my_sql
Vistas en sql_y_my_sqlVistas en sql_y_my_sql
Vistas en sql_y_my_sql
guest737e3012
 
Vistas En Sql Y My Sql
Vistas En Sql Y My SqlVistas En Sql Y My Sql
Vistas En Sql Y My Sql
itsl
 
Vistas en mysql
Vistas en mysql Vistas en mysql
Vistas en mysql
Eduardo Ed
 
Vistas en my sql
Vistas en my sqlVistas en my sql
Vistas en my sql
Eduardo Ed
 
Visualizacion de datos de varias tablas en sql
Visualizacion de datos de varias tablas en sqlVisualizacion de datos de varias tablas en sql
Visualizacion de datos de varias tablas en sql
JONATHAN1254
 

Similar a Vistas (20)

Vistas En Sql Y My Sql
Vistas En Sql Y My SqlVistas En Sql Y My Sql
Vistas En Sql Y My Sql
 
Vistas en sql_y_my_sql
Vistas en sql_y_my_sqlVistas en sql_y_my_sql
Vistas en sql_y_my_sql
 
Vistas en sql_y_my_sql
Vistas en sql_y_my_sqlVistas en sql_y_my_sql
Vistas en sql_y_my_sql
 
Vistas En Sql Y My Sql
Vistas En Sql Y My SqlVistas En Sql Y My Sql
Vistas En Sql Y My Sql
 
Vistas
VistasVistas
Vistas
 
Leccion11
Leccion11Leccion11
Leccion11
 
Vistas en mysql
Vistas en mysql Vistas en mysql
Vistas en mysql
 
Vistas en my sql
Vistas en my sqlVistas en my sql
Vistas en my sql
 
Visualizacion de datos de varias tablas en sql
Visualizacion de datos de varias tablas en sqlVisualizacion de datos de varias tablas en sql
Visualizacion de datos de varias tablas en sql
 
Vistas
VistasVistas
Vistas
 
Vistas
VistasVistas
Vistas
 
VISTAS
VISTASVISTAS
VISTAS
 
Vistas.pptx
Vistas.pptxVistas.pptx
Vistas.pptx
 
Creación de Vistas - PostgreSQL
Creación de Vistas - PostgreSQLCreación de Vistas - PostgreSQL
Creación de Vistas - PostgreSQL
 
Sq lite
Sq lite Sq lite
Sq lite
 
Vistas
VistasVistas
Vistas
 
Bdii 10 vistas_new
Bdii 10 vistas_newBdii 10 vistas_new
Bdii 10 vistas_new
 
Vistas en sql
Vistas en sqlVistas en sql
Vistas en sql
 
Indices y Vistas.pptx
Indices y Vistas.pptxIndices y Vistas.pptx
Indices y Vistas.pptx
 
Sesión04 - Diccionario de datos (Oracle)
Sesión04 - Diccionario de datos (Oracle)Sesión04 - Diccionario de datos (Oracle)
Sesión04 - Diccionario de datos (Oracle)
 

Último

NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
UPTAIDELTACHIRA
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 

Último (20)

NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
 
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSSEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 

Vistas

  • 1. Vistas TBD – Unidad 05 Noviembre 2009
  • 2. Definición 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. Una vista no existe como conjunto de valores de datos almacenados en una base de datos (a menos que sea una vista materializada). 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 dinámica cuando se hace referencia a la vista. Una vista actúa como filtro de las tablas subyacentes a las que se hace referencia en ella. Taller de Bases de Datos - Unidad 5 2
  • 3. Ejemplo: Taller de Bases de Datos - Unidad 5 3
  • 4. Escenarios de utilización Suelen utilizarse para centrar, simplificar y personalizar la percepción de la base de datos para cada usuario. Los datos innecesarios o sensibles pueden quedar fuera de la vista. Pueden emplearse como mecanismos de seguridad, que permiten a los usuarios obtener acceso a los datos por medio de la vista, pero no les conceden el permiso de obtener acceso directo a las tablas base subyacentes de la vista. Permiten simplificar la forma en que los usuarios trabajan con los datos. Es posible crear como vista una consulta compleja que se utilice para la elaboración de informes y que realice subconsultas, combinaciones externas y agregaciones para recuperar datos de un grupo de tablas. La vista simplifica el acceso a los datos ya que evita la necesidad de escribir o enviar la consulta subyacente cada vez que se genera el informe; en lugar de eso, se realiza una consulta en la vista. Taller de Bases de Datos - Unidad 5 4
  • 5. Escenarios de utilización (2) Permiten que varios usuarios puedan ver los datos de modo distinto, aunque estén utilizando los mismos simultáneamente. Esto resulta de gran utilidad cuando usuarios que tienen distintos intereses y calificaciones trabajan con la misma base de datos. Por ejemplo, es posible crear una vista que recupere únicamente los datos para los clientes con los que trabaja el responsable comercial de una cuenta. La vista puede determinar qué datos deben recuperarse en función del Id. de inicio de sesión del responsable comercial que utilice la vista. Entre otros... Taller de Bases de Datos - Unidad 5 5
  • 6. Instrucciones para el manejo de vistas en MySQL Creación o modificación: CREATE VIEW o ALTER VIEW Eliminación: DROP VIEW Obtención de información de definición de una vista (metadatos): SHOW CREATE VIEW Taller de Bases de Datos - Unidad 5 6
  • 7. Sintaxis de CREATE VIEW CREATE [ORREPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW nombre_vista [(columnas)] AS sentencia_select [WITH [CASCADED | LOCAL] CHECKOPTION] Esta sentencia crea una vista nueva o reemplaza una existente si se incluye la cláusula ORREPLACE. 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. Si está presente la cláusula ORREPLACE, 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. Utilizebase_de_datos.nombre_vista pera crear una vista en una base de datos específica al momento de crearla: mysql> CREATE VIEW test.v AS SELECT * FROM t; Taller de Bases de Datos - Unidad 5 7
  • 8. Sintaxis de CREATE VIEW (2) 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. 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 pueden crearse 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> CREATETABLE t (qtyINT, priceINT); mysql> INSERTINTO t VALUES(3, 50); mysql> CREATE VIEW v AS SELECTqty, price, qty*price AS valueFROM t; mysql> SELECT * FROM v; +------+-------+-------+ | qty | price | value | +------+-------+-------+ | 3 | 50 | 150 | +------+-------+-------+ Taller de Bases de Datos - Unidad 5 8
  • 9. Sintaxis de CREATE VIEW (3) Cualquier tabla o vista referenciada por la definición debe existir. Sin embargo, es posible que después de crear una vista, se elimine alguna tabla o vista a la que se hace referencia. Para comprobar la definición de una vista en busca de problemas de este tipo, utilice la sentencia CHECKTABLE. 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 relación uno-a-uno entre los registros de la vista y los registros de la tabla subyacente. Hay otros elementos que impiden que una vista sea actualizable. Más específicamente, una vista no será actualizable si contiene: Funciones agregadas (SUM(), MIN(), MAX(), COUNT(), etc.). DISTINCT. GROUPBY. HAVING. UNION o UNION ALL. Una subconsulta en la lista de columnas del SELECT. Join. Una vista no actualizable en la cláusula FROM. Entre otras… Taller de Bases de Datos - Unidad 5 9
  • 10. Sintaxis de ALTER VIEW ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW nombre_vista [(columnas)] AS sentencia_select [WITH [CASCADED | LOCAL] CHECKOPTION] Esta sentencia modifica 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. Taller de Bases de Datos - Unidad 5 10
  • 11. Sintaxis de DROP VIEW DROP VIEW [IFEXISTS] nombre_vista [, nombre_vista] ... [RESTRICT | CASCADE] Elimina una o más vistas de la base de datos. Se debe poseer el privilegio DROP en cada vista a eliminar. La cláusula IFEXISTS se emplea para evitar que ocurra un error por intentar eliminar una vista inexistente. RESTRICT y CASCADEson ignoradas. Taller de Bases de Datos - Unidad 5 11
  • 12. Sintaxis de SHOW CREATE VIEW SHOW CREATE VIEW nombre_vista Muestra la sentencia CREATE VIEW que se utilizó para crear la vista. mysql> SHOW CREATE VIEW v; +-------+----------------------------------------------------+ | Table | CreateTable | +-------+----------------------------------------------------+ | v | CREATE VIEW `test`.`v` AS select 1 AS `a`,2 AS `b` | +-------+----------------------------------------------------+ Taller de Bases de Datos - Unidad 5 12
  • 13. Actividad Investigar que es una vista materializada. Investigar si MySQL utiliza vistas materializadas y, si así es, como se utilizan. Taller de Bases de Datos - Unidad 5 13