actualización de bases de datos en mysql
DESCRIPTION
Presentación que muestra conceptos básicos de actualización de bases de datos en MySQL.TRANSCRIPT
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