Skip to content

Instantly share code, notes, and snippets.

@kubrick06010
Last active September 8, 2020 12:25
Show Gist options
  • Select an option

  • Save kubrick06010/e6e0ba8df73ac3bf5c8b964dd42d52cb to your computer and use it in GitHub Desktop.

Select an option

Save kubrick06010/e6e0ba8df73ac3bf5c8b964dd42d52cb to your computer and use it in GitHub Desktop.
/* Se procede a crear y utilizar la base de datos historial */
CREATE DATABASE IF NOT EXISTS historial;
USE historial;
/* Se procede a crear la tabla empleados */
CREATE TABLE empleados
(
dni INT(8), /* Se cambia el tipo de dato */
nombre VARCHAR(10),
apellido1 VARCHAR(15),
apellido2 VARCHAR(15),
direcc1 VARCHAR(25),
direcc2 VARCHAR(20),
ciudad VARCHAR(20),
provincia VARCHAR(20),
cod_postal VARCHAR(5),
sexo VARCHAR(1),
fecha_nac DATE
);
/* Se procede a crear la tabla departamentos */
CREATE TABLE departamentos
(
dpto_cod INT(5), /* Se cambia el tipo de dato */
nombre_dpto VARCHAR(30),
dpto_padre INT(5), /* Se cambia el tipo de dato */
presupuesto NUMERIC, /* Se cambia el tipo de dato */
pres_actual NUMERIC /* Se cambia el tipo de dato */
);
/* Se procede a crear la tabla estudios */
CREATE TABLE estudios
(
empleado_dni INT(8), /* Se cambia el tipo de dato */
universidad INT(5), /* Se cambia el tipo de dato */
f_grado YEAR,/* Se sustituye la palabra año */
grado VARCHAR(3),
especialidad VARCHAR(20)
);
/* Se procede a crear la tabla universidades */
CREATE TABLE universidades
(
univ_cod INT(5), /* Se cambia el tipo de dato */
nombre_univ VARCHAR(25),
ciudad VARCHAR(20),
municipio VARCHAR(2),
cod_postal VARCHAR(5)
);
/* Se procede a crear la tabla trabajos */
CREATE TABLE trabajos
(
trabajo_cod INT(5), /* Se cambia el tipo de dato */
nombre_trab VARCHAR(20),
salario_min INT(2), /* Se cambia el tipo de dato */
salario_max INT(2) /* Se cambia el tipo de dato */
);
/* Se procede a crear la tabla historial laboral */
CREATE TABLE historial_laboral
(
empleado_dni INT(8), /* Se cambia el tipo de dato */
trabajo_cod INT(5), /* Se cambia el tipo de dato */
fecha_inicio DATE,
fecha_fin DATE,
dpto_cod INT(5), /* Se cambia el tipo de dato */
supervisor_dni INT(8) /* Se cambia el tipo de dato */
);
/* Se procede a crear la tabla historial salarial */
CREATE TABLE historial_salarial
(
empleado_dni INT(8), /* Se cambia el tipo de dato */
salario NUMERIC(5,2), /* Se cambia el tipo de dato */
fecha_comienzo DATE,
fecha_fin DATE
);
/* Sección 1 */
ALTER TABLE empleados modify nombre VARCHAR(10) NOT NULL;
ALTER TABLE departamentos modify nombre_dpto VARCHAR(30) NOT NULL;
ALTER TABLE universidades modify nombre_univ VARCHAR(25) NOT NULL;
ALTER TABLE trabajos modify nombre_trab VARCHAR(20) NOT NULL;
ALTER TABLE empleados modify apellido1 VARCHAR(15) NOT NULL;
ALTER TABLE departamentos modify presupuesto NUMERIC NOT NULL;
ALTER TABLE historial_salarial modify salario NUMERIC(5,2) NOT NULL;
ALTER TABLE trabajos modify salario_min INT(2) NOT NULL;
ALTER TABLE trabajos modify salario_max INT(2) NOT NULL;
/* Sección 2 */
ALTER TABLE empleados MODIFY sexo ENUM ('H','M') NOT NULL;
/* Sección 3 */
ALTER TABLE departamentos modify nombre_dpto VARCHAR(30) UNIQUE NOT NULL;
ALTER TABLE trabajos modify nombre_trab VARCHAR(20) UNIQUE NOT NULL;
/* Sección 5.1.0 */
ALTER TABLE `estudios` ADD `estudios_cod` INT NOT NULL;
/* Sección 5.1.1 */
ALTER TABLE `empleados` ADD PRIMARY KEY( `dni` );
ALTER TABLE `departamentos` ADD PRIMARY KEY( `dpto_cod`);
ALTER TABLE `estudios` ADD PRIMARY KEY( `estudios_cod`);
ALTER TABLE `universidades` ADD PRIMARY KEY( `univ_cod`);
ALTER TABLE `trabajos` ADD PRIMARY KEY( `trabajo_cod`, `nombre_trab`);
ALTER TABLE `historial_salarial` ADD PRIMARY KEY( `empleado_dni`, `salario`, `fecha_comienzo`, `fecha_fin`);
ALTER TABLE `historial_laboral` ADD PRIMARY KEY( `empleado_dni`, `trabajo_cod`);
/* Sección 5.1.2 */
ALTER TABLE `departamentos` ADD CONSTRAINT `fk_dptos` FOREIGN KEY (`dpto_padre`) REFERENCES `departamentos`(`dpto_cod`) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE `estudios` ADD CONSTRAINT `fk_est_emp_dni` FOREIGN KEY (`empleado_dni`) REFERENCES `empleados`(`dni`) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE `estudios` ADD CONSTRAINT `fk_est_uni_cod` FOREIGN KEY (`universidad`) REFERENCES `universidades`(`univ_cod`) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE `historial_laboral` ADD CONSTRAINT `fk_lab_dpto_cod` FOREIGN KEY (`dpto_cod`) REFERENCES `departamentos`(`dpto_cod`) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE `historial_laboral` ADD CONSTRAINT `fk_lab_emp_dni` FOREIGN KEY (`empleado_dni`) REFERENCES `empleados`(`dni`) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE `historial_laboral` ADD CONSTRAINT `fk_lab_trab_cod` FOREIGN KEY (`trabajo_cod`) REFERENCES `trabajos`(`trabajo_cod`) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE `historial_laboral` ADD CONSTRAINT `fk_sal_sup_dni` FOREIGN KEY (`supervisor_dni`) REFERENCES `empleados`(`dni`) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE `historial_salarial` ADD CONSTRAINT `fk_sal_emp_dni` FOREIGN KEY (`empleado_dni`) REFERENCES `empleados`(`dni`) ON DELETE NO ACTION ON UPDATE NO ACTION;
/* Fin de la creación de la base de datos historial */
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment