Está en la página 1de 2

TEMA 4 SQL ejercicios 5 Actualizacin de datos

Como en estos ejercicios se van a modificar los valores almacenados en la base de datos, es conveniente guardar antes una copia de las tablas, en los cuatro primeros ejercicios crearemos una copia de los datos almacenados para luego poder recuperar los valores originales. 1 Crear una tabla (llamarla nuevaempleados) que contenga las filas de la tabla empleados. SELECT * INTO nuevaempleados FROM Empleado; 2 Crear una tabla (llamarla nuevaoficinas) que contenga las filas de la tabla oficinas. SELECT * INTO nuevaoficinas FROM Oficinas; 3 Crear una tabla (llamarla nuevaproductos) que contenga las filas de la tabla productos. SELECT * INTO nuevaproductos FROM Productos; 4 Crear una tabla (llamarla nuevapedidos) que contenga las filas de la tabla pedidos. SELECT * INTO nuevapedidos FROM Pedidos; 5 Subir un 5% el precio de todos los productos del fabricante ACI. UPDATE Productos SET Precio=(Precio+Precio*0.05) WHERE Idfab="aci" ; 6 Aadir una nueva oficina para la ciudad de Madrid, con el nmero de oficina 30, con un objetivo de 100000 y regin Centro. INSERT INTO Oficinas (oficina,ciudad,region,objetivo) VALUES (30,"Madrid","Centro",100000) ; Otra forma: INSERT INTO Oficinas VALUES (30,"Madrid","Centro",NULL,100000,NULL,"Centro"); 7 Cambiar los empleados de la oficina 21 a la oficina 30. UPDATE Empleado SET Empleado.oficina=30 WHERE Empleado.oficina=21;

8 Eliminar los pedidos del empleado 105. DELETE * FROM Pedidos WHERE Rep=105; 9 Eliminar las oficinas que no tengan empleados. DELETE * FROM Oficinas WHERE Oficinas.oficina NOT IN (SELECT Empleado.oficina FROM Empleado); 10 Recuperar los precios originales de los productos a partir de la tabla nuevosproductos. UPDATE Productos INNER JOIN nuevaproductos ON (Productos.Idfab=nuevaproductos.Idfab) AND (Productos.Idproducto=nuevaproductos.Idproducto) SET Productos.Precio=nuevaproductos.Precio; 11 Recuperar las oficinas borradas a partir de la tabla nuevaoficinas. INSERT INTO Oficinas SELECT * FROM nuevaoficinas WHERE nuevaoficinas.oficina NOT IN (SELECT Oficinas.oficina FROM Oficinas); 12 Recuperar los pedidos borrados en el ejercicio 8 a partir de la tabla nuevapedidos. INSERT INTO Pedidos SELECT * FROM nuevapedidos WHERE nuevapedidos.Rep=105; 13 A los empleados de la oficina 30 asignarles la oficina 21. UPDATE Empleado SET Empleado.oficina=21 WHERE Empleado.oficina=30;