Documentos de Académico
Documentos de Profesional
Documentos de Cultura
7
Instrucciones SQL para
Manipulación de Datos
• Para manipular datos, se usan las siguientes
instrucciones:
– INSERT
– UPDATE
– DELETE
– MERGE
– TRUNCATE (DDL)
¿Y SELECT que hace?
8
Instrucciones DML
Tipo Descripción
INSERT Permite agregar filas (registros) a una tabla.
UPDATE Actualiza datos de una o varias filas en una tabla.
DELETE Elimina registros de una tabla.
Puede realizar acciones de INSERT, UPDATE,
MERGE
DELETE o varias de ellas combinadas.
Permite eliminar todos los registros de una tabla.
TRUNCATE Es una instrucción DDL (Data Definition Language)
por lo no que no puede revertirse.
9
Errores posibles al ejecutar
instrucciones DML
• Errores de sintaxis.
• Referencias a objetos o columnas que no
existen.
• Permisos de acceso.
• Violaciones de restricción (constraint).
• Problemas de espacio.
10
Transacciones
11
Transacciones de Control
12
Prueba ACID
15
Fin Implícito de una
transacción
Acción Resultado
Invocar una instrucción DDL (Data
Definition Language, CREATE-ALTER-
COMMIT
DROP) o DCL (Data Control Language
GRANT-REVOKE).
Finalizar la herramienta de usuario
Según la herramienta
(SQL*Plus o SQL Developer.
Cuando la sesión del cliente “muere”. ROLLBACK
ROLLBACK cuando se
Cuando el sistema se interrumpe.
restaura la BD.
16
Fin Implícito en
Herramientas Oracle
• Ambas herramientas terminan por defecto
con un ROLLBACK (la transacción debe
terminarse explícitamente).
• SQL*Plus: Se puede cambiar ejecutando:
– SET AUTOCOMMIT ON
– SET AUTOCOMMIT OFF (predeterminado)
• SQL Developer: En el menú Tools >
Preferences, expandir Database, luego
Advanced y activar la cassila Autocommit.
17
Insertar Filas (INSERT)
18
INSERT
• Sintaxis:
INSERT INTO tabla [(columna [,columna…])]
VALUES (valor [,valor…]);
• Se debe tener en cuenta las restricciones de las
columnas.
DESC HR.regions
21
Funciones en INSERT
INSERT INTO emp_copy (employee_id, last_name,
hire_date, email, job_id)
VALUES (1000,'WATSON','03-Nov-13',
'jwatson@hr.com', 'SA_REP');
• Sintaxis:
INSERT INTO table [ (columna [, columna…] ) ]
sub-consulta;
• Ejemplo:
INSERT INTO regions_copy
SELECT * FROM HR.regions;
• Se asume que la tabla regions_copy existe
para el usuario actual con la misma estructura
que HR.regions.
23
Actualizar Filas (UPDATE)
24
UPDATE
• Sintaxis:
UPDATE table
SET columna=valor [,columna=valor…]
[WHERE condición];
25
Ejemplos de UPDATE
UPDATE HR.employees
SET salary=10000
WHERE employee_id=206;
UPDATE HR.employees
SET salary=salary*1.1
WHERE last_name='Cambrault';
26
UPDATE con sub-consultas
UPDATE HR.employees
SET salary=salary*1.1
WHERE department_id IN
(SELECT department_id FROM HR.departments
WHERE department_name LIKE '%IT%');
27
UPDATE con sub-consultas
UPDATE HR.employees
SET department_id=80, commission_pct=
(SELECT min(commission_pct)
FROM HR.employees
WHERE department_id=80)
WHERE employee_id=206;
28
• Verificar ACTUALIZACIÓN:
29
Eliminar Filas (DELETE, TRUNCATE)
30
DELETE
• Sintaxis:
DELETE FROM tabla
[WHERE condición];
31
Ejemplos de DELETE
33
MERGE
34
35
Ejemplo de MERGE
MERGE INTO HR.employees e
USING HR.new_employees n
ON (e.employee_id = n.employee_id)
WHEN MATCHED THEN
UPDATE SET e.salary=n.salary
WHEN NOT MATCHED THEN
INSERT (employee_id, last_name, salary,
email, job_id)
VALUES (n.employee_id, n.last_name,
n.salary, n.email, n.job_id);
36
RESUMEN
37
38
Referencias
• Techonthenet-https://www.techonthenet.com/sql/
39
40
41