oracle sep 04 vistas,indices y secuencias
TRANSCRIPT
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
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
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;
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';