Your SlideShare is downloading. ×
Tema 7 Trabajando Con Mysql
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Tema 7 Trabajando Con Mysql

4,521
views

Published on

Published in: Education, Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,521
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
162
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. TEMA 7: TRABAJO CON MYSQL 1.- INTRODUCCION 2.-INSTALACION DE MYSQL 3.-USO DEL MONITOR MYSQL 4.-CONCEPTOS BÁSICOS DE MYSQL 1
  • 2. 1.- INTRODUCCION Las características principales de Mysql son: ✔ Es un gestor de bases de datospor tanto es una aplicación capaz de manejar este conjunto de datos de manera eficiente y cómoda. ✔ Es una base de datos relacional ✔ Es Opensourceel código fuente se puede descargar ✔ Es rápido, seguro y fácil de usar ✔ Utiliza el lenguaje de consultas estructurado SQL ✔ Existe una gran cantidad de software que lo usa. 2.-INSTALACION DE MYSQL El equipo en el que se ejecuta Mysql y que almacena los datos se denomina servidor MySQL. Para poder establecer una conexión con ese servidor existen varias opciones de instalación. EL CLIENTE Y EL SERVIDOR DE MYSQL ESTÁN EN LA MISMA MAQUINA CLIENTE SERVIDOR MYSQL MYSQL ✔ 2
  • 3. ✔ ✔ La tercera opción sería que el cliente mysql no se encuentre instalado en el equipo de sobremesa y necesitaramos conectarnos a otro equipo para utilizar el cliente MYSQL, es ese cano necesitaríamos Telnet o un cliente Secure Shell (SSH) para realizar la conexión. [2.1] Comenzar la instalación Descargar el fichero de instalación, en nuestro caso mysql-x.x.x- win.zip, del sitio web www.mysql.com ✔ Descomprimir su contenido en algún directorio temporal ✔ Ejecutar el fichero Setup.exe 3
  • 4. ✔ Una vez instalado, y si no lo crea la misma instalación, habrá que crear un fichero llamado MY.INI Ó MY.CNF que contendrá los siguientes parámetros: 4
  • 5. #This File was made using the WinMySQLadmin 1.0 Tool #22/04/2001 11:44:09 #Uncomment or Add only the keys that you know how works. #Read the MySQL Manual for instructions [mysqld] basedir=C:/mysql/BIN #bind-address=192.168.244.151 datadir=C:/mysql/ data language=C:/mysql/share/spanish #slow query log#= #tmpdir#= #port=3306 #set-variable=key_buffer=16M [WinMySQLadmin] Server=C:/mysql/bin/mysqld-opt.exe user=admin password=passadmin QueryInterval=10 La IP 192.168.244.151 no se debe cambiar. Este fichero se tendrá que copiar en el directorio de windows (C:/ Window ó C:/WINNT). Este fichero se crea en la instalación pero si tuviésemos otra instalación de MySQL, es decir, otra base de datos instalada en nuestro equipo, este fichero ya existiría y no se creará de nuevo, 5
  • 6. cogiendo los parámetros que se hayan escrito durante la primera instalación. ✔ El servicio se añade pero no se arranca. Si intentásemos arrancarlo nos daría un error 1067. Esto no debe preocuparnos, lo que nos dice es que para que este servicio arranque con éxito debemos reiniciar el equipo. Una vez reiniciado el servicio se arranca automáticamente. Sólo tenemos que ir al directorio c:mysqlbin y ejecutar el fichero WinMySQLAdmin ejecutándose la base de datos ya con el semáforo de estado en verde. ✔ Comprobar que el servicio de mysql está activo. Para ello iremos a: Inicio>Configuración>Panel de Control>Herramientas Administrativas>Servicios ✔ Ejecutar la herramienta WinmysqlAdmin para ver si las versiones son correctas etc. ✔ Pruebas de conexión: Acceder al servidor mediante un cliente de mysql 6
  • 7. 3.-USO DEL MONITOR MYSQL MYSQL ES UN PROGRAMA QUE SE EJECUTA DESDE EL PROMPT DEL SISTEMA, QUE PERMITE CONECTARSE A UN SERVIDOR MYSQL PARA ENVIARLE CONSULTAS Y COMANDOS, Y VER LOS RESULTADOS. Este comando permite: ✔ Consultar información de las bases de datos y tablas ✔ Crear bases de datos y tablas ✔ Eliminar bases de datos y tablas. ✔ Asignar y revocar privilegios. ✔ Consultar, insertar, actualizar y eliminar registros de una tabla [2.1] Sintaxis del comando mysql $shell> mysql [-h hostname] [-u usuario] [-p] contraseña [base de datos] ✔ En un entorno multiusuario es aconsejable escribir –p sin introducir la contraseña para que MYSQL al iniciarse la solicite 7
  • 8. ✔ Para una conexión a un host local como usuario root, las siguientes líneas son equivalentes. # mysql # mysql -u root # mysql -h localhost -u root Si se puede establecer la conexión a MySQL, se obtiene un mensaje de bienvenida, y se cambia el prompt, indicando que se pueden enviar consultas al servidor. # mysql Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 25 to server version: 3.23.41 Type 'help;' or 'h' for help. Type 'c' to clear the buffer. mysql>  [2.2] primeros comandos con el monitor de mysql  Un comando consta de una sentencia SQL seguida por punto y coma.  Al escribir un comando, mysql lo manda al servidor que lo ejecuta y posteriormente nos muestra los resultados y nos devuelve el prompt para indicar que está listo para recibir más consultas.  Mysql muestra cuántas filas fueron devueltas y cuanto tiempo tardó en ejecutarse la consulta.  Las palabras claves se pueden escribir usando mayúsculas y minúsculas. 8
  • 9.  Podemos escribir más de una sql en una línea separándolas por ;  Es mejor utilizar la comilla simple para la escritura de cadenas  No es necesario escribir un comando en una sola línea mysql determina el final cuando encuentra el ;  Si no queremos terminar de escribir una consulta podemos utilizar c ✔ Para saber la version y la fecha actual: mysql> SELECT VERSION(), CURRENT_DATE; ✔ El programa mysql permite ver las bases de datos existentes. mysql> SHOW DATABASES ; //Ejemplo mysql> SHOW DATABASES; +----------+ | Database | +----------+ | mysql | | test | +----------+ ✔ La base de datos mysql es muy importante para el funcionamiento del sistema de gestión de bases de datos puesto que corresponde al DICCIONARIO DE DATOS (relaciones que sirven para el correcto funcionamiento de la base de datos). Las tablas de la bd mysql contienen información sobre los privilegios de un determinado usuario sobre una base de datos cuando se conecta desde un determinado ordenador y quiere acceder a ciertas tablas o columnas de una tabla. 9
  • 10. ✔ La base de datos test se crea durante la instalación para servir como área de trabajo a los usuarios que que se inician en el aprendizaje de Mysql. ✔ El programa mysql permite crear bases de datos. Si estamos en Linux, los nombres de las bases de datos y las tablas son sensibles a mayúsculas y minúsculas. mysql> CREATE DATABASE nombreBaseDatos ; //Ejemplo mysql> CREATE DATABASE agendita; Query OK, 1 row affected (0.00 sec) ✔ Con el cliente mysql hay que seleccionar la base de datos sobre la que se va a trabajar. mysql> USE nombreBaseDatos ; (este comando solo puede ir escrito en una única línea) //Ejemplo mysql> USE agendita; Database changed ✔ Una vez seleccionada una base de datos, se pueden crear las tablas necesarias. //Ejemplo mysql> CREATE TABLE contactos ( -> id INT NOT NULL AUTO_INCREMENT , -> nombre VARCHAR(50) NOT NULL , 10
  • 11. -> email VARCHAR(50) NOT NULL , -> telefono VARCHAR(20) NOT NUL , -> PRIMARY KEY (id) ); Query OK, 0 rows affected (0.02 sec) ✔ Si queremos permite ver cuales son las tablas de una base de datos. mysql> SHOW TABLES ; //Ejemplo mysql> SHOW TABLES; +--------------------+ | Tables_in_agendita | +--------------------+ | contactos | +--------------------+ 1 row in set (0.00 sec ✔ Para poder examinar la estructura de una tabla. mysql> DESC nombreTabla ; //Ejemplo mysql> DESC contactos; +----------+-------------+------+-----+---------+ | Field | Type | Null | Key | Default | +----------+-------------+------+-----+---------+ | id | int(11) | | PRI | NULL | | nombre | varchar(50) | YES | | NULL | | email | varchar(50) | YES | | NULL | | telefono | varchar(50) | YES | | NULL | 11
  • 12. +----------+-------------+------+-----+---------+ 4 rows in set (0.00 sec) 12
  • 13. ✔ Vamos a insertar registros en la tabla utilizando la sentencia INSERT mysql> INSERT INTO contactos VALUES -> (0, 'Juan Penas', 'juancho@linux.com', '5675 -7383' ); mysql> INSERT INTO contactos VALUES -> (0, 'Bety la fea', 'bety@comedias.com', '6373 -3459' ); mysql> INSERT INTO contactos VALUES -> (0, 'Pepe pecas', 'pepe@cuentos.com', '7282 -2728' ); mysql> INSERT INTO contactos VALUES -> (0, 'Mary B.', 'mary@boquitas.com', '3459 -2339'); PARA NO TENER QUE UTILIZAR TANTOS INSERT INTO PODRIAMOS UTILIZAR UNO SOLO SEPARANDO LOS REGISTROS MEDIANTE COMAS ESTO REDUCE EL CODIGO Y HACE QUE EL SERVIDOR PROCESE MÁS RÁPIDO: mysql> INSERT INTO contactos VALUES -> (0, 'Juan Penas', 'juancho@linux.com', '5675 -7383' ), -> (0, 'Bety la fea', 'bety@comedias.com', '6373 -3459' ), -> (0, 'Pepe pecas', 'pepe@cuentos.com', '7282 -2728' ), -> (0, 'Mary B.', 'mary@boquitas.com', '3459 -2339'); ✔ Si queremos evitar tener que ejecutar múltiples insert podemos cargar una tabla a partir de un archivo de texto. El archivo debe contener un registro por línea separado por el tabulador cuidando de que el orden sea el mismo que utilizamos en la sentencia create table. Para valores desconocidos o sea null utilizaremos N. Observar también que las fechas debemos darselas en el formato YYYY-MM-DD 13
  • 14. mysql> LOAD DATA LOCAL INFILE “MIFICHERO.TXT” INTO TABLE CONTACTOS; ✔ Para restringir el acceso a una base de datos: mysql> GRANT ALL ON base.* TO NOMBREUSUARIO@MIPC IDENTIFIED BY ‘MICONTRASEÑA’;  nombreusuario ES EL NOMBRE DE USUARIO ASIGNADO DENTRO DEL CONTEXTO DE MYSQL  MIPC ES EL NOMBRE O LA DIRECCION IP DEL ORDENADOR DESDE EL QUE NOS CONECTAMOS  MICONTRASEÑA ES LA CONTRASEÑA QUE SE LE HA ASIGNADO A ESE USUARIO.  El nombre de usuario y la contraseña no tienen nada que ver con el nombre del usuario y la contraseña manejados por el sistema operativo ✔ Podemos utilizar las sentencias SELECT que ya conocemos desde el monitor mysql mysql> SELECT * FROM contactos; mysql> SELECT nombre, email FROM contactos; mysql> SELECT nombre, email, telefono FROM contactos -> WHERE id = 3; mysql> SELECT * FROM contactos WHERE nombre -> LIKE 'Pepe%'; mysql> SELECT COUNT(*) AS num FROM contactos; 14
  • 15. 4.-CONCEPTOS BÁSICOS DE MYSQL  [4.1] tipos de datos en mysql NUMÉRICOS: Existen tipos de datos numéricos, que se pueden dividir en dos grandes grupos, los que están en coma flotante (con decimales) y los que no. TinyInt: es un número entero con o sin signo. Con signo el rango de valores válidos va desde -128 a 127. Sin signo, el rango de valores es de 0 a 255 Bit ó Bool: un número entero que puede ser 0 ó 1 SmallInt: número entero con o sin signo. Con signo el rango de valores va desde -32768 a 32767. Sin signo, el rango de valores es de 0 a 65535. MediumInt: número entero con o sin signo. Con signo el rango de valores va desde -8.388.608 a 8.388.607. Sin signo el rango va desde 0 a16777215. Integer, Int: número entero con o sin signo. Con signo el rango de valores va desde -2147483648 a 2147483647. Sin signo el rango va desde 0 a 429.4967.295 BigInt: número entero con o sin signo. Con signo el rango de valores va desde -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807. Sin signo el rango va desde 0 a 18.446.744.073.709.551.615. Float: número pequeño en coma flotante de precisión 15
  • 16. simple. Los valores válidos van desde -3.402823466E+38 a -1.175494351E-38, 0 y desde 1.175494351E-38 a 3.402823466E+38. xReal, Double: número en coma flotante de precisión doble. Los valores permitidos van desde -1.7976931348623157E+308 a -2.2250738585072014E-308, 0 y desde 2.2250738585072014E-308 a 1.7976931348623157E+308 Decimal, Dec, Numeric: Número en coma flotante desempaquetado. El número se almacena como una cadena Tipo de Tamaño de Campo Almacenamiento TINYINT 1 byte SMALLINT 2 bytes MEDIUMINT 3 bytes INT 4 bytes INTEGER 4 bytes BIGINT 8 bytes FLOAT(X) 4 ú 8 bytes FLOAT 4 bytes DOUBLE 8 bytes DOUBLE 8 bytes PRECISION REAL 8 bytes M+2 bytes sí D > DECIMAL(M,D 0, M+1 bytes sí D =0 M+2 bytes if D > NUMERIC(M,D) 0, M+1 bytes if D =0 16
  • 17. FECHA: A la hora de almacenar fechas, hay que tener en cuenta que Mysql no comprueba de una manera estricta si una fecha es válida o no. Simplemente comprueba que el mes esta comprendido entre 0 y 12 y que el día esta comprendido entre 0 y 31. Date: tipo fecha, almacena una fecha. El rango de valores va desde el 1 de enero del 1001 al 31 de diciembre de 9999. El formato de almacenamiento es de año-mes-dia DateTime: Combinación de fecha y hora. El rango de valores va desde el 1 de enero del 1001 a las 0 horas, 0 minutos y 0 segundos al 31 de diciembre del 9999 a las 23 horas, 59 minutos y 59 segundos. El formato de almacenamiento es de año-mes-dia horas:minutos:segundos TimeStamp: Combinación de fecha y hora. El rango va desde el 1 de enero de 1970 al año 2037. El formato de almacenamiento depende del tamaño del campo: Tamaño Formato AñoMesDiaHoraMinutoSegundo 14 aaaammddhhmmss AñoMesDiaHoraMinutoSegundo 12 aammddhhmmss 8 ñoMesDia aaaammdd 6 AñoMesDia aammdd 4 AñoMes aamm 2 Año aa Time: almacena una hora. El rango de horas va desde -838 17
  • 18. horas, 59 minutos y 59 segundos a 838, 59 minutos y 59 segundos. El formato de almacenamiento es de 'HH:MM:SS' Year: almacena un año. El rango de valores permitidos va desde el año 1901 al año 2155. El campo puede tener tamaño dos o tamaño 4 dependiendo de si queremos almacenar el año con dos o cuatro dígitos. Tipo de Tamaño de Campo Almacenamiento DATE 3 bytes DATETIME 8 bytes TIMESTAMP 4 bytes TIME 3 bytes YEAR 1 byte CADENA: Char(n): almacena una cadena de longitud fija. La cadena podrá contener desde 0 a 255 caracteres. VarChar(n): almacena una cadena de longitud variable. La cadena podrá contener desde 0 a 255 caracteres. Dentro de los tipos de cadena se pueden distinguir otros dos subtipos, los tipo Test y los tipo BLOB (Binary large Object) La diferencia entre un tipo y otro es el tratamiento que reciben a la hora de realizar ordenamientos y comparaciones. Mientras que el tipo test se ordena sin tener en cuenta las Mayúsculas y las minúsculas, el tipo BLOB se ordena teniéndolas en cuenta. Los tipos BLOB se utilizan para almacenar datos binarios como pueden ser ficheros. 18
  • 19. TinyText y TinyBlob: Columna con una longitud máxima de 255 caracteres. Blob y Text: un texto con un máximo de 65535 caracteres. MediumBlob y MediumText: un texto con un máximo de 16.777.215 caracteres. LongBlob y LongText: un texto con un máximo de caracteres 4.294.967.295. Hay que tener en cuenta que debido a los protocolos de comunicación los paquetes pueden tener un máximo de 16 Mb. Enum: campo que puede tener un único valor de una lista que se especifica. El tipo Enum acepta hasta 65535 valores distintos Set: un campo que puede contener ninguno, uno ó varios valores de una lista. La lista puede tener un máximo de 64 valores. Tamaño de Tipo de campo Almacenamiento CHAR(n) n bytes VARCHAR(n) n +1 bytes TINYBLOB, TINYTEXT Longitud+1 bytes Longitud +2 BLOB, TEXT bytes MEDIUMBLOB, Longitud +3 MEDIUMTEXT bytes Longitud +4 LONGBLOB, LONGTEXT bytes ENUM('value1','value2',...) 1 ó dos bytes dependiendo del 19
  • 20. número de valores 1, 2, 3, 4 ó 8 bytes, SET('value1','value2',...) dependiendo del número de valores Diferencia de almacenamiento entre los tipos Char y VarChar: Almace Almace Valor CHAR(4) VARCHAR(4) namiento namiento '' '' 4 bytes " 1 byte 'ab' 'ab ' 4 bytes 'ab' 3 bytes 'abcd' 'abcd' 4 bytes 'abcd' 'abcdefgh' 'abcd' 4 bytes 'abcd' 5 bytes  [4.1] tipos de tablas en mysql Mysql soporta varios motores de almacenamiento que tratan con diferentes tipos de tablas. Los motores de almacenamiento incluyen algunos que tratan con tablas transaccionales y otros que no lo hacen. Los tipos de tablas transaccionales son: • INNODB Y BDB Los tipos de tablas no transaccionales son: • ISAM, MYISAM, MERGE Y HEAP 20
  • 21. Describamos brevemente algunos de los tipos existentes: ISAM: es el formato de almacenaje mas antiguo, y posiblemente podria desaparecer en futuras versiones. Presentaba limitaciones importantes como la no exportación de ficheros entre maquinas de distintas arquitecturas o que no podia usar mayores de 4 GigaBytes. MYISAM: es el tipo de tabla por defecto en MySQL desde la versión 3.23. Optimizada para sistemas operativos de 64 bits, permite ficheros de tamaños mayores que las ISAM. Los datos se almacenan en un formato independiente, lo que permite pasar tablas entre distintas plataformas. Los índices se almacenan en un archivo con la extensión ”.MYI” y los datos en otro archivo con extensión “.MYD”. Ofrece la posibilidad de indexar campos BLOB y TEXT. Además este tipo de tablas soportan el tipo de dato VARCHAR. Un inconveniente es que las tablas pueden llegar a corromperse, almacenando datos incorrectos debido a caídas del sistema o problemas de hardware. INNODB: InnoDB provee a MySQL con el soporte para trabajar con transacciones, además de hacer un mejor bloqueo de registros para las instrucciones SELECT muy parecido al usado por Oracle, con lo que incrementa el rendimiento y la concurrencia en ambientes multiusuario. InnoDB es el único formato que tiene MySQL para soportar llaves foráneas (FOREING KEY). Las características más importantes a destacar son:  Recuperación automática ante fallas. Si MySQL se da de baja de una forma anormal, InnoDB automáticamente completará las transacciones que quedaron incompletas. 21
  • 22.  Integridad referencial. Ahora se pueden definir llaves foráneas entre tablas InnoDB relacionadas para asegurarse de que un registro no puede ser eliminado de una tabla si aún está siendo referenciado por otra tabla.  Bloqueo a nivel de filas. Al usar tablas MyISAM, y tener consultas muy grandes que requieren de mucho tiempo, simplemente no se podían ejecutar más consultas hasta que terminarán las consultas que estaban en ejecución. En cambio, las tablas InnoDB usan bloqueo a nivel de filas para mejorar de manera impresionante el rendimiento. ¿Qué TIPO DE TABLA UTILIZAR?  Por razones de rendimiento, las tablas INNODB si hay que realizar gran cantidad de operaciones de inserción y actualización o bien utilizar integridad referencial.  Si las operaciones de selección son las mayoritarias es mejor el tipo MYISAM Cuando se crea una tabla, el tipo se indica añadiendo la opción TYPE al comando CREATE TABLE  CREATE TABLE T (I INT) TYPE=INNODB; Veamos ahora lo que es una TRANSACCIÓN.  [4.1] transacciones en mysql Una TRANSACCIÓN en MySQL es una secuencia de una o más sentencias SQL que juntas forman una unidad de trabajo. Es decir, las operaciones que forman una transacción debe ser completas en su totalidad o pueden se desechas si el proceso no se completó correctamente 22
  • 23. El SGBD tiene que disponer de procedimientos que aseguren la integridad de la información ante fallos de tipo físico, lógico, humano así como proteger los datos frente a accesos no autorizados. Supongamos una sucursal bancaria donde tenemos almacenados los datos de los clientes: Por ejemplo: Nº NOMBRE SALDO CUENTA 1 PALOMA 1 MILL 2 JUAN 2 MILL Supongamos un traspaso de la cuenta 2 de 1 MILL a la cuenta 1. La secuencia de operaciones lógicas a realizar sería: Restar 1MILL a la cuenta2 2.Sumar 1MILL a la cuenta1 ¿Qué ocurriría si se lleva a cabo la 1ª operación, pero no la 2ª? Evidentemente la B.D quedaría en un estado inconsistente. Nº NOMBRE SALDO CUENTA 1 PALOMA 1 MILL 2 JUAN 1 MILL 23
  • 24. A este problema se le conoce con el nombre del problema DE LA INFORMACION PERDIDA. Para evitar este problema el SGBD va a realizar lo que se conoce como TRANSACCION. Para controlar las transacciones el SGBD se apoya en 1 o más ficheros diarios de extensión LOG, sobre los que se va volcando la información. De manera que cada cierto tiempo el SGBD realiza un CHECKPOINT, un pto. de chequeo. Cuando realiza ese chequeo graba en ciertas áreas de MEMORIA SECUNDARIA el estado de la B.D. Suponiendo el siguiente diagrama de transacciones: Trans1 Trans4 Trans3 Trans2 Trans5 CHECKPOINT RECUPERACION EN CALIENTE/FRIO DE LA B.D: El SGBD deshace las transacciones que no hubieran concluido o bien las transacciones conclusas que no estén registradas en el área correspondiente de MEMORIA SECUNDARIA. 24
  • 25. Si la recuperación de la B.D. se hace a través de un BACKUP la recuperación se conoce con el nombre de RECUPAERACION EN FRIO. Otro ejemplo típico sería suponer que queremos borrar uno o varios registros de una tabla, pero nos equivocamos y eliminamos todos los registros de la tabla. ¿Existe alguna forma de subsanar el error y dar marcha atrás para recuperar los registros eliminados? La respuesta es sí, utilizando transacciones. Por defecto MySQL funciona en modo autocommit. Esto quiere decir que se confirma (COMMIT) cada sentencia ejecutada. Los pasos para iniciar una transacción son los siguientes:  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 hasta el momento, utilizaremos la sentencia ROLLBACK.  Si queremos confirmar los cambios realizados en la base de datos, utilizaremos la sentencia COMMIT, lo cual implica también que termina la transacción.  Si queremos comenzar una nueva transacción, usaremos START TRANSACTION. Nota: para que las transacciones funcionen correctamente, debemos utilizar tablas InnoDB. Veamos un ejemplo. Disponemos de la tabla EMPLE, que está formada por los campos que se muestran en la imagen. 25
  • 26. A continuación comenzamos una transacción con START TRANSACTION. Modificamos el salario de todos los empleados de la tabla EMPLE, con la siguiente sentencia SQL. • update emple set salario=1000; 26
  • 27. Observamos a continuación que se ha modificado el salario de todos los empleados. Deshacemos el trabajo ya que nos hemos equivocado. Para ello utilizamos la sentencia ROLLBACK. 27
  • 28. Y comprobamos a continuación que la tabla vuelve a su estado original. Si queremos validar los cambios en la base de datos, completaremos la transacción con el uso de la sentencia COMMIT. Si ejecutamos ROLLBACK justo después de hacer el COMMIT, los cambios realizados sobre la base de datos 28
  • 29. permanecerán, debido a que anteriormente se validó la transacción. 29