viernes, 11 de noviembre de 2016

VIEW

¿Qué Es una Vista? 
Puede presentar subjuegos lógicos o combinaciones de datos creando vistas o tablas. Una vista es una tabla lógica basada en una tabla u otra vista. Una vista no contiene datos de sí misma, sino que es como una ventana a través de la cual se pueden ver o cambiar datos de tablas. Las tablas en las que se basa una vista se denominan tablas base. La vista se almacena en una sentencia SELECT en el diccionario de datos. 


Ventajas de las Vistas 
  • Las vistas restringen el acceso a los datos porque pueden mostrar columnas seleccionadas de la tabla. 
  • Las vistas se pueden utilizar para crear consultas simples que recuperen los resultados de consultas complejas. Por ejemplo, las vistas se pueden utilizar para consultar información de varias tablas sin necesidad de que el usuario sepa escribir una sentencia de unión. 
  • Las vistas proporcionan independencia a los datos para usuarios y programas de aplicaciones. Se puede utilizar una vista para recuperar datos de varias tablas. 
  • Las vistas proporcionan a grupos de usuarios acceso a datos según los criterios particulares de cada uno. 

Para obtener más información, consulte “CREATE VIEW” en Oracle SQL Reference. 



Vistas Simples y Vistas Complejas 
Hay dos clasificaciones para las vistas: simples y complejas La diferencia básica tiene que ver con las operaciones DML (INSERT, UPDATE y DELETE). 
  • Una vista simple es la que: 
    • Deriva datos de una sola tabla 
    • No contiene funciones ni grupos de datos 
    • Puede realizar operaciones DML a través de la vista 
  • Una vista compleja es la que: 
    • Deriva datos de muchas tablas 
    • Contiene funciones o grupos de datos 
    • No siempre permite operaciones DML a través de la vista 
Se puede crear una vista embebiendo una subconsulta en la sentencia CREATE VIEW
En la sintaxis: 
OR REPLACE vuelve a crear la vista si ya existe 
FORCE crea la vista independientemente de si existe o no la tabla base 
NOFORCE crea la vista sólo si existe la tabla base (Es el valor por defecto.) 
view es el nombre de la vista 
alias especifica nombres para las expresiones seleccionadas por la consulta de la vista (El número de alias debe corresponder con el número de expresiones seleccionadas por la vista.) 
subquery es una sentencia SELECT completa (Puede utilizar alias para las columnas de la lista SELECT.
WITH CHECK OPTION especifica que sólo se pueden insertar o actualizar las filas que estén accesibles para la vista 
constraint es el nombre asignado a la restricción CHECK OPTION 
WITH READ ONLY asegura que no se pueda realizar ninguna operación DML en esta vista 

Instrucciones para la Creación de una Vista: 
  • La subconsulta que define una vista puede contener una sintaxis SELECT compleja, incluidos uniones, grupos y subconsultas. 
  • Si no especifica un nombre de restricción para una vista creada con WITH CHECK OPTION, el sistema asigna un nombre por defecto en el formato SYS_Cn. 
  • Puede utilizar la opción OR REPLACE para cambiar la definición de la vista sin borrarla y volverla a crear ni volver a otorgar privilegios de objeto que se le hayan otorgado previamente. 
Cree una vista mediante alias de columna en la subconsulta: 


Puede controlar los nombres de columna mediante la inclusión de alias de columna en la subconsulta.
El ejemplo crea una vista que contiene el número de empleado (EMPLOYEE_ID) con el alias ID_NUMBER, el apellido (LAST_NAME) con el alias NAME y el salario anual (SALARY) con el alias ANN_SALARY para todos los empleados del departamento 50.

Como alternativa, puede utilizar un alias después de la sentencia CREATE y antes de la subconsulta SELECT. El número de alias que se muestre debe corresponder con el número de expresiones seleccionadas en la subconsulta.

CREATE OR REPLACE VIEW  salvu50 (ID_NUMBER, NAME, ANN_SALARY) 
 AS SELECT employee_id, last_name, salary*12 
   FROM  employees 
   WHERE  department_id = 50; 
View created. 

Recuperación de Datos de una Vista 
Puede recuperar datos de una vista del mismo modo que de una tabla. Puede mostrar el contenido de toda la vista o sólo filas y columnas específicas. 

Modificación de Vistas 
Con la opción OR REPLACE, se puede crear una vista incluso si ya existe una con el mismo nombre, de modo que sustituirá a la versión antigua de la vista para su propietario. Esto significa que la vista se puede modificar sin tener que borrar, volver a crear y volver a otorgar privilegios de objeto. 
Nota: Al asignar alias de columna en la cláusula CREATE OR REPLACE VIEW, recuerde que los alias se muestran en el mismo orden que las columnas en la subconsulta. 

Creación de Vistas Complejas 
El ejemplo crea una vista compleja de nombres de departamentos, salarios mínimos, salarios máximos y salarios medios por departamento. Observe que se han especificado nombres alternativos para la vista. Esto es obligatorio si alguna columna de la vista se deriva de una función o de una expresión. 
Puede ver la estructura de la vista mediante el comando DESCRIBE de iSQL*Plus. Muestre el contenido de la vista emitiendo una sentencia SELECT
SELECT * 
FROM  dept_sum_vu

Realización de Operaciones DML en Vistas 
Se pueden realizar operaciones DML en datos a través de una vista si dichas operaciones siguen ciertas reglas. 
Se puede eliminar una fila de una vista a no ser que contenga alguno de los siguientes elementos: 
Funciones de grupo 
  • Una cláusula GROUP BY 
  • La palabra clave DISTINCT 
  • La palabra clave ROWNUM de pseudocolumna 
No se pueden agregar datos a través de una vista si la vista incluye: 
  • Funciones de grupo 
  • Una cláusula GROUP BY 
  • La palabra clave DISTINCT 
  • La palabra clave ROWNUM de pseudocolumna 
  • Contiene columnas definidas por expresiones 
  • Columnas NOT NULL en las tablas base que no están seleccionadas por la vista 
Se pueden agregar datos a través de una vista a no ser que contenga alguno de los elementos que se muestran en el ejemplo. No se pueden agregar datos a una vista si contiene columnas NOT NULL sin valores por defecto en la tabla base. Todos los valores requeridos deben estar presentes en la vista. Recuerde que va a agregar valores directamente a la tabla subyacente a través de la vista.
Para obtener más información, consulteCREATE VIEWen Oracle SQL Reference. 

Share:

0 comentarios:

Publicar un comentario

Archivo

Cual es el tema de mayor interes para ti?