Solución á practica DML sobre a base de datos traballadores
Sumario
Solucións
Tarefa 1.1
1 insert into centro 2 values( 40,'FRANQUICIA LUGO', 'C/PROGRESO, 8 - LUGO' ) ;
Tarefa 1.2
1 insert into empregado (empNumero, empDepartamento, empExtension, empDataNacemento, 2 empDataIngreso, empSalario, empComision, empFillos, empNome) 3 values (750,110,25,'1990-02-12',curdate(),825,50,1,'BARCIA, ANGELES'), 4 (751,110,25,'1985-10-22',subdate(curdate(),15),900,null,0,'MENDEZ, RICARDO'), 5 (752,120,45,'1992-05-09',null,1200,150,2,'BERNARDEZ, LUCIA'), 6 (753,100,200,'1980-11-05',curdate(),1000,300,1,'VALIN, EVA');
Tarefa 1.3
1 update empregado 2 set empSalario = round(empSalario*1.05,2), 3 empComision = round(empComision*1.065,2);
Tarefa 1.4
1 update empregado 2 set empDataIngreso = adddate(last_day(curdate()),1); 3 where empNumero = 752 ;
Tarefa 1.5
1 update empregado 2 set empSalario = round(empSalario*1.02,2) 3 where empDepartamento = 120 ;
Tarefa 1.6
1 update empregado 2 set empComision=ifnull(empComision,0)+50 3 where empDepartamento in (select depNumero 4 from departamento 5 where depCentro in (select cenNumero 6 from centro 7 where cenNome='SEDE CENTRAL'));
Tarefa 1.7
1 update departamento 2 set depPresuposto = depPresuposto-depPresuposto*0.10 3 order by depPresuposto desc 4 limit 1 ;
-- Unha alternativa en MySQL, empregando variables de usuario: select @mayor:=max(depPresuposto) from departamento; update departamento set depPresuposto=depPresuposto-depPresuposto*0.10 where depPresuposto = @mayor; </syntaxhighlight>
Tarefa 1.8
1 delete from empregado 2 where empNumero = 380 ;
Tarefa 1.9
1 delete from empregado 2 where timestampdiff(year, empDataNacemento, curdate())>=60; 3 -- Outra forma de facelo: 4 delete from empregado 5 where date_add(empDataNacemento, interval 60 year)<curdate();
Tarefa 1.10
1 delete em, de 2 from departamento as de join empregado as em 3 where de.depNumero=em.empDepartamento 4 and de.depNumero=121;
Tarefa 1.11
1 -- creación da táboa temporal 2 create temporary table empregado_120 like empregado; 3 -- inserción de datos 4 insert into empregado_120 5 select * 6 from empregado 7 where empDepartamento = 120;