You are on page 1of 11

UNIVERSIDAD NACIONAL

AUTÓNOMA DE MÉXICO
FACULTAD DE INGENIERÍA
Bases de datos

Práctica 6:
Data Manipulation Language (DML)

Alumno:Guillermo Pérez Villarreal

Profesor:Ing. Jorge Alberto Rodríguez Campos

Semestre:2015-2
Fecha de entrega: 19 de mayo del 2015
Introducción:
Para poder darle un uso a una base de datos es necesario saber como insertar datos a la base ya
que es ña transacción más importante, si no se inserta ningún dato la base no tendría ninguna
utilidad y no se pudiera obtener ningún beneficio de ella, por eso esta práctica es dedicada al DML,
el cual engloba las acciones de insertar, eliminar y modificar datos.
Para la realización de la práctica se usó el manerador Oracle, junto a la herramienta TOra.

Objetivos:
 Practicar el uso de instrucciones para insertar, modificar y eliminar datos en una
base de datos.

Desarrollo:
Primero se creó el ususario viajes con el cual se va a trabajar en toda la práctica
CREATE USER viajes IDENTIFIED BY viajes

GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE SEQUENCE, DROP ANY TABLE,
ALTER ANY TABLE, SELECT ANY TABLE, INSERT ANY TABLE, UPDATE ANY TABLE, DELETE ANY TABLE
TO viajes;

Después de crear la base de datos con el usuario viajes se procedió a insertar los datos de los
estatus del viaje
INSERT INTO estatus_viaje(estatus_viaje_id,clave,activo) VALUES(1,'PROGRAMADO',1);

INSERT INTO estatus_viaje(estatus_viaje_id,clave,activo) VALUES(2,'EN CURS0',1);


INSERT INTO estatus_viaje(estatus_viaje_id,clave,activo) VALUES(3,'CANCELADO',1);

INSERT INTO estatus_viaje(estatus_viaje_id,clave,activo) VALUES(4,'REALIZADO',1);

Se agregó a la tabla de pasajeros los datos de Benito Campuzano y se revisó que se ingresaran
correctamente.

INSERT INTO
pasajero(pasajero_id,nombre,apellido_paterno,apellido_materno,edad,telefono,num_identificaci
on) VALUES(5,'BENITO','CAMPUZANO',NULL,65,NULL,'EJ3WACDIRJSW3485KD');

SELECT * FROM pasajero WHERE pasajero_id=5;

PASAJERO_ID NOMBRE
----------- --------------------------------------------------
APELLIDO_PATERNO

--------------------------------------------------
APELLIDO_MATERNO EDAD

-------------------------------------------------- ----------

TELEFONO NUM_IDENTIFICACION

-------------------- ------------------

5 BENITO

CAMPUZANO

65
EJ3WACDIRJSW3485KD

Se ingresarón los datos del avion CIOP34 de AIR FRANCE


INSERT INTO medio_transporte(medio_transporte_id,tipo_medio_transporte,capacidad,clase)
VALUES(1,'A',200,'T');

INSERT INTO medio_aereo(medio_transporte_id,aereolinea,numero_avion) VALUES(1,'AIR


FRANCE','CIOP34');

Se ingresaron los datos del autobus de la línea PRIMERA PLUS.


INSERT INTO medio_transporte(medio_transporte_id,tipo_medio_transporte,capacidad,clase)
VALUES(24,'T',34,'L');
INSERT INTO medio_terrestre(medio_transporte_id,matricula,linea_terrestre)
VALUES(24,'12893','PRIMERA PLUS');
Se dió de alta un viaje con id 1001 desde Machu Pichu hasta Cristo Rey y se registró en el historial
el estatus del vuelo.

INSERT INTO lugar(lugar_id,nombre,descripcion) VALUES(2,'MACHU PICHU','MACHU PICHU


PERU');
INSERT INTO lugar(lugar_id,nombre,descripcion) VALUES(16,'CRISTO REY','CRISTO REY BRASIL');

INSERT INTO
viaje(viaje_id,fecha_salida,origen_id,destino_id,medio_transporte_id,estatus_viaje_id,fecha_estat
us) VALUES(1001,TO_DATE('2010/12/12 00:00:00','YYYY/MM/DD
HH24:MI:SS'),1,16,NULL,1,TO_DATE('2010/12/05 00:00:00','YYYY/MM/DD HH24:MI:SS'));

INSERT INTO
historico_estatus_viaje(historico_estatus_viaje_id,fecha_estatus,viaje_id,estatus_viaje_id) SELECT
(historico_estatus_viaje_seq.NEXTVAL),(SELECT fecha_estatus FROM viaje WHERE
viaje_id=1001),1001,(SELECT estatus_viaje_id FROM viaje WHERE viaje_id=1001)FROM DUAL;

Se dió de alta un viaje con id 1002 desde Barranca del Cobre hasta Teotihuacan el dia 5 de
septiembre de 2010 usando el autobus de PRIMERA PLUS
INSERT INTO lugar(lugar_id,nombre,descripcion) VALUES(15,'BARRANCA DEL COBRE','BARRANCA
DEL COBRE MEXICO');

INSERT INTO lugar(lugar_id,nombre,descripcion) VALUES(8,'TEOTIHUACAN','TEOTIHUACAN


MEXICO');

INSERT INTO
viaje(viaje_id,fecha_salida,origen_id,destino_id,medio_transporte_id,estatus_viaje_id,fecha_estat
us) VALUES(1002,TO_DATE('2010/09/05 08:00:00','YYYY/MM/DD
HH24:MI:SS'),15,8,24,1,TO_DATE('2010/09/01 00:00:00','YYYY/MM/DD HH24:MI:SS'));

INSERT INTO
historico_estatus_viaje(historico_estatus_viaje_id,fecha_estatus,viaje_id,estatus_viaje_id) SELECT
(historico_estatus_viaje_seq.NEXTVAL),(SELECT fecha_estatus FROM viaje WHERE
viaje_id=1002),1002,(SELECT estatus_viaje_id FROM viaje WHERE viaje_id=1002)FROM DUAL;

Se registró el asiento del pasajero Jeronimo Ramirez que viajará en el viaje 1003 desde Chichen
Itza hasta Cancun
INSERT INTO
pasajero(pasajero_id,nombre,apellido_paterno,apellido_materno,edad,telefono,num_identificaci
on) VALUES(1,'JERONIMO','RAMIREZ','JUAREZ',34,'5578348901','94023JU4WK45ISJDR5');

INSERT INTO lugar(lugar_id,nombre,descripcion) VALUES(1,'CANCUN','CANCUN MEX.');


INSERT INTO lugar(lugar_id,nombre,descripcion) VALUES(3,'CHICHEN ITZA','CHICHEN ITZA
MEXICO');

INSERT INTO medio_transporte(medio_transporte_id,tipo_medio_transporte,capacidad,clase)


VALUES(14,'A',200,'L');

INSERT INTO medio_aereo(medio_transporte_id,aereolinea,numero_avion)


VALUES(14,'AEROMEXICO','MXA903');

INSERT INTO
viaje(viaje_id,fecha_salida,origen_id,destino_id,medio_transporte_id,estatus_viaje_id,fecha_estat
us) VALUES(1003,TO_DATE('2011/05/01 07:50:00','YYYY/MM/DD
HH24:MI:SS'),2,3,14,1,TO_DATE('2011/01/01 00:00:00','YYYY/MM/DD HH24:MI:SS'));
INSERT INTO
historico_estatus_viaje(historico_estatus_viaje_id,fecha_estatus,viaje_id,estatus_viaje_id) SELECT
(historico_estatus_viaje_seq.NEXTVAL),(SELECT fecha_estatus FROM viaje WHERE
viaje_id=1003),1003,(SELECT estatus_viaje_id FROM viaje WHERE viaje_id=1003)FROM DUAL;

INSERT INTO viaje_detalle(viaje_detalle_id,numero_asiento,viaje_id,pasajero_id) SELECT


(viaje_detalle_seq.NEXTVAL),'32F',1003,1 FROM DUAL;

SQL> SELECT * FROM viaje_detalle;

VIAJE_DETALLE_ID NUM VIAJE_ID PASAJERO_ID

---------------- --- ---------- -----------


2 32F 1003 1

SQL> SELECT * FROM historico_estatus_viaje WHERE viaje_id=1003;

HISTORICO_ESTATUS_VIAJE_ID FECHA_EST VIAJE_ID ESTATUS_VIAJE_ID

-------------------------- --------- ---------- ----------------


4 01-JAN-11 1003 1

SQL> SELECT * FROM viaje WHERE viaje_id=1003;


VIAJE_ID FECHA_SAL ORIGEN_ID DESTINO_ID MEDIO_TRANSPORTE_ID ESTATUS_VIAJE_ID
---------- --------- ---------- ---------- ------------------- ----------------

FECHA_EST

---------

1003 01-MAY-11 2 3 14 1

01-JAN-11

Se modifica los datos del avion CIOP34 para aumentar su cupo y cambiarlo de categoría

UPDATE medio_transporte SET capacidad=220 WHERE medio_Transporte_id=(SELECT


medio_transporte_id FROM medio_aereo WHERE numero_avion='CIOP34');

UPDATE medio_transporte SET clase='L' WHERE medio_Transporte_id=(SELECT


medio_transporte_id FROM medio_aereo WHERE numero_avion='CIOP34');

SQL> SELECT * FROM medio_transporte;

MEDIO_TRANSPORTE_ID T CAPACIDAD C

------------------- - ---------- -
14 A 200 L
1A 220 L

24 T 34 L

Se actualizó el medio de transporte para el viaje 1001


INSERT INTO medio_transporte(medio_transporte_id,tipo_medio_transporte,capacidad,clase)
VALUES(3,'A',250,'T');
INSERT INTO medio_aereo(medio_transporte_id,aereolinea,numero_avion) VALUES(3,'MEXICANA
AVIACION','MX0056');
UPDATE viaje SET medio_transporte_id=3 WHERE viaje_id=1001;

SQL> SELECT * FROM viaje WHERE viaje_id=1001;

VIAJE_ID FECHA_SAL ORIGEN_ID DESTINO_ID MEDIO_TRANSPORTE_ID ESTATUS_VIAJE_ID

---------- --------- ---------- ---------- ------------------- ----------------

FECHA_EST

---------

1001 12-DEC-10 1 16 3 1

05-DEC-10

Se registrarón varios pasajeros para el vuelo 1001

INSERT INTO
pasajero(pasajero_id,nombre,apellido_paterno,apellido_materno,edad,telefono,num_identificaci
on) VALUES(8,'ANTONIO','SERRANO','LUNA',12,NULL,'98298LKJL23442342J');

INSERT INTO
pasajero(pasajero_id,nombre,apellido_paterno,apellido_materno,edad,telefono,num_identificaci
on) VALUES(3,'MARIANA','JIMENEZ','LOPEZ',23,'31238349','J4U58IWSLFNEIRX8R4');
INSERT INTO
pasajero(pasajero_id,nombre,apellido_paterno,apellido_materno,edad,telefono,num_identificaci
on) VALUES(6,'SUSANA','PEREZ','PAEZ',21,NULL,'834DCFR345WSFEFDSR');

INSERT INTO viaje_detalle(viaje_detalle_id,numero_asiento,viaje_id,pasajero_id) SELECT


(viaje_detalle_seq.NEXTVAL),'22A',1001,8 FROM DUAL;

INSERT INTO viaje_detalle(viaje_detalle_id,numero_asiento,viaje_id,pasajero_id) SELECT


(viaje_detalle_seq.NEXTVAL),'42F',1001,3 FROM DUAL;
INSERT INTO viaje_detalle(viaje_detalle_id,numero_asiento,viaje_id,pasajero_id) SELECT
(viaje_detalle_seq.NEXTVAL),'11C',1001,6 FROM DUAL;
SQL> SELECT * FROM viaje_detalle WHERE viaje_id=1001;
VIAJE_DETALLE_ID NUM VIAJE_ID PASAJERO_ID

---------------- --- ---------- -----------


3 22A 1001 8

4 42F 1001 3

5 11C 1001 6

Se eliminó todos los datos referentes al avion MXA903


DELETE FROM viaje_detalle WHERE viaje_id=(SELECT viaje_id FROM viaje WHERE
estatus_viaje_id=1 AND medio_transporte_id=(SELECT medio_transporte_id FROM medio_aereo
WHERE numero_avion='MXA903'));

DELETE FROM historico_estatus_viaje WHERE viaje_id=(SELECT viaje_id FROM viaje WHERE


estatus_viaje_id=1 AND medio_transporte_id=(SELECT medio_transporte_id FROM medio_aereo
WHERE numero_avion='MXA903'));

DELETE FROM viaje WHERE estatus_viaje_id=1 AND medio_transporte_id=(SELECT


medio_transporte_id FROM medio_aereo WHERE numero_avion='MXA903');

DELETE FROM medio_aereo WHERE numero_avion='MXA903';

se creó una tabla temporal de clientes

MERGE INTO pasajero_temp t


USING pasajero p

ON(t.pasajero_id=p.pasajero_id)

WHEN MATCHED THEN UPDATE

SET t.nombre=p.nombre, t.apellido_paterno=p.apellido_paterno,


t.apellido_materno=p.apellido_materno, t.edad=p.edad, t.telefono=p.telefono,
t.num_identificacion=p.num_identificacion

WHEN NOT MATCHED THEN INSERT


(t.pasajero_id, t.nombre, t.apellido_paterno, t.apellido_materno, t.edad, t.telefono,
t.num_identificacion) VALUES
(p.pasajero_id, p.nombre, p.apellido_paterno, p.apellido_materno, p.edad, p.telefono,
p.num_identificacion);

SQL> SELECT * FROM pasajero_temp;

PASAJERO_ID NOMBRE
----------- --------------------------------------------------

APELLIDO_PATERNO

--------------------------------------------------

APELLIDO_MATERNO EDAD

-------------------------------------------------- ----------
TELEFONO NUM_IDENTIFICACION
-------------------- ------------------

6 SUSANA
PEREZ

PAEZ 21

834DCFR345WSFEFDSR

PASAJERO_ID NOMBRE

----------- --------------------------------------------------

APELLIDO_PATERNO
--------------------------------------------------

APELLIDO_MATERNO EDAD

-------------------------------------------------- ----------
TELEFONO NUM_IDENTIFICACION

-------------------- ------------------

5 BENITO

CAMPUZANO

65
EJ3WACDIRJSW3485KD

PASAJERO_ID NOMBRE

----------- --------------------------------------------------

APELLIDO_PATERNO

--------------------------------------------------

APELLIDO_MATERNO EDAD

-------------------------------------------------- ----------
TELEFONO NUM_IDENTIFICACION

-------------------- ------------------

8 ANTONIO
SERRANO

LUNA 12
98298LKJL23442342J

PASAJERO_ID NOMBRE
----------- --------------------------------------------------
APELLIDO_PATERNO
--------------------------------------------------

APELLIDO_MATERNO EDAD

-------------------------------------------------- ----------

TELEFONO NUM_IDENTIFICACION

-------------------- ------------------
3 MARIANA

JIMENEZ

LOPEZ 23
312383490 J4U58IWSLFNEIRX8R4
PASAJERO_ID NOMBRE

----------- --------------------------------------------------

APELLIDO_PATERNO

--------------------------------------------------

APELLIDO_MATERNO EDAD

-------------------------------------------------- ----------

TELEFONO NUM_IDENTIFICACION
-------------------- ------------------

1 JERONIMO

RAMIREZ
JUAREZ 34

5578348901 94023JU4WK45ISJDR5

Concluciones:
Esta práctica fue sencilla, pero ayuda mucho a poder conocer como utilizar una subquery y
utilizarla para evitarse mucho trabajo. La inserción, modificación y eliminación son bastantes
sencillos si se sabe bien como es la sintaxis de las instrucciones, por lo que la práctica es la mejor
manera de aprender DML.

Bibliografía:
No se consultó ningun libro adicional para realizar esta práctica.

You might also like