Actualización de bases de datos en MySQL
-
Upload
alexmerono -
Category
Documents
-
view
21.630 -
download
3
description
Transcript of Actualización de bases de datos en MySQL
ACTUALIZACIÓN DE BASES DE DATOS EN
MYSQLOperaciones con bases de datos ofimáticas y
corporativas
Inserción de datos
• Para insertar filas en una tabla se utiliza la orden INSERT
INSERT INTO NombreTabla [(columna1, columna2, .....)]
VALUES (valor1, valor2, .....);
Inserción de datos
INSERT INTO emple(emp_no, apellido, oficio, dir, fecha_alt, salario, comision, dept_no)
VALUES (1000,‘QUEVEDO’,‘ANALISTA’,7782,CURDATE(),3000,0,40);
Inserción de datos
• Cuando se dan valores a todas las columnas de la tabla, no es preciso especificar su nombre en la orden INSERt
• Los valores de las columnas han de ir en el mismo orden en que están definidas en la tabla.
INSERT INTO emple
VALUES (1000,‘QUEVEDO’,‘ANALISTA’,7782,CURDATE(),3000,0,40);
Inserción de datos
INSERT INTO emple(emp_no, apellido, oficio, salario, dept_no)
VALUES(1001,‘RODRIGUEZ’,‘ANALISTA’,3000,40);
INSERT INTO emple(emp_no,apellido) VALUES(1002,‘PEREZ’);
Inserción de datos
• Si las columnas no se especifican en la cláusula INSERT, se consideran, por defecto, todas las columnas de la tabla.
• Los valores se deben corresponder con cada una de las columnas que aparecen
• Además, deben coincidir con el tipo de datos definido para cada columna.
• Cualquier columna que no se encuentre en la lista de columnas tomará el valor NULL
Inserción con select
• Si añadimos a la orden INSERT una sentencia SELECT, se añaden tantas filas como devuelva la consulta.
INSERT INTO Nombretabla [(columna1, columna2, ....)]
SELECT columna1, columna2, ....
FROM NombreTabla2 .......
Inserción con select
• Disponemos de la tabla EMPLE30, cuya descripción es la misma que la de la tabla EMPLE.
INSERT INTO emple30(emp_no, apellido, oficio, dir, fecha_alt, salario, comision, dept_no)
SELECT emp_no, oficio, dir, fecha_alt, salario, comision, dept_no FROM emple WHERE dept_no=30;
Inserción con select• La consulta anterior es equivalente a esta:
INSERT INTO emple30 SELECT * FROM emple WHERE dept_no=30;
• Insertamos el empleado con número 1505 y apellido ‘GARCÍA’ en el departamento que tiene 3 empleados.
INSERT INTO emple(emp_no,apellido,dept_no)
SELECT 1505,‘GARCÍA’,dept_no
FROM emple GROUP BY dept_no HAVING COUNT(*)=3;
Modificación. UPDATE
• Para actualizar los valores de una tabla se utiliza la orden UPDATE
UPDATE NombreTabla
SET columna1=valor1, columna2=valor2.....
WHERE condicion
Modificación. UPDATE
• Sumamos 100 euros al salario de GIL
UPDATE emple
SET salario=salario+1000
WHERE apellido=‘GIL;
• Duplicamos el salario de todos los empleados
UPDATE emple SET salario=salario*2;
UPDATE CON SELECT• Se puede incluir una sentencia SELECT en una sentencia UPDATE
• Duplicar el salario a todos los empleados del departamento ‘VENTAS’
UPDATE emple
SET salario=salario*2
WHERE dept_no=(SELECT dept_no FROM depart WHERE dnombre=‘VENTAS’);
UPDATE CON SELECT
• Igualar el oficio y salario de GIL al salario y oficio de ARROYO
UPDATE emple
SET salario=(SELECT salario FROM emple WHERE apellido=‘ARROYO’),
oficio=(SELECT oficio FROM emple WHERE apellido=‘ARROYO’);
Borrado de filas. DELETE
• Para eliminar una o varias filas se utiliza la orden DELTE
DELETE FROM NombreTabla
WHERE condición;
•Si no se especifica condición, se eliminan todas las filas de la tabla
Borrado de filas. DELETE• Borrar todos los empleados del departamento 10
DELETE FROM emple
WHERE dept_no=10;
• Borrar el departamento de la tabla DEPART que no tenga empleados
DELETE FROM depart
WHERE dept_no NOT IN (select dept_no FROM emple);
Transacciones. commit y rollback
• Una transacción es una secuencia de una o más sentencias SQL que juntas forman una unidad de trabajo.
• Imagina que quieres borrar uno o varios registros de una tabla, pero te equivocas y eliminas todos los registros de la tabla.
• ¿Existe alguna forma de subsanar el error y dar marcha atrás para recuperar registros eliminados?
• Sí, utilizando transacciones.
Transacciones. commit y rollback
• Por defecto MySQL funciona en modo autocommit
• Se confirma cada sentencia ejecutada
Transacciones. commit y rollback
• Pasos para iniciar una transacción
• Se comienza una transacción con la sentencia START TRANSACTION
• Si se realizan modificaciones en la base de datos y queremos volver atrás y cancelar los cambios realizados, utilizamos ROLLBACK
• Para confirmar los cambios realizados utilizamos COMMIT
• Para comenzar una nueva transacción utilizamos START TRANSACTION