GoConqr has a new look! Let us know what you think.

Mind map

Tipos de Vistas MySQL

Miguel Llerena English

Map content

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.

Information

Description
Mind Map on Tipos de Vistas MySQL, created by Miguel Llerena on 18/09/2021.
Created by
Miguel Llerena
Views
1
Rating

Feedback

What is it about?

What do you think of the new look?

How do you like it?