FACULTAD DE INGENIERIA ESCUELA ACADEMICO PROFESIONAL DE INGENIERIA INFORMATICA CURSO ADMINISTRACION DE BASE DE DATOS CON ORACLE 9i SEPARATA N 03 LENGUAJE DE MANIPULACION DE DATOS Y TRANSACCIONES DOCENTE ING. CIP EDWIN IVAN FARRO PACIFICO HUACHO-LIMA PERU Universidad Nacional Jos Faustino Snchez Carrin Ing. CIP Edwin Ivn Farro Pacfico Ing. CIP Edwin Ivn Farro Pacfico Pag 2 LENGUAJE DE MANIPULACION DE DATOS INSERT Con la sentencia INSERT se inserta una fila o una tabla Sintaxis: INSERT INTO tabla (campo1,campo2, campon) VALUES (dato1,dato2,daton) A continuacin veremos las formas de insert: Ejemplo 1 SQL> INSERT INTO dept(deptno,dname,loc) 2 VALUES(50,'VENTAS','HUACHO') Ejemplo 2 SQL> INSERT INTO dept(deptno,dname) 2 VALUES(60,'COMPRAS') Ejemplo 3 SQL> INSERT INTO dept 2 VALUES(70,'ALMACEN','LIMA') UPDATE Permite actualizar los datos de una tabla. Sintaxis: UPDATE tala SET campo1=valor1,campo2=valor2,campo3=valor3 WHERE condicin Agregar los siguientes registros a la tabla emp empno ename job mgr hiredate sal comm detno 7940 ANA VENDEDOR 7941 10/05/02 1000 50 7941 JUANA SUPERVIS 11/12/02 1400 200 50 7942 MAYRA VENDEDOR 7941 10/02/03 1000 50 7943 PATRICIA VENDEDOR 7941 16/08/03 1000 150 50 SQL>INSERT INTO emp VALUES (7940,ANA,VENDEDOR,7941,TO_DATE(10-05-2002,DD/MM/YYYY),1000,,50 Ejercicio 4 Actualizar el sueldo de Juana a 1600 SQL>UPDATE emp SET sal=1600 WHERE empno='7943'; Universidad Nacional Jos Faustino Snchez Carrin Ing. CIP Edwin Ivn Farro Pacfico Ing. CIP Edwin Ivn Farro Pacfico Pag 3 Ejercicio 5 Actualizar el sueldo de los vendedores a 1150 SQL> UPDATE emp SET sal=1150 WHERE job='VENDEDOR'; Ejercicio 6 Generar un sueldo promedio a los empleados del departamento 50 SQL> UPDATE emp SET sal=(SELECT AVG(SAL) FROM EMP) WHERE deptno=50 DELETE Permite eliminar registros Ejercicio 7 Eliminar a la vcendedora Patricia SQL> DELETE FROM emp WHERE empno=7943; Ejercicio 8 Eliminar los empleados del departamento de ventas. SQL> DELETE FROM emp WHERE deptNO=(SELECT deptno FROM dept WHERE dname='VENTAS'); TRANSACCIONES Una transaccin es una serie de ordenes SQL que se completan o fallan como una unidad. Son un componente estndar de la base de datos y sirven para evitar las inconsistencias de los datos. Una transaccin comienza al iniciar una sesin Oracle o al final de una transaccin previa. Termina con la orden COMMIT o ROLLBACK. COMMIT Hace permanentes los cambios en la base de datos. Un commit puede ser explcito o implcito o automatico. Commit explcito Debe digitarse el comando COMMIT para que los cambios se hagan permanentes. Ejemplo 9 Insertar los siguientes registros a la tabla emp Universidad Nacional Jos Faustino Snchez Carrin Ing. CIP Edwin Ivn Farro Pacfico Ing. CIP Edwin Ivn Farro Pacfico Pag 4 empno ename job mgr hiredate sal comm Detno 7940 ANA VENDEDOR 7941 10/05/02 1000 50 7941 JUANA SUPERVIS 11/12/02 1400 200 50 7942 MAYRA VENDEDOR 7941 10/02/03 1000 50 7943 PATRICIA VENDEDOR 7941 16/08/03 1000 150 50 Luego digite lo siguiente: SQL>COMMIIT; Validacin terminada Commit Implcito Existen comandos con los cuales se realiza un COMMIT sin ser digitado explcitamente. ALTER AUDIT COMMENT CONNECT CREATE DISCONECT DROP EXIT GRANT NOAUDIT QUIT REVOKE RENAME Commit Automtico Los cambios tiene efecto inmediatamente de un INSERT, UPDATE o DELETE si el AUTOCOMMINT se encuentra habilitado. Para dehabilitrar el AUTOCOMMIT se utiliza el comando SET del SQL Plus. SQL>SET AUTOCOMMIT OFF ROLLBACK Deshace todos los cambios pendientes, regresando al estado en el que estaba antes de la actualizacin (Update), insercin (Insert) o borrados (Delete) iniciados por el usuario. Ejemplo 10 Borrar el registro de la vendedora ANA SQL> DELETE FROM emp WHERE empno=7940 ; SQL>ROLLBACK; Rollback terminado. SAVEPOINT Marca un punto de una transaccin particular en el cual se desea hacer un ROLLBACK parcial para una transaccin. Universidad Nacional Jos Faustino Snchez Carrin Ing. CIP Edwin Ivn Farro Pacfico Ing. CIP Edwin Ivn Farro Pacfico Pag 5 Ejemplo 11 Insertar el departamento MARKETING en Trujillo a la tabla Dep. y cree un savepoint para la transaccin. SQL> INSERT INTO dept VALUES(80,'MARKETING','TRUJILLO'); SQL>SAVEPOINT A; Punto de grabacin creado. SQL> INSERT INTO dept VALUES(90,'CONTABILIDAD','ICA'); SQL>SAVEPOINT B; Punto de grabacin creado. Cambiaremos la ubicacin del departamento a AMAZONAS SQL> UPDATE dept SET loc='AMAZONAS' WHERE deptno=90; SQL>ROLLBACK TO B;