Actualización de bases de datos en MySQL

18
ACTUALIZACIÓN DE BASES DE DATOS EN MYSQL Operaciones con bases de datos ofimáticas y corporativas

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

Page 1: Actualización de bases de datos en MySQL

ACTUALIZACIÓN DE BASES DE DATOS EN

MYSQLOperaciones con bases de datos ofimáticas y

corporativas

Page 2: Actualización de bases de datos en MySQL

Inserción de datos

• Para insertar filas en una tabla se utiliza la orden INSERT

INSERT INTO NombreTabla [(columna1, columna2, .....)]

VALUES (valor1, valor2, .....);

Page 3: Actualización de bases de datos en MySQL

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);

Page 4: Actualización de bases de datos en MySQL

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);

Page 5: Actualización de bases de datos en MySQL

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’);

Page 6: Actualización de bases de datos en MySQL

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

Page 7: Actualización de bases de datos en MySQL

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 .......

Page 8: Actualización de bases de datos en MySQL

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;

Page 9: Actualización de bases de datos en MySQL

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;

Page 10: Actualización de bases de datos en MySQL

Modificación. UPDATE

• Para actualizar los valores de una tabla se utiliza la orden UPDATE

UPDATE NombreTabla

SET columna1=valor1, columna2=valor2.....

WHERE condicion

Page 11: Actualización de bases de datos en MySQL

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;

Page 12: Actualización de bases de datos en MySQL

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’);

Page 13: Actualización de bases de datos en MySQL

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’);

Page 14: Actualización de bases de datos en MySQL

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

Page 15: Actualización de bases de datos en MySQL

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);

Page 16: Actualización de bases de datos en MySQL

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.

Page 17: Actualización de bases de datos en MySQL

Transacciones. commit y rollback

• Por defecto MySQL funciona en modo autocommit

• Se confirma cada sentencia ejecutada

Page 18: Actualización de bases de datos en MySQL

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