Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Crea la BD Empleados
- CREATE DATABASE BDEMPLEADOS;
- USE BDEMPLEADOS;
- -- Crea las tablas:
- CREATE TABLE CENTRO (
- codigo VARCHAR(4),
- nombre VARCHAR(30),
- direccion VARCHAR(50),
- poblacion VARCHAR(15),
- nifEmpDirec CHAR(9),
- CONSTRAINT pk_centro PRIMARY KEY (codigo),
- CONSTRAINT uk_centro UNIQUE (nombre)
- );
- CREATE TABLE DEPARTAMENTO (
- codDpto CHAR(5),
- nombre VARCHAR(40),
- presupAnual int,
- codCen VARCHAR(4) NOT NULL,
- CONSTRAINT pk_departamento PRIMARY KEY (codDpto),
- CONSTRAINT fk_dto_centro FOREIGN KEY (codCen) REFERENCES centro (codigo)
- );
- CREATE TABLE EMPLEADO (
- nif CHAR(9),
- nomEmp VARCHAR(40),
- fechNac DATE,
- telefono VARCHAR(9),
- fechaIncorpora DATE,
- numHijos int,
- salario int,
- codDpto CHAR(5),
- CONSTRAINT pk_empleado PRIMARY KEY (nif),
- CONSTRAINT fk_empleado_dto FOREIGN KEY (codDpto) REFERENCES departamento (codDpto)
- );
- CREATE TABLE HIJO (
- nombre VARCHAR(40),
- fecNac DATE,
- numHij int,
- nifEmp CHAR(9),
- CONSTRAINT pk_habilidademp PRIMARY KEY (nifEmp,numHij),
- CONSTRAINT fk_hijo_empleado FOREIGN KEY (nifEmp) REFERENCES empleado (nif)
- );
- CREATE TABLE HABILIDAD (
- codHab VARCHAR(5),
- descripcion VARCHAR(30),
- CONSTRAINT pk_habilidad PRIMARY KEY (codHab),
- CONSTRAINT uk_habilidad UNIQUE (descripcion)
- );
- CREATE TABLE HABILIDADEMPL (
- codHab VARCHAR(5),
- nifEmp CHAR(9),
- nivHab FLOAT,
- CONSTRAINT pk_habemp PRIMARY KEY (codHab,nifEmp),
- CONSTRAINT fk_hab_hab FOREIGN KEY (codHab) REFERENCES habilidad (codHab),
- CONSTRAINT fk_hab_emp FOREIGN KEY (nifEmp) REFERENCES empleado (nif)
- );
- ALTER TABLE centro
- ADD CONSTRAINT fk_centro_empjefe FOREIGN KEY (nifEmpDirec) REFERENCES empleado (nif);
- -- Ejercicio 3
- -- a. El número de hijos siempre debe ser positivo
- ALTER TABLE empleado
- ADD CONTRAINT chk_nhijos CHECK (numHij>=0);
- -- b. La fecha de nacimiento de los hijos no puede ser después del día de introducir los datos
- ALTER TABLE hijo
- ADD CONSTRAINT chk_fechanac CHECK (fechNac<=SYSDATE);
- ALTER TABLE hijo
- ADD CONSTRAINT chk_fechanac CHECK (fecNac<=TO_DATE('16-03-2017','DD-MM-YYYY'));
- -- Realiza las siguientes inserciones:
- INSERT INTO centro (codigo, nombre, direccion, poblacion)
- VALUES ('DIGE', 'Dirección General', 'Av. Constitución 88', 'San Juan');
- INSERT INTO centro (codigo, nombre, direccion, poblacion)
- VALUES ('FAZS', 'Fábrica Zona Sur', 'Pol. Ind. Gral. Atalayas', 'Alicante');
- INSERT INTO centro (codigo, nombre, direccion, poblacion)
- VALUES ('OFZS', 'Oficinas Zona Sur', 'Pl. España 14', 'Campello');
- INSERT INTO departamento (codDpto, nombre, presupAnual, codCen)
- VALUES ('ADMZS', 'Administración Zona Sur', 119000, 'OFZS');
- INSERT INTO departamento (codDpto, nombre, presupAnual, codCen)
- VALUES ('DIRGE', 'Dirección General', 260000, 'DIGE');
- INSERT INTO departamento (codDpto, nombre, presupAnual, codCen)
- VALUES ('INyDI', 'Investigación y Diseño', 250000, 'DIGE');
- INSERT INTO departamento (codDpto, nombre, presupAnual, codCen)
- VALUES ('JEFZS', 'Jefatura Fábrica Zona Sur', 52700, 'FAZS');
- INSERT INTO departamento (codDpto, nombre, presupAnual, codCen)
- VALUES ('PROZS', 'Producción Zona Sur', 918000, 'FAZS');
- INSERT INTO departamento (codDpto, nombre, presupAnual, codCen)
- VALUES ('VENZS', 'Ventas Zona Sur', 114750, 'OFZS');
- INSERT INTO departamento (codDpto, nombre, presupAnual, codCen)
- VALUES ('PRUEB', 'Departamento de pruebas', 100000, 'DIGE');
- INSERT INTO empleado (nif, nomEmp, fechNac, telefono, fechaIncorpora, numHijos, salario, codDpto)
- VALUES ('11111111A', 'Saladino Mandamás, Augusto', '07-08-1961', 96111111, '01-07-1972', 1, 72000, 'DIRGE');
- INSERT INTO empleado (nif, nomEmp, fechNac, telefono, fechaIncorpora, numHijos, salario, codDpto)
- VALUES ('22222222B', 'Manrique Bacterio, Luisa','08-06-1970', 961112233, '14-06-1991', 0, 45000,'INyDI');
- INSERT INTO empleado (nif, nomEmp, fechNac, telefono, fechaIncorpora, numHijos, salario, codDpto)
- VALUES ('33333333C', 'Monforte Cid, Roldán', '07-12-1965', 961212133, '08-06-1984', 1, 52000,'VENZS');
- INSERT INTO empleado (nif, nomEmp, fechNac, telefono, fechaIncorpora, numHijos, salario, codDpto)
- VALUES ('44444444D', 'Topaz Illán, Carlos', '21-02-1975', 918753838, '09-08-1990', 0, 32000,'VENZS');
- INSERT INTO empleado (nif, nomEmp, fechNac, telefono, fechaIncorpora, numHijos, salario, codDpto)
- VALUES ('55555555E', 'Alada Veraz, Juana', '08-03-1958', 931251239, '07-08-1976', 1, 62000, 'ADMZS');
- INSERT INTO empleado (nif, nomEmp, fechNac, telefono, fechaIncorpora, numHijos, salario, codDpto)
- VALUES ('66666666F', 'Gozque Altanero, Cándido', '03-06-1969', 916482383, '01-08-1991', 1, 50000, 'JEFZS');
- INSERT INTO empleado (nif, nomEmp, fechNac, telefono, fechaIncorpora, numHijos, salario, codDpto)
- VALUES ('77777777G', 'Forzado López, Galeote', '07-08-1975', NULL, '30-06-1994', 0, 17600,'PROZS');
- INSERT INTO empleado (nif, nomEmp, fechNac, telefono, fechaIncorpora, numHijos, salario, codDpto)
- VALUES ('88888888H', 'Mascullas Alto, Elísa', '15-06-1976', NULL, '15-08-1994', 1, 17600,'PROZS');
- INSERT INTO empleado (nif, nomEmp, fechNac, telefono, fechaIncorpora, numHijos, salario, codDpto)
- VALUES ('99999999I', 'Mando Correa, Rosa', '19-07-1968', 964512124, '10-06-1982', 2, 34100,'PROZS');
- INSERT INTO empleado (nif, nomEmp, fechNac, telefono, fechaIncorpora, numHijos, salario, codDpto)
- VALUES ('10101010J', 'Mosc Amuerta, Mario', '07-01-1975', NULL, '02-11-1993', 0, 14300,'PROZS');
- INSERT INTO empleado (nif, nomEmp, fechNac, telefono, fechaIncorpora, numHijos, salario, codDpto)
- VALUES ('11121314K', 'Aracil Suarez, Armando', '24-12-1987', 967321234, '25-10-2010', 2, 80000,'PRUEB');
- UPDATE centro
- SET nifEmpDirec='11111111A'
- WHERE codigo='DIGE';
- UPDATE centro
- SET nifEmpDirec='66666666F'
- WHERE codigo='FAZS';
- UPDATE centro
- SET nifEmpDirec='55555555E'
- WHERE codigo='OFZS';
- INSERT INTO habilidad (codHab, descripcion)
- VALUES ('FONTA', 'Fontanería');
- INSERT INTO habilidad (codHab, descripcion)
- VALUES ('GEREN', 'Gerencia');
- INSERT INTO habilidad (codHab, descripcion)
- VALUES ('GESCO', 'Gestión Contable');
- INSERT INTO habilidad (codHab, descripcion)
- VALUES('MARKE', 'Marketing');
- INSERT INTO habilidad (codHab, descripcion)
- VALUES ('MECAN', 'Mecanografía');
- INSERT INTO habilidad (codHab, descripcion)
- VALUES('RELPU', 'Relaciones Públicas');
- INSERT INTO habilidad (codHab, descripcion)
- VALUES ('TELEF', 'Telefonista');
- INSERT INTO habilidad (codHab, descripcion)
- VALUES('INFOR', 'Informática');
- INSERT INTO habilidadEmpl (codHab, nifEmp, nivHab)
- VALUES ('GEREN', '11111111A', 10.00);
- INSERT INTO habilidadEmpl (codHab, nifEmp, nivHab)
- VALUES ('RELPU', '11111111A', 9.00);
- INSERT INTO habilidadEmpl (codHab, nifEmp, nivHab)
- VALUES ('MARKE', '33333333C', 9.00);
- INSERT INTO habilidadEmpl (codHab, nifEmp, nivHab)
- VALUES ('MARKE', '44444444D', 6.00);
- INSERT INTO habilidadEmpl (codHab, nifEmp, nivHab)
- VALUES ('GESCO', '55555555E', 9.00);
- INSERT INTO habilidadEmpl (codHab, nifEmp, nivHab)
- VALUES ('RELPU', '55555555E', 8.00);
- INSERT INTO habilidadEmpl (codHab, nifEmp, nivHab)
- VALUES ('FONTA', '88888888H', 7.00);
- INSERT INTO hijo (nifEmp, numHij, fechaNac, nombre) VALUES
- (1, 1, '07-06-1989', 'Saladino Oropel, Flavia'),
- (3, 1, '12-09-1990', 'Monforte Lemos, Jesús'),
- (5, 1, '06-03-1982', 'Pastora Alada, Mateo'),
- (8, 1, '14-03-1994', 'Fuerte Mascullas, Anacleto'),
- (9, 1, '28-02-1988', 'León Mando, Elvira'),
- (9, 2, '18-07-1990', 'León Mando, Plácido'),
- (11, 1, '16-09-2000', 'Aracil Gómez, Ana'),
- (11, 2, '26-03-2002', 'Aracil Gómez, Lorena');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement