Está en la página 1de 4

CREATE DATABASE Compañia3;

USE Compañia3;

CREATE TABLE Empleado (


dni INT PRIMARY KEY NULL,
nombre VARCHAR(30) NOT NULL,
apellido1 VARCHAR(30) NOT NULL,
apellido2 VARCHAR(30) NULL,
direcc1 VARCHAR(60) NULL,
direcc2 VARCHAR(60) NULL,
ciudad VARCHAR(30) NULL,
provincia VARCHAR(30) NULL,
cod_postal INT NULL,
SEXO ENUM("M","H"),
fec_nac DATE
);

CREATE TABLE HistorialLaboral(


dni_empleado INT NULL,
cod_trabajo INT NULL,
fec_inicio DATE,
fec_fin DATE,
cod_dpto INT NULL,
dni_supervisor INT NULL,
PRIMARY KEY(dni_empleado, cod_trabajo)
);

CREATE TABLE HistorialSalarial(


dni_empleado INT NULL,
salario INT NULL,
fec_comienzo DATE,
fec_fin DATE,
PRIMARY KEY(dni_empleado, salario, fec_comienzo)
);

CREATE TABLE Departamento(


cod_dpto INT PRIMARY KEY NULL,
nombre_dpto VARCHAR(30) NOT NULL,
padre_dpto VARCHAR(30) NULL,
presupuesto INT NOT NULL
);

CREATE TABLE Estudio(


dni_empleado INT NULL,
universidad INT NULL,
anio YEAR,
grado VARCHAR(100) NULL,
especialidad VARCHAR(60) NULL,
PRIMARY KEY(dni_empleado, universidad, especialidad)
);

CREATE TABLE Universidad(


cod INT PRIMARY KEY NULL,
nombre VARCHAR(30) NOT NULL,
ciudad VARCHAR(60) NULL,
municipio VARCHAR(60) NULL,
cod_postal INT NULL
);
CREATE TABLE Trabajo(
cod INT PRIMARY KEY NULL,
nombre VARCHAR(30) NOT NULL,
salario_min INT NOT NULL,
salario_max INT NOT NULL
);

INSERT INTO Empleado( dni, nombre, apellido1, apellido2, direcc1, direcc2,


provincia, cod_postal, sexo, fec_nac)
VALUES (111, "Juan", "Felipe", "Carlos", "calle1", "calle2", "Toledo",
45200, 2, 19/05/2000),
(222, "Juancho", "Carlos", "Vergonio", "calle3", "calle4",
"Madrid", 43200, 2, 01/04/2000),
(333, "Pedro", "Fuentes", "Piedras", "calle1", "calle2",
"Extremadura", 40200, 2, 13/04/2001),
(444, "Carlos", "Tiro", "Puentes", "calle1", "calle2",
"Cuenca", 34200, 2, 20/10/2002)
;

INSERT INTO HistorialLaboral (dni_empleado, cod_trabajo, fec_inicio, fec_fin,


cod_dpto, dni_supervisor)
VALUES (111, 1, 2010/10/10, 2021/10/05, 1, 222),
(222, 2, 2008/09/10, 2020/09/05, 2, 111),
(333, 3, 2002/10/10, 2019/08/05, 3, 444),
(444, 4, 2010/12/25, 2018/07/05, 4, 333)
;

INSERT INTO HistorialSalarial (dni_empleado, salario, fec_comienzo, fec_fin)


VALUES (111, 1000, 2010/10/10, 2021/10/05),
(222, 5000, 2008/09/10, 2020/09/05),
(333, 10000, 2002/10/10, 2019/08/05),
(444, 6000, 2010/12/25, 2018/07/05)
;

INSERT INTO Departamento (cod_dpto, nombre_dpto, padre_dpto, presupuesto)


VALUES (1, "Deus_Vult", 3,10000),
(2, "Juanchos", 4,10000),
(3, "RENTA", 1,10000),
(4, "OMG", 2,10000)
;

INSERT INTO Estudio (dni_empleado, universidad, anio, grado, especialidad)


VALUES (111, 1, 2018, "Superior", "Informatica"),
(222, 2, 2020, "Medio", "Medicina"),
(333, 3, 2021, "Superior", "Psicologia"),
(444, 4, 2018, "Superior", "Mecanica")
;

INSERT INTO Universidad (cod, nombre, ciudad, municipio, cod_postal)


VALUES (1, "Juancho_University", "Toledo", "Toledo", 45200),
(2, "Eduardo Esperanza", "Madrid", "Madrid", 20600),
(3, "HARDCORE_digo_HARDVARD", "Colorado", "Washington", 15300),
(4, "Huesos", "Du bai", "Du bai", 78600)
;
INSERT INTO Trabajo (cod, nombre, salario_min, salario_max)
VALUES (1, "Empresaurios", 1000, 3000),
(2, "Abogado_colgado", 3000, 5000),
(3, "El_diario", 950, 3000),
(4, "Playtime", 5000, 12000)
;

ALTER TABLE HistorialSalarial


ADD FOREIGN KEY (dni_empleado) REFERENCES Empleado(dni)

ALTER TABLE HistorialLaboral


ADD FOREIGN KEY (dni_empleado) REFERENCES Empleado(dni)

ALTER TABLE HistorialLaboral


ADD FOREIGN KEY (dni_supervisor) REFERENCES Empleado(dni)

ALTER TABLE HistorialLaboral


ADD FOREIGN KEY (cod_trabajo) REFERENCES Trabajo(cod)

ALTER TABLE HistorialLaboral


ADD FOREIGN KEY (cod_dpto) REFERENCES Departamento(cod_dpto)

ALTER TABLE Departamento


ADD FOREIGN KEY (padre_dpto) REFERENCES Departamento(cod_dpto)

ALTER TABLE Estudio


ADD FOREIGN KEY (dni_empleado) REFERENCES Empleado(dni)

ALTER TABLE Estudio


ADD FOREIGN KEY (universidad) REFERENCES Universidad(cod)

1-

2-

INSERT INTO Empleado (nombre, apellido1, apellido2, dni, sexo)


VALUES ("Sergio","Palma","Estrena","111222","P"),
("Lucia","Ortega","Plus","222333","")

Nos permite la insercion de los datos debido a que los campos requeridos estan
cumplidos, los demas campos en caso de que no cumplan se pondran NULL, como en el
sexo por ejemplo

3-

Nos saltara un error que nos impedira esto, debido a que entra en conflicto con la
FOREIGN KEY
4-

Nos saltara un error que nos impedira esto, debido a que entra en conflicto con la
FOREIGN KEY, si quisieramos borrarla tendriamos que quitar la FOREIGN KEY, ademas
de que no afectaria a los datos de Estudio porque no tenemos borrado en cascado

5-

ALTER TABLE Empleado


ADD Valoracion ENUM("1","2","3","4","5","6","7","8","9","10") NOT NULL DEFAULT "5";

6-

ALTER TABLE Empleado


MODIFY nombre VARCHAR(30) NULL;

7-

ALTER TABLE Empleado


MODIFY COLUMN direccion VARCHAR(50) NULL;

el campo ahora tendra 50 caracteres

8-

CREATE TABLE InfoUniversitaria (


nombre VARCHAR(30) PRIMARY KEY NULL,
apellidos VARCHAR(60) NULL,
nombre_universidad VARCHAR(60) NULL
);

9-

CREATE TABLE InfoUniversitaria (


nombre VARCHAR(20) NOT NULL,
apellidos VARCHAR(60) NOT NULL,
universidad VARCHAR(50) NOT NULL,
PRIMARY KEY (nombre, apellidos)
);

INSERT INTO InfoUniversitaria (nombre, apellidos, universidad)


SELECT Empleado.nombre, CONCAT(Empleado.apellido1," ", Empleado.apellido2),
Universidad.nombre
FROM Empleado, Estudio, Universidad
WHERE Empleado.dni = Estudio.dni_empleado AND
Estudio.universidad = Universidad.cod;

También podría gustarte