oracle sep 04 vistas,indices y secuencias

4
UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRION FACULTAD DE INGENIERIA INDUSTRIAL, SISTEMAS E INFORMATICA ESCUELA ACADEMICO PROFESIONAL DE INGENIERIA INFORMATICA CURSO ADMINISTRACION DE BASE DE DATOS SEPARATA Nº 04 VISTAS, INDICES Y SECUENCIAS DOCENTE ING. CIP EDWIN IVAN FARRO PACIFICO HUACHO-LIMA PERU

Upload: jean-pierre-quispe

Post on 19-Jan-2016

47 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Oracle Sep 04 Vistas,Indices y Secuencias

UNIVERSIDAD NACIONALJOSE FAUSTINO SANCHEZ CARRION

FACULTAD DE INGENIERIA INDUSTRIAL,SISTEMAS E INFORMATICA

ESCUELA ACADEMICO PROFESIONAL DEINGENIERIA INFORMATICA

CURSOADMINISTRACION DE BASE DE DATOS

SEPARATA Nº 04VISTAS, INDICES Y SECUENCIAS

DOCENTEING. CIP EDWIN IVAN FARRO PACIFICO

HUACHO-LIMAPERU

Page 2: Oracle Sep 04 Vistas,Indices y Secuencias

Universidad Nacional José Faustino Sánchez Carrión Ing. CIP Edwin Iván Farro Pacífico

Ing.CIP Edwin Iván Farro Pacífico Pag 2

VISTAS

Una vista es una representación lógica de una o más tablas. Una vista no contiene datos. Todos losdatos son derivados de una o más tablas subyacentes.

EjercicioCrear una vista que visualice los empleados del departamento 10

SQL> create or replace view emp102 as3 select empno,ename,deptno4 from emp5 where deptno=10;

SQL> select * from emp10;

EjercicioInsertar el siguiente registro

SQL> insert into emp102 values (899,'SALAS',10);

EjercicioCrear una vista que visualice a los empelados que son analistas.

SQL> create or replace view v_analistas2 as3 (select empno,ename,job,hiredate,sal4 from emp5 where job='ANALYST');

EjercicioBorrar una vistaSQL> drop view v_analistas;

CLAUSULA WITH CHECK OPTIONEjercicioNos asegura que los INSERT’s Y UPDATE’s ejecutados a través de la vista no afecten los datos alos que la vista no tiene permitido seleccionar.

EjercicioCrear una vista que tenga las columnas: empno, ename, job, hiredate y sal sólo de analistas(ANALYST) utilizando la cláusula WITH CHECK OPTION.

EjercicioSQL> create or replace view v_analistas

2 as3 (select empno,ename,job,hiredate,sal4 from emp

Page 3: Oracle Sep 04 Vistas,Indices y Secuencias

Universidad Nacional José Faustino Sánchez Carrión Ing. CIP Edwin Iván Farro Pacífico

Ing.CIP Edwin Iván Farro Pacífico Pag 3

5 where job='ANALYST')6 with check option;

Verificando la creación de la restricción:SQL> insert into v_analistas

2 values (8888,'ROCIO','ABOGADA',sysdate,2000);insert into v_analistas

*ERROR en línea 1:ORA-01402: violación de la cláusula WHERE en la vista WITH CHECK OPTION

SECUENCIAUna secuencia es un objeto que permite obtener número único que sigue una determinadaformación.Sintaxis:

CREATE SEQUENCE nombre_secuencia Opciones;

Ejemplo:Crear una secuencia para generar el número de departamento, la cual empiece en 84 y seincremente de 2 en dos hasta llegar a 99

SQL> CREATE SEQUENCE xdeptno2 INCREMENT BY 23 START WITH 844 MAXVALUE 985 NOCYCLE6 NOCACHE;

Secuencia creada.

SQL> select sequence_name,min_value,max_value,increment_by,last_number2 from user_sequences;

Last_number guarda el siguiente valor que se va a generar.

Visualizalizar el valor actual.

SQL> select xdeptno.currval2 from dual;

select xdeptno.currval*

ERROR en línea 1:ORA-08002: la secuencia XDEPTNO.CURRVAL todavía no se ha definido en estaSesión

Entonces generamos el primer valor:SQL> SELECT xdeptno.NEXTVAL

2 FROM dual;

Page 4: Oracle Sep 04 Vistas,Indices y Secuencias

Universidad Nacional José Faustino Sánchez Carrión Ing. CIP Edwin Iván Farro Pacífico

Ing.CIP Edwin Iván Farro Pacífico Pag 4

Luego mostrar:SQL> select xdeptno.currval

2 from dual;

EjercicioAgregar el registro de Administración y Proyectos

SQL> INSERT INTO DEPT(deptno,dname)2 VALUES (xdeptno.nextval,'ADMINSITRACION');

SQL> INSERT INTO DEPT(deptno,dname)2 VALUES (xdeptno.nextval,'PROYECTOS');

MODIFICAR SECUENCIAEjercicioQue la secuencia aumente de 3 en 3

SQL> ALTER SEQUENCE xdeptno2 INCREMENT BY 33 MAXVALUE 984 NOCYCLE5 NOCACHE;

EjercicioAgregar el registro Contabilidad

SQL> INSERT INTO DEPT(deptno,dname)2 VALUES (xdeptno.nextval,'CONTABILIDAD');

Eliminar SecuenciaEjercicioEliminar la secuencia xdeptno.

SQL> DROP SEQUENCE xdeptno;

INDICESLos índices son estructuras opcionales asociadas a las tablas, empleados para acelerar la ejecuciónde consultas o garantizar la existencia de una única fila específica.

EjercicioCrear un íncide en el campo dname de la tabla Dep..

SQL> CREATE INDEX i_dname2 ON dept(dname);

Verificando La existencia de los indices.SQL> select a.index_name,a.column_name

2 FROM user_indexes b,user_ind_columns a3 WHERE a.index_name=b.index_name AND4 a.table_name='DEPT';