Tratando Vistas en SQL
No se le permite a los usuarios trabajar de primera mano sobre las tablas y los motivos son:
Por la seguridad, ya que podemos eliminar datos importantes.
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.
Nos permitirĆ” que los datos de la consulta los podamos tratar como si fuese una tabla.
CaracterĆsticas de la estructura de una vista:
No es de obligaciĆ³n que la vista tenga todas las columnas de una tabla.
Le vamos a poder asignar la columna o columnas que deseemos de una o varias tablas.
No es de obligaciĆ³n que contenga todos los registros de las tablas.
Podemos crear filtrando los registros.
La vista realmente no contiene datos fĆsicos, lo que 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 intuitivas.
Existen 2 tipos de vistas:
Vistas simples:
se crean con los datos de una Ćŗnica tabla y se le puede realizar sentencia DML.
Vistas complejas:
Se crean con los datos de una o varias tablas utilizando joins.
Generalmente no se le puede realizar sentencias DML.
CreaciĆ³n y opciones de vistas:
Sintaxis:
CREATE [or REPLACE] [FORCE | NOFORCE] VIEW nombre_vista AS subconsulta [WITH CKECK OPTION [CONSTRAINT nombre_restriccion]] [WITH READ ONLY [CONSTRAINT nombre_restriccion]]
Opciones:
OR REPLACE: suplanta la vista, si esta ya esta creada.
FORCE / NOFORCE: nos obliga a crear la vista aunque la tabla origen no exista.
WITH CKECK OPTION: si la vista se crea usando la clƔusula WHERE, no nos permitirƔ realizar INSERT o UPDATES sobre registros que no son accesibles con la vista.
WITH READ ONLY: solo nos permitirĆ” realizar consultas sobre la vista, es decir impide realizar INSERT, UPDATE o DELETES.
CONSTRAINT: nos permite poner nombres a las restricciones para hacer mĆ”s legibles los mensajes de error asociados a su violaciĆ³n.
ModificaciĆ³n y opciones de vistas:
Sintaxis:
ALTER VIEW nombrevista [ADD | DROP RESTRICCION | COMPILE];
Opciones:
ADD: se usa para aƱadir una restricciĆ³n a la vista.
MODIFY CONSTRAINT: se usa para borrar una restricciĆ³n a la vista.
COMPILE: se usa para recompilar la vista.
EliminaciĆ³n de vistas:
Sintaxis:
DROP VIEW nombrevista;
Consultando una vista:
Sintaxis:
SELECT * From nombrevista;
Ejemplo: SELECT * From emp_details_view ORDER BY job_title;