Ver Mensaje Individual
  #4 (permalink)  
Antiguo 03/07/2007, 20:38
Avatar de TolaWare
TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
Re: actualizacion de vista en mysql

Bueno, quizás quede más claro lo que quiero decir con un ejemplo:

Suponte que tenemos una tabla llamada Alumnos con los atributos (ID, nombre,edad,DNI,sexo).

Luego creamos una vista llamado AlumnosMasculinos con la siguiente definición:
select * from Alumnos where sexo = 'Masculino'

Si a ti se te ocurre hacer una consulta sobre la vista AlumnosMasculinos, digamos:
select * from AlumnosMasculinos where edad > 30

Cuando esta consulta le llegue al motor de base datos (MySQL en este caso), la transforma de la siguiente manera:
select * from (select * from Alumnos where sexo = 'Masculino') where edad > 30

Es decir que reemplaza la palabra AlumnosMasculinos por la definición de la vista con ese nombre, y fijate que en la consulta que ejecuta MySQL no se nombra a la vista AlumnosMasculinos.

Por esto, se dice que una vista, es solo una "ventana" hacia las tablas que hace referencia y obviamente los registros que vos ves al hacer una consulta sobre una vista son en realidad registros de la tabla a la cual la vista hace referencia. Por lo tanto la vista no existe físicamente, o como diría C.J. Date "Una vista es solo una expresión relacional con nombre".

Espero haber dejado más claro el asunto