CREATE TABLE Empleados (CodEmpleado INT(11) PRIMARY KEY AUTO_INCREMENT not null, Nombre VARCHAR(50) not null, Apellido VARCHAR(50) not null, FechaNacimiento DATE not null, Direccion VARCHAR(100) not null, Telefono VARCHAR(15) not null, CorreoElectronico VARCHAR(100) not null, FechaContratacion DATE not null);
CREATE TABLE Deducciones (CodDeduccion INT PRIMARY KEY AUTO_INCREMENT not null, TipoDeduccion VARCHAR(50) not null, MontoDeduccion DECIMAL(10, 2) not null, FechaAplicacion DATE not null);
CREATE TABLE Beneficios (CodBeneficio INT(11) PRIMARY KEY AUTO_INCREMENT not null, TipoBeneficio VARCHAR(50) not null, MontoBeneficio DECIMAL(10, 2) not null);
CREATE TABLE Departamentos (CodDepartamento INT(11) PRIMARY KEY AUTO_INCREMENT not null, NombreDepartamento VARCHAR(100) not null);
CREATE TABLE Cargos (CodCargo INT(11) PRIMARY KEY AUTO_INCREMENT not null, NombreCargo VARCHAR(100) not null);
INSERT INTO Empleados (Nombre, Apellido, FechaNacimiento, Direccion, Telefono, CorreoElectronico, FechaContratacion) VALUES ('Juan', 'Martinez', '1985-03-15', '123 Calle Principal', '123-456-7890', 'juan@example.com', '2020-01-15'), ('Maria', 'Gomez', '1990-07-25', '456 Avenida Central', '456-789-0123', 'maria@example.com', '2018-05-10'), ('Carlos', 'Lopez', '1988-11-10', '789 Calle Secundaria', '789-012-3456', 'carlos@example.com', '2019-08-20');
INSERT INTO Deducciones (TipoDeduccion, MontoDeduccion, FechaAplicacion) VALUES ('Impuesto sobre la Renta', 150.00, '2024-04-30'), ('Seguro de Salud', 100.00, '2024-04-30'), ('Pension', 75.00, '2024-04-30'), ('Préstamo', 200.00, '2024-04-30'), ('Seguro de Vida', 50.00, '2024-04-30');
INSERT INTO Beneficios (TipoBeneficio, MontoBeneficio) VALUES ('Bonificación Anual', 1000.00), ('Bono por Desempeño', 500.00), ('Subsidio de Transporte', 200.00), ('Subsidio de Alimentación', 150.00), ('Bono de Navidad', 300.00);
INSERT INTO Departamentos (NombreDepartamento) VALUES ('Recursos Humanos'), ('Contabilidad'), ('Ventas'), ('Marketing'), ('Tecnología');
INSERT INTO Cargos (NombreCargo) VALUES ('Gerente de Recursos Humanos'), ('Contador'), ('Representante de Ventas'), ('Especialista en Marketing'), ('Ingeniero de Software');
ALTER TABLE Empleados ADD CONSTRAINT fk_empleados_deduccion FOREIGN KEY (IdDeduccion) REFERENCES Deducciones(CodDeduccion);
ALTER TABLE Empleados ADD CONSTRAINT fk_empleados_departamento FOREIGN KEY (IdDepartamento) REFERENCES Departamentos(CodDepartamento);
ALTER TABLE Empleados ADD CONSTRAINT fk_empleados_beneficio FOREIGN KEY (IdBeneficio) REFERENCES Beneficios(CodBeneficio);
ALTER TABLE Departamentos ADD CONSTRAINT fk_departamentos_cargo FOREIGN KEY (IdCargo) REFERENCES Cargos(CodCargo);