Modificar, borrar, cambiar y gestionar registros

Modificar el contenido de la base de datos

Una base de datos debe permitirnos modificar las filas que esten ubicada en la tabla. Podemos realizar estas operaciones SQL contamos con los operadores update (actualizar) y delete (eliminar) que se utilizan en combinación con la palabra clave where ya que para poder alterar o eliminar algún dato primero debemos localizarlo.

Debemos tener cuidado para no cometer errores que puede hacernos perder información primordial. Para minimizar el riesgo de errores las bases de datos contiene un mecanismo que se llama transacción y que consiste en que cualquier modificación hecha con insert, update y delete debe confirmarse con el comando commit para que sea efectiva.

Delete

Este comando elimina registros de una tabla.

Sintaxis:

Donde:

  • delete from.- Indicamos a la base de datos que vamos a borrar registros.
  • tabla.- La tabla en la cual borraremos registros.
  • where.- condición de búsqueda que debe cumplir los registros. Es opcional pero si no la especificamos se eliminaran todos los registros de la tabla.

Ejemplos:

Comenzamos contando los registros de nuestra tabla CLIENTES.

En este caso disponemos de 8 registros.

Seguidamente vamos a borrar los registros de los CLIENTES que no tienen DNI.

Volvemos a contar los registros de la tabla dando como resultado 5.

Ahora vamos a borrar los registros de los CLIENTES que tengan más de 30 años.

Vemos que en la tabla nos quedan 3 registros.

Para acabar eliminamos todos los registros restantes con lo cuál la tabla quedará vacía.

Descartando cambios

Para descartar todos los cambios  podemos utilizar la sentencia rollback.

Si volvemos a consultar el número de registros vemos que tenemos otra vez 8.

Update

Este comando sirve para modificar datos de una tabla.

Sintaxis:

Donde:

  • update.- Indica a la base de datos que vamos a modificar registros.
  • tabla.- Tabla donde vamos a realizar los cambios.
  • asignaciones.-Valores separados por comas mediante las que indicamos los nuevos valores de los atributos de la tabla. Estos valores pueden ser fijos (números, textos, etc.), operaciones (sumar una cantidad) o incluso referirse a otras columnas de la misma fila.
  • where.- Es opcional pero si no añadimos ninguna condición se modificarán todos los registros de la tabla.

Ejemplo:

Volvemos a descartar los cambios anteriores.

Transacciones

En nuestro editor DB BROWSE FOR SQLITE el funcionamiento de update es un poco diferente al delete. Una transacción debe acabar explícitamente con alguna de las sentencias commit rollback. La diferencia entre commit y rollback es que commit confirma todos los cambios producidos en la tabla durante la ejecución de la transacción, mientras que, rollback deshace todos los cambios que se hayan producido en la tabla dejándolo todo como estaba al principio.

Sintaxis:

Donde:

  • begin transaction.- Marca el inicio del bloque de instrucciones.
  • sentencias SQL.- Consultas de modificaciones separadas por punto y coma (;).
  • commit / rollback.- Acepta o descarta los cambios.

Ejemplo:

  1. Sumaremos 5 años más a todos los clientes.
  2. Sumaremos 100 puntos a todos los clientes que no tengan ninguno y sean mayores de 30 años.
  3. Contar los clientes con al menos 1 punto.
  4. Descartar los cambios.
  5. Contar de nuevo los clientes con al menos 1 punto.

Vemos el resultado de los 3 primeros puntos, en el primer conteo:

Añadimos el resto de los puntos:

En el segundo conteo y tras descartar los cambios con rollback nos muestra 2 registros.

Si al ejecutar begin transaction el editor nos muestra el error “cannot start transaction within a transaction: begin transaction (Hay una transacción abierta). Ejecuta un rollback y vuelve a empezar.

Ejercicios:

En estos ejercicios no te olvides de comenzar con begin transaction, y finalízalas con rollback para evitar riesgos.

  • Asigna el número de socio 1010 al cliente con DNI 78665432Q.
  • Borra los clientes que no son socios.
  • Asigna a los CLIENTES tantos PUNTOS como el número de socio que tengan.

 

Anuncios