¡GoConqr estrena diseño! Cuéntanos qué te parece.

Mapa mental

Tipos de Vistas MySQL

Miguel Llerena Inglés

Mapa mental sobre tipos de vistas MySQL: version 5.0, ALTER VIEW y CREATE VIEW

Mapa mental: tipos de vistas MySQL

Contenido del mapa

Tipos de Vistas MySQL

  1. Las vistas (incluyendo vistas actualizables) fueron introducidas en la versión 5.0 del servidor de base de datos MySQL

    • 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 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.
    • Sintaxis de 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.
          • 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 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.
              • Al igual que las tablas, las vistas no pueden tener nombres de columnas duplicados
              • 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
                  • Dentro de una rutina almacenada, la definición no puede hacer referencia a parámetros de la rutina o a variables locales.
                    • La definición no puede hacer referencia a una tabla TEMPORARY, y tampoco se puede crear una vista TEMPORARY
                      • Nota. En la definición de una vista está permitido ORDER BY, pero es ignorado si se seleccionan columnas de una vista que tiene su propio ORDER BY.
                • La sentencia SELECT no puede hacer referencia a variables del sistema o del usuario
                  • Las tablas mencionadas en la definición de la vista deben existir siempre
                • La sentencia SELECT no puede hacer referencia a parámetros de sentencia preparados.
                  • 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 CHECK TABLE.
                    • No se puede asociar un disparador con una vista.
      • El algoritmo de una vista puede ser UNDEFINED en tres situaciones:
        • No se encuentra presente una cláusula ALGORITHMen la sentencia CREATE VIEW.
          • La sentencia CREATE VIEW tiene explícitamente una cláusula ALGORITHM = UNDEFINED.
          • Se especificó ALGORITHM = MERGE para una vista que solamente puede ser procesada usando una tabla temporal. En este caso, MySQL emite una advertencia y establece el algoritmo en UNDEFINED.
            • Con respecto a la posibilidad de agregar registros mediante sentencias INSERT, es necesario que las columnas de la vista actualizable también 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 expresión. Estos son algunos ejemplos de columnas derivadas:
        • Sintaxis de DROP VIEW
          • DROP VIEW [IF EXISTS] nombre_vista [, nombre_vista] ... [RESTRICT | CASCADE]
            • DROP VIEW 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 IF EXISTS se emplea para evitar que ocurra un error por intentar eliminar una vista inexistente. Cuando se utiliza esta cláusula, se genera una NOTE por cada vista inexistente.
              • RESTRICT y CASCADE son ignoradas.
          • Sintaxis de SHOW CREATE VIEW
            • SHOW CREATE VIEW nombre_vista
              • Muestra la sentencia CREATE VIEW que se utilizó para crear la vista.

Información

Descripción
Mapa Mental sobre Tipos de Vistas MySQL, creado por Miguel Llerena el 18/09/2021.
Creado por
Miguel Llerena
Visitas
1
Valoración

Escríbenos

¿Sobre qué es tu mensaje?

¿Qué te parece el nuevo diseño?

¿Te gusta?