8.8.1. Ejemplos - Tratando Vistas
No se permite a los usuarios trabajar directamente sobre las tablas, y los motivos son:
- Por la seguridad, ya que puede eliminar datos importantes.
- Para prevenir errores del usuario.
Para lo cual se les ofrece las vistas.
Una vista, aunque se parezca a una tabla, no lo es.
Es una consulta a una o varias tablas a las que se le asigna un nombre.
Permite que los datos de la consulta se puedan tratar como si fueran una tabla.
Características de la estructura de una vista:
- No es obligatorio que la vista tenga todas las columnas de una tabla.
- Se le puede asignar la columna o columnas que se desee de una o varias tablas.
- No es obligatorio que contenga todos los registros de las tablas.
- Se puede crear filtrando los registros.
- La vista realmente no contiene datos físicos, solo consulta la tabla para recuperar los datos.
- Cuando se realiza una operación DML sobre una vista, realmente se aplica a las tablas origen.
Con las vistas se ofrece al usuario final:
- Simplificar el SQL.
- Mejorar la comprensión de los datos de las tablas, utilizando nombres de columnas más simples o intuitivos.
Existen 2 tipos de vistas:
Vistas simples:
- Se crean con los datos de una única tabla y se les puede realizar sentencias DML.
Vistas complejas:
- Se crean con los datos de una o varias tablas utilizando joins.
- Generalmente no se les puede realizar sentencias DML.
Creación y opciones de vistas:
Sintaxis:
Create [or replace] [force | noforce] view nombre_vista as subconsulta [with check option [constraint nombre_restriccion]] [with read only [constraint nombre_restriccion]]
Opciones:
- Or replace: Reemplaza la vista si esta ya existe.
- Force / noforce: Obliga a crear la vista aunque la tabla origen no exista.
- With check option: Si la vista se crea utilizando la cláusula WHERE, no se permite realizar INSERT o UPDATE sobre registros que no son accesibles con la vista.
- With read only: Solo permite realizar consultas sobre la vista, es decir, impide realizar INSERT, UPDATE o DELETE.
- Constraint: Permite
tratando vistas ejemplos