Martin BD05 Tarea

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 5

Ejercicio 1:

Inserta un registro nuevo en la tabla M_PACIENTES utilizando la herramienta gráfica


Application Express que ofrece Oracle Database Express. Los datos deben ser los siguientes:
DNIP : 10000000B
NRO_SEG_SOC : 11112
APELLIDOS : Gómez Carrasco
NOMBRE : Luisa
SEXO :M
CENTRO SALUD : Centro de Salud 2
DIRECCIÓN : C/Mata, 21-1º A
POBLACIÓN : Miguelturra
PROVINCIA : Ciudad Real
TELEFONO : 923 242424
MOVIL : 611611611
EMAIL : [email protected]

Ejercicio 2:
Inserta varios registros en la tabla M_MEDICOS utilizando sentencias SQL. En la entrega de
la tarea debes copiar las sentencias que has utilizado. Los datos deben ser los siguientes:
Tabla M_MEDICOS
DNIM APELLIDOS NOMBRE CENTRO POBLACIÓN PROVINCIA TELEFONO MOVIL EMAIL
SALUD
11111112B Sanz Hervás Maria Centro Ciudad Real Ciudad Real 926212121
Salud 1
11111113B RAMOS CRUZ JUAN Centro DAIMIEL CIUDAD
Salud 3 REAL
11111114B LAOS MIS PEDRO PUERTOLLANO [email protected]
11111115B Lagos Cortés Marina TOLEDO 622622622
Las columnas con los datos que aparecen en blanco no deben utilizarse en las sentencias.

INSERT INTO M_MEDICOS (DNIM, APELLIDOS, NOMBRE, CENTRO_SALUD, POBLACION,


PROVINCIA, TELEFONO) VALUES ('11111112B', 'Sanz Hervás', 'Maria', 'Centro Salud 1', 'Ciudad
Real', 'Ciudad Real', '926212121');

INSERT INTO M_MEDICOS (DNIM, APELLIDOS, NOMBRE, CENTRO_SALUD, POBLACION,


PROVINCIA) VALUES ('11111113B', 'RAMOS CRUZ', 'JUAN', 'Centro Salud 3', 'DAIMIEL',
'CIUDAD REAL');

INSERT INTO M_MEDICOS (DNIM, APELLIDOS, NOMBRE, POBLACION, EMAIL) VALUES


('11111114B', 'LAOS MIS', 'PEDRO', 'PUERTOLLANO', '[email protected]');

INSERT INTO M_MEDICOS (DNIM, APELLIDOS, NOMBRE, PROVINCIA, MOVIL) VALUES


('11111115B', 'Lagos Cortés', 'Marina', 'TOLEDO', '622622622');

Ejercicio 3:
Utiliza la herramienta gráfica, entregando con la tarea una captura de pantalla de la pestaña
Datos de las tablas, donde se aprecien todos los cambios que has realizado.
Inserta en la tabla M_VENTAS_MED las siguientes ventas:
ID_VENTA ID_MED Fecha Venta Unidades
25 9 01/02/2017 4
26 10 02/02/2017 5
27 11 20/03/2017 10
28 12 30/01/2017 1
Inserta en la tabla M_VENTAS_RECETAS los registros correspondientes a las ventas
anteriores pero sin asignarle médicos ni pacientes.
Modifica los registros de la tabla M_VENTAS_RECETAS para asignar a cada venta
introducida anteriormente médico y un paciente. El profesorado que debes asignar a cada
curso es:
ID_VENTA DNI Médico DNI Paciente
25 11111112B 20000000B
26 11111115B 40000000D
27 11111114B 20000000B
28 11111112B 80000000H
Ejercicio 4:
Modifica de la tabla M_VENTAS_MED el registro cuyo ID_VENTA es 22, cambiando el
valor de la fecha de venta: 11/02/2017 y las unidades 10. Debes hacerlo usando un sola
sentencia SQL que debes copiar para la entrega de la tarea

UPDATE M_VENTAS_MED SET FECHA_VENTA = '11/02/2017', UNIDADES = 10 WHERE


ID_VENTA = 22;

Ejercicio 5:
Modifica la columna NOMBRE_MED de la tabla M_MEDICAMENTOS convirtiendo todos
los nombres a mayúsculas. Debes hacerlo usando un sola sentencia SQL que debes copiar para
la entrega de la tarea.

UPDATE M_MEDICAMENTOS SET NOMBRE_MED = UPPER(NOMBRE_MED);

Ejercicio 6:
Elimina de la tabla M_FAMILIAS el registro cuyo ID_FAM es 2 ¿te deja eliminarlo?. Razona
la respuesta.

DELETE FROM M_FAMILIAS WHERE ID_FAM = 2;


ORA-02292: restricción de integridad (TAREA4.SYS_C004326) violada - registro
secundario encontrado

No me deja eliminarlo porque no se pueden eliminar los registros de una clave primaria
cuando están siendo utilizados en otra tabla como clave ajena.

Ejercicio 7:
Elimina de la tabla M_PRESENTACIONES el registro del curso que tiene el ID_PRES es 4.
Debes realizar esta acción desde la herramienta gráfica. Debes entregar una captura de
pantalla de la ventana en la que vas a elimines cada el registro, justo antes y después de pulsar el
botón Aceptar para confirmar el borrado.
Ejercicio 8:
Elimina de la tabla M_VENTAS_MED aquellos registros asociados al medicamento con
ID_MED 4. Debes hacerlo usando un sola sentencia SQL que debes copiar para la entrega de la
tarea.
DELETE FROM M_VENTAS_MED WHERE ID_MED = 4;

Elimina de la tabla M_VENTAS_MED aquellos registros asociados al medicamento con


ID_MED 3. Debes hacerlo usando un sola sentencia SQL que debes copiar para la entrega de la
tarea. ¿Deja eliminarlo?¿Porqué?
DELETE FROM M_VENTAS_MED WHERE ID_MED = 3;
ORA-02292: restricción de integridad (TAREA4.FK_REC_VEN) violada - registro
secundario encontrado
No porque hay registros en otra tabla donde hacen referencia a ID_MED 3

Ejercicio 9:
En la tabla M_VENTAS_MED, actualiza el campo FECHA_VENTA a la fecha del sistema a los
medicamentos con ID_MED 2 y 3. Debes hacerlo usando un sola sentencia SQL y copiarla en la
entrega de la tarea.

UPDATE M_VENTAS_MED SET FECHA_VENTA = SYSDATE WHERE ID_MED = 2 OR ID_MED = 3;

Ejercicio 10:
Inserta un medicamento con los siguientes valores :
ID_MED=20, NOMBRE_MED='OMEOGAS', STOCK= 10, PRECIO_UNIT=
21,CONRECETA= 'S',
Las columnas ID_FAM,ID_PRES,ID_LAB serán los mismos que el medicamento cuyo ID_MED
es 3. Debes hacerlo usando un sola sentencia SQL y copiarla en la entrega de la tarea.

INSERT INTO M_MEDICAMENTOS (ID_MED, NOMBRE_MED, STOCK, PRECIO_UNIT,


CONRECETA, ID_FAM, ID_PRES, ID_LAB) SELECT '20', 'OMEOGAS', '10', '21', 'S', m.ID_FAM,
m.ID_PRES, m.ID_LABFROM M_MEDICAMENTOS m WHERE ID_MED = 3;

Ejercicio 11:
Crea una tabla llamada M_TOTAL_VENTAS que tenga las siguientes columnas:
ID_MED: Number(4), UNIDADES VENDIDAS: Number(6), TOTAL_VENTAS :
Number(9,2)
Inserta en la tabla M_TOTAL_VENTAS un registro por cada medicamento, almacenando:
ID_MED, el número de unidades totales vendidas de ese medicamento y total de todas las ventas
( se calcula multiplicando las unidades por le precio unitario). Debes hacerlo usando un sola
sentencia SQL y copiarla en la entrega de la tarea.

CREATE TABLE M_TOTAL_VENTAS AS select cast( M.ID_MED as number(4)) ID_MED, cast(


SUM(MV.UNIDADES) AS NUMBER(6)) "UNIDADES VENDIDAS" , CAST( SUM(MV.unidades *
M.precio_unit) AS NUMBER(9,2)) TOTAL_VENTAS from M_MEDICAMENTOS M JOIN
M_VENTAS_MED MV ON M.ID_MED=MV.ID_MED GROUP BY M.ID_MED;

Ejercicio 12:
Se quiere actualizar la columna STOCK de la tabla M_MEDICAMENTOS . Hay que sumar todas
las unidades vendidas de ese medicamento y restarlas al STOCK. Debes hacerlo usando un sola
sentencia SQL y copiarla en la entrega de la tarea.

UPDATE M_MEDICAMENTOS M SET STOCK = STOCK - NVL((SELECT sum(unidades)


from m_ventas_med mv where m.id_med = mv.id_med group by mv.id_med order by
mv.id_med),0);

No consigo que funcione. Sé que tiene que ser algo parecido.

Ejercicio 13:
Elimina de la tabla M_FAMILIAS aquellas familias que no tengan ningún medicamento
asignado. Debes hacerlo usando un sola sentencia SQL y copiarla en la entrega de la tarea.

delete from m_familias where id_fam not in (select id_fam from m_familias natural join
m_medicamentos group by id_fam);

Ejercicio 14:
Incrementa en un 10% el precio del medicamento para aquellos medicamentos que se hayan
vendido más de 3 veces. Debes hacerlo usando un sola sentencia SQL y copiarla en la entrega
de la tarea.

Update m_medicamentos set precio_unit = precio_unit * 1.1 where id_med in (select


id_med from m_medicamentos where id_med in (select id_med ventas from m_ventas_med
group by id_med having count(id_med)>3));

También podría gustarte