Está en la página 1de 23

Unidad II

Instrucciones
DML

M.I.T.C. Carlos Sandoval Medina 1


DML
DML nos permite manejar la información que
se encuentra contenida en las tablas
relacionales y en las vistas de la base de
datos.

Las principales operaciones que haremos con los datos son:

• Añadir información (una nueva fila), comando INSERT


• Borrar información (eliminar una o varias filas), comando DELETE
• Actualizar información (modificar una o varias filas), comando UPDATE
• Seleccionar información (consultar una o varias filas), comando SELECT

M.I.T.C. Carlos Sandoval Medina 2


INSERT: agregar registros
Sintaxis básica:
INSERT INTO nombre_tabla [(columna1[,…])] VALUES (valor1[, …])

• Se escribe la lista de nombres de las columnas de la tabla entre paréntesis


• Si se omite algún nombre de columna al hacer el INSERT el valor quedará como NULL
• VALUES se ponen los valores para cada una de las columnas definidas en la lista separados por
comas
• Si se omitió la lista de nombres de columnas entonces se tienen que poner los valores tal y como
se encuentren definidos los campos de la tabla (en el mismo orden y la misma cantidad, si no se
tiene valor para una columna explícitamente deberá ponerse la palabra clave NULL)
• Si no se respetan las restricciones de integridad, entonces la fila no podrá agregarse.

M.I.T.C. Carlos Sandoval Medina 3


Como poner los valores
• Las cadenas de caracteres se encierran entre apostrofes, ejemplo: ‘José’,
‘Informática Aplicada’, ‘Sección 15’
• Los números se escriben sin ningún carácter que los encierre, por ejemplo 2,
5.92, 9e10
• Las fechas se encierran entre apostrofes, o bien, se usa la función TO_DATE:
TO_DATE(‘03/09/2014’,’DD/MM/YYYY’)
• Si queremos añadir una fecha y una hora entonces usamos TO_CHAR:
TO_CHAR(‘03/09/2014 10:30AM’, ‘DD/MM/YYYY hh:mi:ss’)
• Para poner en un campo la fecha actual del sistema utilizamos en lugar de valor
la palabra clave SYSDATE
• Para poner en un campo la clave del usuario se utiliza la palabra clave USER
• Para poner un valor nulo se utiliza la palabra clave NULL
M.I.T.C. Carlos Sandoval Medina 4
Ejemplos
• Sin especificar columnas
INSERT INTO clientes VALUES (‘Eugenio’, ‘Av. Tecnológico’, 14, ‘4422274400’)

• Especificando columnas
INSERT INTO clientes (nombre_cliente, calle_cliente, ciudad_cliente, telefono)
VALUES (‘Guillermo’, ‘Escobedo’, 14, ‘4422274605’)

• Omitiendo columnas
INSERT INTO clientes (nombre_cliente, ciudad_cliente) VALUES (‘Leonardo’, 14)

M.I.T.C. Carlos Sandoval Medina 5


Insertar valores especiales
En Oracle existe una variable especial llamada SYSDATE que contiene la
fecha y hora actual.

INSERT INTO depositos (nombre_cliente, nombre_sucursal, monto, fecha)


VALUES (‘Eugenio’, ‘Alamos’, 100, SYSDATE)

INSERT INTO alumnos (id_alumno, nombre_alumno, sexo, pais_nacimiento, fecha_nacimiento, carrera)


VALUES (15, ‘Eugenio’, ‘M’, ‘México’, TO_DATE(‘FEB 3, 97’, ‘MON DD, YY’), 1000)

M.I.T.C. Carlos Sandoval Medina 6


Insertar filas a partir de una
consulta

INSERT INTO nombre_tabla [(columna1[,…])] {SELECT consulta}

M.I.T.C. Carlos Sandoval Medina 7


Ejemplo

INSERT INTO inscripciones (id_alumno, nombre, fecha_inscripcion, edad)


SELECT id_alumno, nombre, fecha_inscripcion, edad FROM
inscripciones_anteriores;

M.I.T.C. Carlos Sandoval Medina 8


Insertar múltiples registros

INSERT ALL
INTO nombre_tabla VALUES (valor1, valor2,…, valorn)
.
.
.
SELECT * FROM dual

M.I.T.C. Carlos Sandoval Medina 9


Insertar múltiples registros:
Ejemplo
INSERT ALL
INTO REPVENTAS VALUES (105,'Bill Adams',37,13,'Rep Ventas','12-02-88',104,350000.00,367911.00)
INTO REPVENTAS VALUES (109,'Mary Jones',31,11,'Rep Ventas','12-OCT-99',101,30000.00,392925.00)
SELECT * FROM dual

M.I.T.C. Carlos Sandoval Medina 10


DELETE
Sintaxis básica:
DELETE [FROM] nombre_tabla [WHERE condición];

La condición nos permite restringir las filas que queremos borrar, si


omitimos la condición entonces se borran todas las filas.

M.I.T.C. Carlos Sandoval Medina 11


Ejemplo borrado de filas en una
tabla
• Borrar todas las filas en las que la edad del alumno sea mayor a 25:

• DELETE FROM inscripciones WHERE edad >25;

M.I.T.C. Carlos Sandoval Medina 12


UPDATE
Sintaxis básica:
UPDATE nombre_tabla SET columna1 = valor1 [, columna2 = valor2 …]
WHERE condición;

• Después de SET vamos a poner que valor se le asigna a una


determinada columna, las columnas que no especifiquemos no
modifican su valor
• La condición nos permite seleccionar que filas vamos a modificar, si
no especificamos la condición entonces todas las filas de la tabla se
modifican.

M.I.T.C. Carlos Sandoval Medina 13


Ejemplos UPDATE

UPDATE inscripciones SET edad = 22 WHERE id_alumno = ‘a0000001’;

UPDATE alumnos SET faltas = 0, calificación = 8 WHERE id=‘909001’;

M.I.T.C. Carlos Sandoval Medina 14


Transacciones (Transaction Control Language, TCL)
• Una transacción es un conjunto de movimientos (cambios) que se hacen una o varias tablas los
cuales deben realizarse todos en conjunto o no realizarse
• Cada cambio que se hace en los datos de la tabla es temporal hasta que demos COMMIT,
entonces todos los cambios que hayamos hecho en la transacción se efectúan y se vuelven
permanentes
• Si yo quiero que los movimientos que hice no se efectúen entonces uso el comando ROLLBACK y
todo los movimientos hasta el último COMMIT se deshacen.
• Para términos prácticos una transacción comienza al principio de la sesión o al haber terminado
otra transacción. Una transacción termina con un COMMIT o con un ROLLBACK
• Yo puedo establecer un punto de seguridad dentro de una transacción con el comando
SAVEPOINT, simplemente pongo: SAVEPOINT nombre
• Puedo especificar que solo se deshagan los movimientos que realicé hasta un SAVEPOINT
poniendo después del comando ROLLBACK el nombre del punto de seguridad, de la siguiente
forma: ROLLBACK TO SAVEPOINT nombre
• Hay un COMMIT automático cuando se usan comandos DDL, DCL o se sale del SQL*Plus dando
exit
• Hay un ROLLBACK automático cuando salgo de manera anormal del SQL*Plus o hay alguna falla
en el sistema (por ejemplo, se fue la luz)
M.I.T.C. Carlos Sandoval Medina 15
Ejemplos commit, savepoint y rollback

T1 (definitiva)
C1 C2
Insert into t1 values (‘A’,1); X 20
Insert into t1 values (‘B’,2); Y 21
commit;
T1 (caché) T1 (definitiva)
commit
C1 C2 C1 C2
A 1 + X 20
B 2 + Y 21
A 1
B 2
Ejemplos commit, savepoint y rollback

T1 (definitiva)
C1 C2
X 20
Y 21

Insert into t1 values (‘A’,1); T1 (caché) rollback T1 (caché)


Insert into t1 values (‘B’,2);
C1 C2 C1 C2
rollback;
commit; A 1 +
B 2 +
T1 (definitiva)
C1 C2
X 20 commit
Y 21
Ejemplos commit, savepoint y rollback
T1 (caché)
Insert into t1 values (‘A’,1); T1 (definitiva) C1 C2
Insert into t1 values (‘B’,2); C1 C2 A 1 +
savepoint Uno;
Insert into t1 values (‘C’,3); X 20 B 2 +
Insert into t1 values (‘D’,4); Y 21 Uno
rollback Uno;
C 3 +
commit;
D 4 +
rollback uno
T1 (definitiva)
C1 C2
T1 (caché)
commit X 20
C1 C2
Y 21
A 1 + A 1
B 2 + B 2
Ejemplos commit, savepoint y
rollback C1
T1 (caché)
C2
A 1 +
T1 (definitiva) B 2 +
Insert into t1 values (‘A’,1); C1 C2 Uno
Insert into t1 values (‘B’,2);
X 20 C 3 +
savepoint Uno;
Insert into t1 values (‘C’,3); Y 21 D 4 +
Insert into t1 values (‘D’,4); Dos
savepoint Dos;
E 5 +
Insert into t1 values (‘E’,5);
Insert into t1 values (‘F’,6); F 6
rollback Uno; rollback Uno
T1 (definitiva)
commit; C1 C2
T1 (caché)
X 20
C1 C2
commit Y 21
A 1 + A 1
B 2 + B 2
Ejemplos commit, savepoint T1y(caché)
rollback C1 C2
A 1 +
B 2 +
T1 (definitiva) Uno
Insert into t1 values (‘A’,1); C 3 +
C1 C2
Insert into t1 values (‘B’,2); D 4 +
savepoint Uno; X 20 Dos
Insert into t1 values (‘C’,3); Y 21 E 5 +
Insert into t1 values (‘D’,4); F 6
savepoint Dos; rollback Dos
Insert into t1 values (‘E’,5); T1 (definitiva)
Insert into t1 values (‘F’,6); T1 (caché) C1 C2
rollback Dos; C1 C2 X 20
commit;
A 1 + Y 21
B 2 + A 1
commit B 2
Uno
C 3 + C 3
D 4 + D 4
Ejemplos commit, savepoint T1y(caché)
rollback C1 C2
A 1 +
B 2 +
T1 (definitiva) Uno
Insert into t1 values (‘A’,1); C 3 +
C1 C2
Insert into t1 values (‘B’,2); D 4 +
savepoint Uno; X 20 Dos
Insert into t1 values (‘C’,3); Y 21 E 5 +
Insert into t1 values (‘D’,4); F 6
savepoint Dos; rollback
Insert into t1 values (‘E’,5);
Insert into t1 values (‘F’,6); T1 (caché) T1 (definitiva)
rollback;
commit; C1 C2 C1 C2
commit
X 20
Y 21
Ejemplos commit, savepoint T1y(caché)
rollback C1 C2
A 1 +
B 2 +
T1 (definitiva) Uno
Insert into t1 values (‘A’,1); C 3 +
C1 C2
Insert into t1 values (‘B’,2); D 4 +
savepoint Uno; X 20 Dos
Insert into t1 values (‘C’,3); Y 21 E 5 +
Insert into t1 values (‘D’,4); F 6
savepoint Dos; rollback
Insert into t1 values (‘E’,5);
Insert into t1 values (‘F’,6); T1 (caché) T1 (definitiva)
rollback;
Insert into t1 values(‘G’,7); C1 C2 C1 C2
commit; commit
G 7 + X 20
Y 21
G 7
Final de la presentación de investigación
M.I.T.C. Carlos Sandoval Medina 23

También podría gustarte