Creación, modificación y supresión de vistas con SQL.
Creación y uso de vistas
No contienen información por si mismas, sino que están basadas en las que contienen otras tablas y refleja los datos de estas.
Si se suprime una tabla la vista asociada se invalida. Formato:
CREATE [OR REPLACE] VIEW NOMBREVISTA
[(COLUMNA [,COLUMNA])]
AS CONSULTA;
AS CONSULTA= Determina las columnas y las tablas que aparecerán en la vista.
[OR REPLACE]= Crea de nuevo la vista si ya existía.
Para consultar la vista creada, USER_VIEWS:
SELECT VIEW_NAME FROM…
|
Nota: al borrar las tablas, las vistas de esas tablas no se borran y quedan inutilizadas.
|
Borrado de vistas
Se hace con DROP VIEW. Formato:
DROP VIEW NOMBREVISTA;
Operaciones sobre vistas
Se pueden realizar las mismas operaciones que se hacen sobre las tablas. Restricciones:
- Actualización Si una vista esta basada en una sola tabla, se pueden modificar las filas de la vista.
- La modificación de la vista cambia la tabla sobre la que esta definida.
- Borrado de filas a través de una vista= Para borrar filas de una tabla a través de una vista, esta se debe crear:
- Con filas de una sola tabla.
- Sin utilizar la cláusula GROUP BY ni DISTINCT.
- Sin usar funciones de grupo o referencias a pseudocolumnas.
- Actualización de filas a través de una vista:
Para actualizar filas en una tabla a través de una vista, esta ha de estar definida según las restricciones anteriores y , además, ninguna de las columnas que se va a actualizar se habrá definido como una expresión.
- Inserción de filas a través de una vista:
Para insertar filas en una tabla a través de una vista se han de tener en cuenta todas las restricciones anteriores y, además, todas las columnas obligatorias de la tabla asociada deben estar presentes en la vista.
- Manejo de expresiones y de funciones en vistas:
Se pueden crear vistas usando funciones, expresiones en columnas y consultas avanzadas pero únicamente se parean consultar estas vistas.
También podemos modificar filas siempre y cuando la columna que se va a modificar no sea la columna expresad en forma de cálculo o con funciones.
|
Nota: No es posible insertar filas si las columnas de la vista contiene cálculos o funciones.
|
Cambios de nombre
RENAME cambia el nombre de una tabla, vista o sinónimo. El nuevo nombre no puede ser una palabra reservada ni el nombre de un objeto que tenga creado el usuario.
Las restricciones de integridad, los índices y los permisos dados al objeto se transfieren automáticamente al nuevo objeto.
REANME NOMBRE_ANTERIOR TO NOMBRE_NUEVO;
Con esta orden no podemos renombrar columnas de una tabla, estas se renombran mediante CREATE TABLE AS…