EMPRESA

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

CREATE TABLE empleado (

dni VARCHAR2(13) CONSTRAINT dni_pk PRIMARY KEY,


nombre1 VARCHAR2(15) NOT NULL,
nombre2 VARCHAR2(15),
apellido1 VARCHAR2(15) NOT NULL,
apellido2 VARCHAR2(15),
direccion VARCHAR2(40) NOT NULL,
sueldo NUMBER(7,2) CONSTRAINT check_sueldo CHECK(sueldo>1000),
sexo CHAR(1) NOT NULL,
fecha_nacimiento DATE NOT NULL,
fk_departamento VARCHAR2(10),
fk_supervisor VARCHAR2(13),

CONSTRAINT fk_supervisor
FOREIGN KEY (fk_supervisor)
REFERENCES empleado (dni)
);

CREATE TABLE departamento (


num_departamento VARCHAR2(10) CONSTRAINT departamento_pk PRIMARY KEY,
nombre VARCHAR2(15) NOT NULL,
fk_administrador VARCHAR2(13),
CONSTRAINT fk_administrador
FOREIGN KEY (fk_administrador)
REFERENCES empleado (dni)
);

-- Agregar la llave foranea de departamento al empleado --


ALTER TABLE empleado ADD
CONSTRAINT fk_departamento
FOREIGN KEY (fk_departamento)
REFERENCES departamento (num_departamento);

CREATE TABLE ubicacion (


pais VARCHAR2(30),
estado VARCHAR2(30),
municipio VARCHAR2(30) NOT NULL,
CONSTRAINT ubi_pk PRIMARY KEY (pais, estado, municipio)
);

CREATE TABLE dependiente (


id_dependiente NUMBER(3) CONSTRAINT dependiente_pk PRIMARY KEY,
nombre1 VARCHAR2(15) NOT NULL,
nombre2 VARCHAR2(15),
apellido1 VARCHAR2(15) NOT NULL,
apellido2 VARCHAR2(15),
sexo CHAR(1) NOT NULL,
fecha_nacimiento DATE NOT NULL,
relacion VARCHAR2(10),
fk_empleado VARCHAR2(13),
CONSTRAINT fk_empleado
FOREIGN KEY (fk_empleado)
REFERENCES empleado (dni)
);
create table departamento_ubicacion(
num_departamento VARCHAR2(10),
pais VARCHAR2(30),
estado VARCHAR2(30),
municipio VARCHAR2(30),
CONSTRAINT pk PRIMARY KEY (num_departamento,pais,estado,municipio),
CONSTRAINT fk_departamento_ubicacion
FOREIGN KEY (num_departamento)
REFERENCES departamento (num_departamento),
CONSTRAINT fk_ubicacion_departamento
FOREIGN KEY (pais, estado, municipio)
REFERENCES ubicacion (pais, estado, municipio)
);

--1) Inserta la información de todos los miembros de tu equipo OBL como


empleados--
INSERT INTO empleado

(dni,nombre1,nombre2,apellido1,apellido2,direccion,sueldo,sexo,fecha_nacimiento)
VALUES ('20233tn200','Josue','Manuel','Rosales','Garcia','Calle
Morelos',90.50,'H','24/DIC/2002');

INSERT INTO empleado

(dni,nombre1,nombre2,apellido1,apellido2,direccion,sueldo,sexo,fecha_nacimiento)
VALUES ('20233tn197','sergio','Jhoel','Garduño','Cruz','calle laurel
13',1020.20,'H','04/OCT/2022');

INSERT INTO empleado


(dni,nombre1,apellido1,apellido2,direccion,sueldo,sexo,fecha_nacimiento)
VALUES ('20233tn208','Ivan','Avalos','Salazar','calle bpiton
5',80000.50,'H','9/AGO/2005');

INSERT INTO empleado

(dni,nombre1,nombre2,apellido1,apellido2,direccion,sueldo,sexo,fecha_nacimiento)
VALUES ('20233tn216','Xiomara','Aidee','Rodriguez','Antonio','calle 16 de
septiembre',70000.50,'M','14/ENE/2005');

INSERT INTO empleado

(dni,nombre1,nombre2,apellido1,apellido2,direccion,sueldo,sexo,fecha_nacimiento)
VALUES ('20233tn192','Rodolfo','Angel','Flores','Vergara','calle mariano
matamoros',80000.50,'H','18/JUL/2005');

--2) Inserta la información de al menos 1 dependiente x cada integrante del


equipo (Generar llaves foraneas correctamente--
INSERT INTO dependiente
(id_dependiente,nombre1,apellido1,sexo,fecha_nacimiento,relacion)
VALUES ('20002','Socrates','Rosales','H','24/FEB/2007','Hijo');
INSERT INTO dependiente
(id_dependiente,nombre1,apellido1,sexo,fecha_nacimiento,relacion)
VALUES ('666','Putin','Vladímir','H','07/OCT/1942','Criado');

INSERT INTO dependiente

(id_dependiente,nombre1,nombre2,apellido1,apellido2,sexo,fecha_nacimiento,relacio
n)
VALUES
('117','Rodolfa','Angela','Flores','Vergara','F','18/JUL/2005','Hijo');

INSERT INTO dependiente

(id_dependiente,nombre1,nombre2,apellido1,apellido2,sexo,fecha_nacimiento,relacio
n)
VALUES
('130','Modric','Alex','Morales','Rodriguez','H','03/MAR/2020','hijo');

INSERT INTO dependiente

(id_dependiente,nombre1,nombre2,apellido1,apellido2,sexo,fecha_nacimiento,relacio
n)
VALUES
('6257','Ivana','Avalos','Soplanucas','Lustrapijas','M','8/DEC/2004','hijo');

--3) Inserta la ubicación de Los municipios donde viven los miembros de tu


equipo--
INSERT INTO ubicacion
(pais,estado,municipio)
VALUES ('Mexico','Guerrero','Ometepec');

INSERT INTO ubicacion


(pais,estado,municipio)
VALUES ('Mexico','Morelos','Jiutepec');

INSERT INTO ubicacion


(pais,estado,municipio)
VALUES ('Mexico','Morelos','Cuernavaca');

INSERT INTO ubicacion


(pais,estado,municipio)
VALUES ('Mexico','Morelos','Tlatixapan');

INSERT INTO ubicacion


(pais,estado,municipio)
VALUES ('Mexico','Morelos','Cuernavaca');

--4) Inserta la información para exactamente 3 departamentos--


INSERT INTO departamento
(num_departamento,nombre)
VALUES ('508','LookME');
INSERT INTO departamento
(num_departamento,nombre)
VALUES ('20032','Pastped');

INSERT INTO departamento


(num_departamento,nombre)
VALUES ('230','HotNine');

--5) Altera la tabla empleado para definir a JOSUE como supervisor de todos--
update empleado
SET fk_supervisor = '20233tn200'
WHERE dni!='20233tn200';

--6) Altera la tabla empleado para asignar a los empleados un departamento (deben
aparecer todos los departamentos auque se repitan)--
update empleado
SET fk_departamento = '20032'
WHERE dni = '20233tn200';

update empleado
SET fk_departamento = '20032'
WHERE dni = '20233tn192';

update empleado
SET fk_departamento = '230'
WHERE dni = '20233tn197';

update empleado
SET fk_departamento = '230'
WHERE dni = '20233tn208';

update empleado
SET fk_departamento = '230'
WHERE dni = '20233tn216';

--7) Altera la tabla departamento para asignar 3 empleados distintos como


administradores de departamentos--
update departamento
SET fk_administrador = '20233tn200'
WHERE num_departamento = '508';

update departamento
SET fk_administrador = '20233tn208'
WHERE num_departamento = '20032';

update departamento
SET fk_administrador = '20233tn192'
WHERE num_departamento = '230';

--8) Se busca llevar un historico de quienes administraron los departamentos por


lo cual debes crear una tabla que guarde la fecha de inicio, la fecha de fin y el
administrador que trabajo en ese departamento, Genera el comando CREATE de esta
tabla y ejecutalo--
CREATE TABLE historial_administradores (
id_historial NUMBER(20) PRIMARY KEY,
num_departamento VARCHAR2(20) NOT NULL,
fk_administrador VARCHAR2(13) NOT NULL,
fecha_inicio DATE NOT NULL,
fecha_fin DATE,
CONSTRAINT fk_departamento_historial
FOREIGN KEY (num_departamento)
REFERENCES departamento (num_departamento),
CONSTRAINT fk_administrador_historial
FOREIGN KEY (fk_administrador)
REFERENCES empleado (dni)
);

INSERT INTO historial_administradores


(id_historial, num_departamento, fk_administrador, fecha_inicio, fecha_fin)
VALUES (1, '508','20233tn200','22/ENE/2030','23/ENE/2040');

INSERT INTO historial_administradores


(id_historial, num_departamento, fk_administrador, fecha_inicio, fecha_fin)
VALUES (2, '20032','20233tn208','23/AGO/2015','20/DIC/2020');

INSERT INTO historial_administradores


(id_historial, num_departamento, fk_administrador, fecha_inicio, fecha_fin)
VALUES (3, '230','20233tn192','21/ABR/3001','05/JUN/2024');

--9) Inserta 5 ubicaciones a 3 departamentos--


INSERT INTO departamento_ubicacion
(num_departamento, pais, estado, municipio)
VALUES ('508', 'Mexico', 'Guerrero', 'Ometepec');

INSERT INTO departamento_ubicacion


(num_departamento, pais, estado, municipio)
VALUES ('508', 'Mexico', 'Morelos', 'Jiutepec');

INSERT INTO departamento_ubicacion


(num_departamento, pais, estado, municipio)
VALUES ('20032', 'Mexico', 'Morelos', 'Cuernavaca');

INSERT INTO departamento_ubicacion


(num_departamento, pais, estado, municipio)
VALUES ('230', 'Mexico', 'Morelos', 'Tlatixapan');

INSERT INTO departamento_ubicacion


(num_departamento, pais, estado, municipio)
VALUES ('230', 'Mexico', 'Morelos', 'Cuernavaca');

--10) Se requiere un registro de Proyectos los cuales estan identificados con un


número unico de proyecto, un nombre unico de proyecto y una ubicación. Genera el
comando create table de esta nueva tabla--
CREATE TABLE proyecto (
num_proyecto NUMBER(10) PRIMARY KEY,
nombre_proyecto VARCHAR2(30) NOT NULL,
ubicacion VARCHAR2(30) NOT NULL
);

INSERT INTO proyecto (num_proyecto, nombre_proyecto, ubicacion)


VALUES (1614, 'EL proyectoXgood', 'Mexico');

INSERT INTO proyecto (num_proyecto, nombre_proyecto, ubicacion)


VALUES (231, 'DosTres', 'Cuernavaca');

--11) Debido a que muchos empleados pueden tener muchos proyectos genera una
tabla de intersección llamada empleado_proyecto la cual debe incluir el campo de
horas a la semana: NUMBER(2)--
CREATE TABLE empleado_proyecto (
id_empleado_proyecto NUMBER PRIMARY KEY,
fk_empleado VARCHAR2(13),
fk_proyecto NUMBER(10),
horas_semana NUMBER(2),
CONSTRAINT fk_empleado_proyecto
FOREIGN KEY (fk_empleado)
REFERENCES empleado (dni),
CONSTRAINT fk_proyecto_proyecto
FOREIGN KEY (fk_proyecto)
REFERENCES proyecto (num_proyecto)
);

--12) Finalmente agrega al menos 8 proyectos diferentes y asignalos todos a los


empleados (un empleado puede tener más de un proyecto)--
INSERT INTO empleado_proyecto
(id_empleado_proyecto, fk_empleado, fk_proyecto, horas_semana)
VALUES (5, '20233tn208', 231, 8);

INSERT INTO empleado_proyecto


(id_empleado_proyecto, fk_empleado, fk_proyecto, horas_semana)
VALUES (4, '20233tn216', 1614, 2);

INSERT INTO empleado_proyecto


(id_empleado_proyecto, fk_empleado, fk_proyecto, horas_semana)
VALUES (3, '20233tn192', 231, 8);

INSERT INTO empleado_proyecto


(id_empleado_proyecto, fk_empleado, fk_proyecto, horas_semana)
VALUES (2, '20233tn197', 1614, 8);

INSERT INTO empleado_proyecto


(id_empleado_proyecto, fk_empleado, fk_proyecto, horas_semana)
VALUES (1, '20233tn200', 231, 8);

select * From empleado


select * From dependiente
select * From ubicacion
select * From departamento
select * From historial_administradores
select * From departamento_ubicacion
select * From proyecto
select * From empleado_proyecto

También podría gustarte