Actualización de bases de datos en MySQL

Post on 24-May-2015

21.630 views 3 download

description

Presentación que muestra conceptos básicos de actualización de bases de datos en MySQL.

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