Está en la página 1de 35

11 Creando Vistas

Copyright © Oracle Corporation, 2001. All rights reserved.

Schedule: Timing Topic


20 minutes Lecture
20 minutes Practice
40 minutes Total
Objetivos

Después de completar esta lección, usted debería ser


capaz de hacer lo siguiente:
• Describir una vista
• Crear, modificar la definición y eliminar una vista
• Recuperar datos a través de una vista
• Insertar, actualizar y eliminar datos a través de
Vistas
• Crear y utilizar una vista en línea
• Realizar análisis "top-N"

11-2 Copyright © Oracle Corporation, 2001. All rights reserved.

Objetivo de la Lección
En esta lección, aprenderá a crear y utilizar vistas. También aprenderá a consultar el objeto del
diccionario de datos relevantes para recuperar información acerca de las vistas. Por último, se aprende
a crear y utilizar vistas en línea, y realizar análisis Top-N mediante vistas.

Introduction to Oracle9i: SQL 11-2


Database Objects

Object Description

Table Unidad básica de almacenamiento;


compuesto de filas y columnas

View Presentacion logica de subconsultas de una


o mas tablas

Genera valores de clave principal


Sequence
Mejora el rendimiento de algunas consultas
Index
Nombre alternativo para un objeto
Synonym

11-3 Copyright © Oracle Corporation, 2001. All rights reserved.

Introduction to Oracle9i: SQL 11-3


¿Qué es una Vista?
EMPLOYEES Table:

11-4 Copyright © Oracle Corporation, 2001. All rights reserved.

¿Qué es una Vista?

Puede presentar subconjuntos lógicos o combinaciones de datos mediante la creación


de puntos de vista de las tablas. Una vista es una tabla lógica basado en una tabla u
otro punto de vista. Una vista no contiene datos de su cuenta, pero es como una
ventana a través de la cual los datos de las tablas se pueden ver o modificar. Las tablas
en que se basa una vista se llaman tablas base. La vista se almacena como una
sentencia SELECT en el diccionario de datos.

Notas al Instructor
Demo: 11_easyvu.sql
Propósito: La vista se muestra en la diapositiva se crea de la siguiente manera:
CREATE OR REPLACE VIEW simple_vu
AS SELECT employee_id, last_name, salary
FROM employees;

Introduction to Oracle9i: SQL 11-4


¿Por qué utilizar Vistas?

• Para restringir el acceso a los datos


• Para realizar consultas complejas fácil
• Para proporcionar la independencia de datos
• Para presentar diferentes vistas de los mismos
datos

11-5 Copyright © Oracle Corporation, 2001. All rights reserved.

Ventajas de Vistas

•Vistas restringen el acceso a los datos, ya que la vista puede mostrar columnas selectivos de
las tablas.
•Las vistas se pueden utilizar para hacer consultas simples para recuperar los resultados de
las consultas complicadas. Por ejemplo, las vistas se pueden utilizar para consultar la
información de varias tablas sin que el usuario saber cómo escribir una declaración unirse.
•Vistas proporcionan independencia de datos para los usuarios especiales y programas de
aplicación. Un punto de vista se puede utilizar para recuperar datos de varias tablas.
•Vistas proporcionan grupos de usuarios el acceso a los datos de acuerdo a sus criterios
particulares.
•Para obtener más información, consulte Oracle9i SQL, "CREATE VIEW“.

Introduction to Oracle9i: SQL 11-5


Vistas simples y Vistas complejas

característica Simples Complejas

Numero de tablas una una o mas

Contienen funciones No si

Contiene grupos de datos No si


Operaciones DML si no siempre

11-6 Copyright © Oracle Corporation, 2001. All rights reserved.

Vistas simples versus a Vistas complejas


Hay dos clasificaciones de vistas: simples y complejos. La diferencia básica está relacionada con la
DML (INSERT, UPDATE y DELETE) operaciones.

Una vista simple vista es una que:


• Deriva de datos de una sola tabla
• No contiene funciones o grupos de datos
• Puede realizar operaciones de DML través de la vista

Una vista compleja es aquella que:


• Deriva datos de muchas tablas
• Contiene funciones o grupos de datos
• No siempre permitir operaciones DML través de la vista

Introduction to Oracle9i: SQL 11-6


Creación de una vista

• Incrustar una subconsulta dentro de la sentencia


CREATE VIEW.
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view
[(alias[, alias]...)]
AS subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY [CONSTRAINT constraint]];

• La subconsulta puede contener sintaxis SELECT


compleja.

11-7 Copyright © Oracle Corporation, 2001. All rights reserved.

Creando Vistas
Puede crear una vista mediante la incorporación de una subconsulta dentro de la sentencia CREATE
VIEW.
En la sintaxis:
OR REPLACE recrea la vista si ya existe
NOFORCE crea la vista sólo si existen las tablas de base (Este es el valor
predeterminado.)
FORCE crea la vista, independientemente de si existen o no las tablas base
view es el nombre de la vista
alias especifica nombres para las expresiones seleccionados por
la consulta de la vista (El número de alias debe coincidir con el número de expresiones
seleccionadas por la vista.)
subquery es una instrucción SELECT completa (Usted puede usar los alias
de las columnas de la lista SELECT.)
WITH CHECK OPTION especifica que sólo las filas accesibles a la vista pueden ser
insertados o actualizados
constraint es el nombre asignado a la restricción CHECK OPTION
WITH READ ONLY asegura que no hay operaciones DML se pueden realizar en este

Introduction to Oracle9i: SQL 11-7


punto de vista

Introduction to Oracle9i: SQL 11-‹Nº›


Creación de una vista

• Crear una vista EMPVU80, que contiene los


detalles de los empleados en el departamento 80.
CREATE VIEW empvu80
AS SELECT employee_id, last_name, salary
FROM employees
WHERE department_id = 80;
View created.

• Describir la estructura de la vista mediante la iSQL


* Plus comando DESCRIBE.
DESCRIBE empvu80

11-8 Copyright © Oracle Corporation, 2001. All rights reserved.

Creando Vistas (continuación)


El ejemplo de la diapositiva crea una vista que contiene el número de empleado, el apellido y el
salario de cada empleado en el departamento 80.
Se puede visualizar la estructura de la vista mediante la iSQL * Plus comando DESCRIBE.

Directrices para la creación de un punto de vista:


•La subconsulta que define un punto de vista puede contener sintaxis
SELECT complejo, incluyendo uniones, grupos y subconsultas.
•La subconsulta que define la vista no puede contener una cláusula
ORDER BY. Se especifica la cláusula ORDER BY al recuperar los datos
de la vista.
•Si no especifica un nombre de restricción para una vista creada con
el CHECK OPTION , el sistema asigna un nombre por defecto en el
formato SYS_Cn.
•Puede utilizar OR REPLACE para cambiar la definición de la vista
sin bloquearla y volver a crearla con loas mismos privilegios
anteriores.

Introduction to Oracle9i: SQL 11-8


Creación de una vista

• Crear una vista mediante el uso de los alias de


columna en la subconsulta.
CREATE VIEW salvu50
AS SELECT employee_id ID_NUMBER, last_name NAME,
salary*12 ANN_SALARY
FROM employees
WHERE department_id = 50;
View created.

• Seleccione las columnas de esta vista por los


nombres de alias dadas.

11-9 Copyright © Oracle Corporation, 2001. All rights reserved.

Creando Vistas (continuación)


Puede controlar los nombres de columna mediante la inclusión de los alias de columna dentro de la
subconsulta.
El ejemplo de la diapositiva crea una vista que contiene el número de empleado (EMPLOYEE_ID) con
el id_number alias, nombre (LAST_NAME) con el nombre de alias, y el salario anual (SALARIO) con el
ANN_SALARY alias para todos los empleados en el 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 enumerados debe coincidir con el número de expresiones seleccionadas
en la subconsulta.
CREATE VIEW salvu50 (ID_NUMBER, NAME, ANN_SALARY)
AS SELECT employee_id, last_name, salary*12
FROM employees
WHERE department_id = 50;
View created.

Instructor Note
Comunica a los alumnos vistas sobre materializadas o instantáneas. Los términos de instantánea y
vistas materializadas son sinónimos. Ambos se refieren a una tabla que contiene los resultados de una
consulta de una o más tablas, cada una de las cuales pueden estar ubicados en el mismo o en una
base de datos remota. Las tablas en la consulta se denominan tablas maestras o tablas de detalle. Las
bases de datos que contienen las tablas maestras se llaman las bases de datos master. Para obtener

Introduction to Oracle9i: SQL 11-9


más información sobre vistas materializadas se refieren a: Oracle9i SQL “CREATE
MATERIALIZED VIEW / SNAPSHOT.”

Introduction to Oracle9i: SQL 11-‹Nº›


Recuperación de datos de un Vista

SELECT *
FROM salvu50;

11-10 Copyright © Oracle Corporation, 2001. All rights reserved.

Recuperación de datos de un Vista


Puede recuperar datos desde una vista como lo haría desde cualquier tabla. Puede mostrar
cualquiera de los contenidos de toda la vista o simplemente filas y columnas específicas.

Introduction to Oracle9i: SQL 11-10


Consultas en Vista

Oracle Server

iSQL*Plus
USER_VIEWS
SELECT * EMPVU80
FROM empvu80; SELECT employee_id,
last_name, salary
FROM employees
WHERE department_id=80;

EMPLOYEES

11-11 Copyright © Oracle Corporation, 2001. All rights reserved.

Views in the Data Dictionary


Once your view has been created, you can query the data dictionary view called USER_VIEWS to see
the name of the view and the view definition. The text of the SELECT statement that constitutes your
view is stored in a LONG column.
Data Access Using Views
When you access data using a view, the Oracle server performs the following operations:
1. It retrieves the view definition from the data dictionary table USER_VIEWS.
2. It checks access privileges for the view base table.
3. It converts the view query into an equivalent operation on the underlying base table or tables. In
other words, data is retrieved from, or an update is made to, the base tables.

Instructor Note
The view text is stored in a column of LONG data type. You may need to set ARRAYSIZE to a smaller
value or increase the value of LONG to view the text.

Introduction to Oracle9i: SQL 11-11


Modificación de un Vista

• Modificar la vista EMPVU80 con CREATE OR


REPLACE . Añadir un alias para cada nombre de
columna.
CREATE OR REPLACE VIEW empvu80
(id_number, name, sal, department_id)
AS SELECT employee_id, first_name || ' ' || last_name,
salary, department_id
FROM employees
WHERE department_id = 80;
View created.

• Alias de columna CREATE VIEW se enumeran en


el mismo orden que las columnas de la
subconsulta.

11-12 Copyright © Oracle Corporation, 2001. All rights reserved.

Modificación de un Vista

Con la opción CREATE OR REPLACE , una vista puede ser creado, incluso si es que existe
con este nombre ya sustituye la antigua versión de la vista para su dueño.

Esto significa que la vista puede ser alterada si se tienen los privilegios.

Nota: Al asignar los alias de columna en la cláusula CREATE VIEW, recuerde que los alias se
enumeran en el mismo orden que las columnas de la subconsulta.

Instructor Note
El OR REPLACE comenzó con Oracle7. Con versiones anteriores de Oracle, si la vista necesaria
para ser cambiado, que tuvo que ser reducido y re-creado.
Demo: 11_emp.sql

Introduction to Oracle9i: SQL 11-12


Purpose: To illustrate creating a view using aliases

Introduction to Oracle9i: SQL 11-‹Nº›


Creación de una vista Compleja

Crear una visión compleja que contiene funciones de


grupo para mostrar los valores de dos tablas.
CREATE VIEW dept_sum_vu
(name, minsal, maxsal, avgsal)
AS SELECT d.department_name, MIN(e.salary),
MAX(e.salary),AVG(e.salary)
FROM employees e, departments d
WHERE e.department_id = d.department_id
GROUP BY d.department_name;
View created.

11-13 Copyright © Oracle Corporation, 2001. All rights reserved.

Creación de una vista Compleja

El ejemplo de la diapositiva crea una vista compleja de los nombres de departamento, los
salarios mínimos, salarios máximos, y los salarios promedio por departamento. Tenga en
cuenta que los nombres alternativos se han especificado para la vista. Este es un requisito si
cualquier columna de la vista se deriva de una función o una expresión.
Usted puede ver la estructura de la vista mediante la iSQL * Plus comando DESCRIBE.
Mostrar el contenido de la vista mediante la emisión de una sentencia SELECT.

SELECT *
FROM dept_sum_vu;

Introduction to Oracle9i: SQL 11-13


Rules for Performing
DML Operations on a View

• Puede realizar operaciones de DML en vistas


simples.
• No se puede eliminar una fila si la vista contiene la
siguiente :
– Funciones de grupo
– Un GROUP BY
– El comando DISTINCT
– El ROWNUM ( seudo columna)

11-14 Copyright © Oracle Corporation, 2001. All rights reserved.

Realización de operaciones de DML en una vista


Puede realizar operaciones de DML en los datos a través de un punto de vista si esas operaciones
siguen ciertas reglas.
Puede eliminar una fila de una vista a menos que contenga cualquiera de los siguientes:
•funciones de grupo
•Una cláusula GROUP BY
•La palabra clave DISTINCT
•La palabra clave ROWNUM pseudocolumna

Nota para el instructor


Para cada fila devuelta por una consulta, el pseudocolumna ROWNUM devuelve un número que
indica el orden en que el servidor Oracle selecciona la fila de una tabla o un conjunto de filas
combinadas. La primera fila seleccionada tiene un ROWNUM de 1, el segundo tiene 2, y así
sucesivamente.

Introduction to Oracle9i: SQL 11-14


Reglas para la Realización DML O en una
vista

No se pueden modificar los datos en una vista si


contiene:
– funciones de grupo
– Una cláusula GROUP BY
– La palabra clave DISTINCT
– La palabra clave ROWNUM pseudocolumna
– Columnas definidas por las expresiones

11-15 Copyright © Oracle Corporation, 2001. All rights reserved.

Realización de operaciones de DML en una vista (continuación)


Puede modificar los datos a través de una vista a menos que contenga alguna de las
condiciones mencionadas en la diapositiva anterior o columnas definida por ejemplo
expresiones fines, SALARIO * 12.

Introduction to Oracle9i: SQL 11-15


Reglas para la Realización de DML en una
vista

No puede 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 pseudocolumna
• Columnas definidas por las expresiones
• NO columnas NULL en las tablas de base de que
no sean seleccionados por la vista

11-16 Copyright © Oracle Corporation, 2001. All rights reserved.

Realización de operaciones de DML en una vista (continuación)

Puede agregar datos a través de una vista a menos que contenga alguno de los elementos
enumerados en la diapositiva o no hay columnas NULL sin valores por defecto en la tabla base
que no están seleccionados por la vista. Todos los valores requeridos deben estar presentes
en la vista. Recuerde que usted está agregando valores directamente en la tabla subyacente a
través de la vista.
Para obtener más información, consulte 0racle9i SQL, "CREATE VIEW".

Nota para el instructor


Con Oracle7.3 y versiones superiores, puede modificar las vistas que involucran algunas restricciones.
Las restricciones para las operaciones de DML que se describen en la diapositiva también se aplican
para uniones entre visitas. Cualquier instrucción UPDATE, INSERT o DELETE en una vista conjunta
puede modificar una sola tabla base subyacente. Si al menos una columna en la subconsulta u tiene un
índice único, entonces puede ser posible modificar una tabla base de una vista conjunta. Puede
consultar USER_UPDATABLE_COLUMNS para ver si las columnas de una vista conjunta se pueden
actualizar.

Introduction to Oracle9i: SQL 11-16


Uso de la cláusula WITH CHECK OPTION
• Puede asegurarse que las operaciones DML se
puedan realizar en una vista mediante el uso de
la cláusula WITH CHECK OPTION

CREATE OR REPLACE VIEW empvu20


AS SELECT *
FROM employees
WHERE department_id = 20
WITH CHECK OPTION CONSTRAINT empvu20_ck ;
View created.

• Cualquier intento de cambiar el número de


departamento para cualquier fila en la vista falla
porque viola el WITH CHECK OPTION restricción.

11-17 Copyright © Oracle Corporation, 2001. All rights reserved.

Uso de la cláusula WITH CHECK OPTION


Es posible realizar comprobaciones de integridad referencial a través de una vista. También puede
hacer cumplir las restricciones a nivel de base de datos. La vista se puede utilizar para proteger la
integridad de datos, pero el uso es muy limitado.
La cláusula CHECK OPTION CON especifica que las inserciones y actualizaciones realizadas a través
de la vista no se pueden crear filas que en la vista no se muestran, por otro lado permite a las
restricciones de integridad y comprobaciones de validación de datos sean aplicados en los datos que
se insertan o actualizan.
Si hay un intento de realizar operaciones de DML en filas que la vista no se ha seleccionado, se
muestra un error, con el nombre de restricción, si que se ha especificado.
UPDATE empvu20
SET department_id = 10
WHERE employee_id = 201;
UPDATE empvu20
*
ERROR at line 1:
ORA-01402: view WITH CHECK OPTION where-clause violation

Nota: No hay filas que actualizar ya que si el número de departamento cambiara a 10, la vista ya no
sería capaz de ver que los empleados. Por lo tanto, con la cláusula CHECK OPTION CON, la vista se

Introduction to Oracle9i: SQL 11-17


puede ver sólo los empleados en el departamento 20 y no permitir que el número de
departamento para aquellos empleados a cambiar a través de la vista.

Introduction to Oracle9i: SQL 11-‹Nº›


Negación de operaciones DML

• Puede asegurarse de que no hay operaciones DML


se hace mediante la adición de WITH READ ONLY
a su definición de la vista.
• Cualquier intento de realizar un DML en cualquier
fila dara un error en el servidor Oracle.

11-18 Copyright © Oracle Corporation, 2001. All rights reserved.

Negar operaciones DML


Para asegurarse de que no hay operaciones DML se coloca la opción WITH READ ONLY . El
ejemplo de la diapositiva modifica la vista EMPVU10 para evitar cualquier operación DML en la
vista.

Instructor Note (for pages 11-17)


Si el usuario no proporciona un nombre de restricción, el sistema asigna un nombre en forma
SYS_Cn, donde n es un entero que hace que el nombre de restricción único dentro del sistema.

Introduction to Oracle9i: SQL 11-18


Negacion de operaciones DML

CREATE OR REPLACE VIEW empvu10


(employee_number, employee_name, job_title)
AS SELECT employee_id, last_name, job_id
FROM employees
WHERE department_id = 10
WITH READ ONLY;
View created.

11-19 Copyright © Oracle Corporation, 2001. All rights reserved.

Negacion de operaciones DML

Cualquier intento de eliminar una fila de una visión con los resultados de sólo lectura de
restricción en un error.

DELETE FROM empvu10


WHERE employee_number = 200;
DELETE FROM empvu10
*
ERROR at line 1:
ORA-01752: cannot delete from view without exactly one key-
preserved table
Any attempt to insert a row or modify a row using the view with a read-only constraint results in Oracle
server error:
01733: virtual column not allowed here.

Introduction to Oracle9i: SQL 11-19


Eliminacion de una Vista

Puede eliminar una vista sin perder los datos debido


a que una opinión se basa en tablas subyacentes en
la base de datos.

DROP VIEW view;

DROP VIEW empvu80;


View dropped.

11-20 Copyright © Oracle Corporation, 2001. All rights reserved.

Removing a View

Utilice la sentencia DROP VIEW para eliminar una vista. La declaración elimina la definición
de la vista de la base de datos. Borrar la vista no tiene efecto en las tablas en las que se basó
la vista.

Vistas u otras aplicaciones basadas en visitas eliminadas dejan de ser válidas. Sólo el
creador o un usuario con el privilegio DROP ANY VISTA pueden eliminar una vista.

En la sintaxis:

view es el nombre de la vista.

Introduction to Oracle9i: SQL 11-20


Subquery como tablas o vistas en linea

• Un subquery utilizado a manera de tabla con un


alias se puede utilizar dentro de una sentencia de
SQL.

• Este tipo de sbcondulta no es realmente un objeto


de esquema.

11-21 Copyright © Oracle Corporation, 2001. All rights reserved.

Inline Views

Un subquery que se coloca como tabla es la colocación de una subconsulta en la cláusula


FROM y esta subconsulta tiene un alias.

La subconsulta define un origen de datos que se puede hacer referencia en la


consulta principal. En el siguiente ejemplo, la vista en línea b devuelve los detalles de todos
los números de departamento y el salario máximo para cada departamento de la tabla
EMPLOYEES donde a.department_id = b.department_id Y a.salary <b.maxsal

La consulta principal muestra nombres de empleados, salarios, números de departamento y los


sueldos máximos para todos los empleados que ganan menos que el salario máximo en su
departamento.


Introduction to Oracle9i: SQL 11-21
SELECT a.last_name, a.salary, a.department_id, b.maxsal
FROM employees a, (SELECT department_id, max(salary)
maxsal
FROM employees
GROUP BY department_id) b
WHERE a.department_id = b.department_id
AND a.salary < b.maxsal;

Introduction to Oracle9i: SQL 11-‹Nº›


Analisis “Top-N”

• Consultas Top-N piden los valores N más grandes


o más pequeños de una columna.
• Por ejemplo:
– ¿Cuáles son los diez productos más vendidos?
– ¿Cuáles son las diez peores productos de
venta?
• Ambos valores más grandes y más pequeños se
consideran consultas Top-N.

11-22 Copyright © Oracle Corporation, 2001. All rights reserved.

Analisis “Top-N”
Consultas Top-N son útiles en escenarios donde la necesidad es mostrar sólo los top N de
los registros.

Este conjunto de resultados se puede utilizar para su posterior análisis. Por ejemplo,
utilizando el análisis de Top-N puede realizar los siguientes tipos de consultas:
• Los tres que más ganan en la empresa
• Los cuatro reclutas más recientes en la empresa
• Los dos mejores representantes de ventas que han vendido el número máximo de productos
• Los tres principales productos que han tenido las ventas máximas en los últimos seis meses

Instructor Note
La capacidad de incluir la cláusula ORDER BY en una subconsulta hace que el análisis Top-N sea
posible.

Introduction to Oracle9i: SQL 11-22


Analisis del Top-N
La estructura de un análisis top-N :

SELECT [column_list], ROWNUM


FROM (SELECT [column_list]
FROM table
ORDER BY Top-N_column)
WHERE ROWNUM <= N;

11-23 Copyright © Oracle Corporation, 2001. All rights reserved.

Performing “Top-N” Analysis


Consultas Top-N utilizan una estructura de consulta anidada en consonancia con los elementos
descritos a continuación:

Una subconsulta o una vista en línea para generar la lista ordenada de los datos.

La subconsulta o la vista en línea incluye la cláusula ORDER BY para asegurar que la


clasificación está en el orden deseado.

Para obtener resultados recuperar los valores más grandes, se necesita un parámetro DESC.

Una consulta externa para limitar el número de filas del conjunto de resultados final.

Introduction to Oracle9i: SQL 11-23


La consulta externa incluye los siguientes componentes:

•El pseudocolumna ROWNUM, que asigna un valor secuencial comenzando con 1 para
cada una de las filas devueltas por la subconsulta.
•Una cláusula WHERE, que especifica las n filas a devolver. El exterior cláusula WHERE
debe utilizar un <o <= operador.

Introduction to Oracle9i: SQL 11-‹Nº›


Ejmplo de un analisisTop-N

Mostrar los nombres de los primeros tres empleados


que ganan mas
1 2 3

SELECT ROWNUM as RANK, last_name, salary


FROM (SELECT last_name,salary FROM employees
ORDER BY salary DESC)
WHERE ROWNUM <= 3;

1 2 3

11-24 Copyright © Oracle Corporation, 2001. All rights reserved.

Example of “Top-N” Analysis


El ejemplo de la diapositiva ilustra cómo mostrar los nombres y salarios de los tres que más ganan de
la tabla EMPLEADOS.
La subconsulta devuelve los detalles de todos los nombres y salarios de los empleados de la tabla
EMPLEADOS, ordenados en el orden descendente de los salarios.
El where ROWNUM <3 se asegura de que sólo se muestran los primeros tres registros de este
conjunto de resultados.
El siguiente ejemplo utiliza la subconsulta para mostrar los cuatro empleados de más alto rango en la
empresa.
SELECT ROWNUM as SENIOR,E.last_name, E.hire_date
FROM (SELECT last_name,hire_date FROM employees
ORDER BY hire_date)E
WHERE rownum <= 4;

Introduction to Oracle9i: SQL 11-24


Resumen

En esta lección, debe haber aprendido que un punto


de vista es derivada de los datos de otras tablas o
vistas y proporciona las siguientes ventajas:
• Restringe el acceso de base de datos
• simplifica consultas
• Proporciona independencia de datosendence
• Proporciona varias vistas de los mismos datos
• Se puede eliminar sin quitar los datos
subyacentes
• Una vista en línea es una subconsulta con un
alias.
• Análisis Top-N se puede hacer usando
subconsultas y consultas externas.

11-25 Copyright © Oracle Corporation, 2001. All rights reserved.

¿Qué es una Vista?


Un punto de vista se basa en una tabla u otro punto de vista y actúa como una ventana a través de la
cual los datos en las tablas se pueden ver o modificar. Una vista no contiene datos. La definición de la
vista se almacena en el diccionario de datos. Usted puede ver la definición de la vista en la tabla
diccionario de datos USER_VIEWS.
Ventajas de las Vistas
• Restringir el acceso de base de datos
• Simplifique consultas
• Proporcionar independencia de datos
• Proporcionar múltiples vistas de los mismos datos
• Se puede quitar sin afectar a los datos subyacentes
Opciones de Vistas
• Puede ser un punto de vista sencillo, basado en una tabla
• Puede ser una visión compleja basada en más de una tabla o puede contener grupos de
funciones
• Puede sustituir a otros puntos de vista con el mismo nombre
• Puede contener una restricción de comprobación

Introduction to Oracle9i: SQL 11-25


• De sólo lectura Puede ser

Introduction to Oracle9i: SQL 11-‹Nº›


Practice 11 Overview

Esta práctica se abordan los siguientes temas:


• Creación de una vista simple
• Creación de una visión compleja
• Creación de una vista con una restricción de
comprobación
• El intento de modificar los datos en la vista
• Viendo definiciones de vista
• Eliminar vistas

11-26 Copyright © Oracle Corporation, 2001. All rights reserved.

Practice 11 Overview
In this practice, you create simple and complex views and attempt to perform DML statements on the
views.

Introduction to Oracle9i: SQL 11-26


Practice 11
1. Create a view called EMPLOYEES_VU based on the employee numbers, employee names, and
department numbers from the EMPLOYEES table. Change the heading for the employee name to
EMPLOYEE.
2. Display the contents of the EMPLOYEES_VU view.

3. Select the view name and text from the USER_VIEWS data dictionary view.
Note: Another view already exists. The EMP_DETAILS_VIEW was created as part of your
schema.
Note: To see more contents of a LONG column, use the iSQL*Plus command SET LONG n,
where n is the value of the number of characters of the LONG column that you want to see.

4. Using your EMPLOYEES_VU view, enter a query to display all employee names and department
numbers.

Introduction to Oracle9i: SQL 11-27


Practice 11 (continued)
5. Create a view named DEPT50 that contains the employee numbers, employee last names, and
department numbers for all employees in department 50. Label the view columns
EMPNO, EMPLOYEE, and DEPTNO. Do not allow an employee to be reassigned to another
department through the view.
6. Display the structure and contents of the DEPT50 view.

7. Attempt to reassign Matos to department 80.


If you have time, complete the following exercise:
8. Create a view called SALARY_VU based on the employee last names, department names,
salaries, and salary grades for all employees. Use the EMPLOYEES, DEPARTMENTS, and
JOB_GRADES tables. Label the columns Employee, Department, Salary, and Grade,
respectively.

Introduction to Oracle9i: SQL 11-28

También podría gustarte