PARTE 1


CREATE TABLE LABORATORIO(
ID_LABORATORIO NUMBER(5),
NOMBRE VARCHAR2 (20),
DIRECCION VARCHAR2 (40),
TELEFONO NUMBER (9),
ID_HOSPITAL NUMBER(8),
CONSTRAINT PK_LABORATORIO PRIMARY KEY(ID_LABORATORIO),
CONSTRAINT FK_HOSPITAL FOREIGN KEY (ID_HOSPITAL) REFERENCES HOSPITAL(ID_HOSPITAL) ,
CONSTRAINT NN_NOMBRE_LAB CHECK (NOMBRE IS NOT NULL) ,
CONSTRAINT NN_DIRECCION_LAB CHECK (DIRECCION IS NOT NULL),
CONSTRAINT NN_ID_HOSPITAL CHECK (ID_HOSPITAL IS NOT NULL) 
);


CREATE TABLE HOSPITAL(
ID_HOSPITAL NUMBER(8),
NOMBRE VARCHAR2 (20),
DIRECCION VARCHAR2 (40),
TELEFONO NUMBER (9),
CONSTRAINT PK_HOSPITAL PRIMARY KEY(ID_HOSPITAL),
CONSTRAINT NN_NOMBRE CHECK (NOMBRE IS NOT NULL) ,
CONSTRAINT NN_DIRECCION CHECK (DIRECCION IS NOT NULL) 
);


CREATE TABLE SALAS(
ID_SALAS NUMBER(6),
NOMBRE VARCHAR2 (20),
CANTIDAD_CAMAS NUMBER (4),
ID_HOSPITAL NUMBER(8),
CONSTRAINT PK_SALAS PRIMARY KEY(ID_SALAS),
CONSTRAINT FK_HOSPITAL_S FOREIGN KEY (ID_HOSPITAL) REFERENCES HOSPITAL(ID_HOSPITAL) ,
CONSTRAINT NN_NOMBRE_SALA CHECK (NOMBRE IS NOT NULL) ,
CONSTRAINT NN_CANTIDAD_CAMAS CHECK (CANTIDAD_CAMAS IS NOT NULL) ,
CONSTRAINT NN_ID_HOSPITAL_S CHECK (ID_HOSPITAL IS NOT NULL) 
);


CREATE TABLE SALAS_PACIENTE(
FECHA DATE,
FECHA_SALIDA DATE,
ID_SALAS NUMBER(6),
NUM_REGISTRO NUMBER(9),
CONSTRAINT PK_SALAS_PACIENTE PRIMARY KEY (ID_SALAS,NUM_REGISTRO) ,
CONSTRAINT FK_SALAS_PACIENTE_SALAS FOREIGN KEY (ID_SALAS) REFERENCES SALAS(ID_SALAS) ,
CONSTRAINT FK_SALAS_PACIENTE_PACIENTE FOREIGN KEY (NUM_REGISTRO) REFERENCES PACIENTE(NUM_REGISTRO) ,
CONSTRAINT NN_FECHA_ENTRADA CHECK (FECHA IS NOT NULL)
);


CREATE TABLE PACIENTE(
NUM_REGISTRO NUMBER(9),
NUM_CAMA NUMBER(4),
CEDULA_DE_ID NUMBER(2),
NOMBRE VARCHAR2(20),
SEXO VARCHAR2(15),
FECHA_NACIMIENTO  DATE,
DIRECCION VARCHAR2 (40),
CONSTRAINT PK_NUM_REGISTRO PRIMARY KEY(NUM_REGISTRO),
CONSTRAINT NN_NUM_CAMA CHECK (NUM_CAMA IS NOT NULL) ,
CONSTRAINT NN_CEDULA_DE_ID  CHECK (CEDULA_DE_ID IS NOT NULL) ,
CONSTRAINT NN_NOMBRE_PACIENTE CHECK (NOMBRE IS NOT NULL) ,
CONSTRAINT NN_SEXO CHECK (SEXO IS NOT NULL) ,
CONSTRAINT NN_FECHA_NACIMIENTO CHECK (FECHA_NACIMIENTO IS NOT NULL)
);


CREATE TABLE DIAGNOSTICO(
ID_DIAGNOSTICO NUMBER(9),
TIPO VARCHAR2(20),
COMPLICACIONES VARCHAR2(40),
NUM_REGISTRO NUMBER(9),
CONSTRAINT PK_DIAGNOSTICO PRIMARY KEY (ID_DIAGNOSTICO) ,
CONSTRAINT FK_PACIENTE_DIAGNOSTICO FOREIGN KEY (NUM_REGISTRO) REFERENCES PACIENTE(NUM_REGISTRO) ,
CONSTRAINT NN_TIPO  CHECK (TIPO  IS NOT NULL) ,
CONSTRAINT NN_COMPLICACIONES CHECK (COMPLICACIONES IS NOT NULL) 
);





PARTE 2 CONSULTAS

1)

SELECT ID_DIAGNOSTICO, TIPO, COMPLICACIONES FROM DIAGNOSTICO, PACIENTE
WHERE DIAGNOSTICO.NUM_REGISTRO =  PACIENTE.NUM_REGISTRO
AND UPPER(PACIENTE.NOMBRE) = '%LOLO LÓLEZ%'
AND PACIENTE.NUM_REGISTRO = 12345;


2) 
SELECT DIRECCION FROM PACIENTE, DIAGNOSTICO
WHERE PACIENTE.NUM_REGISTRO  = DIAGNOSTICO.NUM_REGISTRO
AND UPPER(DIAGNOSTICO.COMPLICACIONES) = 'COLICO RENAL'
AND UPPER(DIAGNOSTICO.TIPO) = 'UROLOGIA';


3).
SELECT CEDULA_DE_ID FROM PACIENTE, SALAS_PACIENTE
WHERE PACIENTE.NUM_REGISTRO = SALAS_PACIENTE.NUM_REGISTRO
AND FECHA_SALIDA = NULL;


4)
SELECT NOMBRE, DIRECCION FROM PACIENTE, SALAS_PACIENTE
WHERE PACIENTE.NUM_REGISTRO = SALAS_PACIENTE.NUM_REGISTRO
AND FECHA = SYSDATE-30;


5)
SELECT DISTINCT(COUNT(NOMBRE)) FROM PACIENTE, SALAS_PACIENTE, DIAGNOSTICO
WHERE PACIENTE.NUM_REGISTRO = SALAS_PACIENTE.NUM_REGISTRO
WHERE PACIENTE.NUM_REGISTRO = DIAGNOSTICO.NUM_REGISTRO
AND FECHA = SYSDATE-30
AND UPPER(TIPO) = 'UROLOGIA'
AND UPPER(COMPLICACION) = 'COLICO RENAL';