Además de insertar y consultar, otras operaciones de gran importancia dentro de la manipulación de nuestros datos, son la actualización y eliminación de registros dentro de las tablas de la base de datos.

Actualizar datos en una tabla

La actualización de datos nos permite modificar los valores que han sido insertados dentro de los campos de nuestras tablas. Podemos lograr esto usando el comando UPDATE.

Por ejemplo, vamos a consultar las sucursales y actualizar los datos en una de ellas:

MariaDB [storage]> SELECT 
                      id, name, start_date 
                   FROM 
                      branches;

Esta consulta nos devuelve el siguiente resultado:

+----+------------+------------+
| id | name       | start_date |
+----+------------+------------+
|  1 | SUCURSAL A | 2020-07-16 |
|  2 | SUCURSAL B | 2020-08-16 |
|  3 | SUCURSAL C | 2020-09-16 |
|  4 | SUCURSAL D | 2020-10-16 |
+----+------------+------------+
4 rows in set (0.000 sec)

Ahora, actualicemos la fecha de apertura de la última sucursal:

MariaDB [storage]> UPDATE branches 
                   SET 
                      start_date = '2020-10-19' 
                   WHERE 
                      id = 4;

El comando UPDATE va seguido del nombre de la tabla que deseas actualizar, luego la cláusula SET con los campos y su nuevo valor (separados por coma), y por último la cláusula WHERE, para aplicar la modificación de estos campos sólo en los registros que cumplan con las condiciones definidas.

Si no incluyes la cláusula WHERE se modificará el campo con el nuevo valor en TODOS los registros de la tabla.

Si consultamos nuevamente las sucursales, veremos la modificación:

+----+------------+------------+
| id | name       | start_date |
+----+------------+------------+
|  1 | SUCURSAL A | 2020-07-16 |
|  2 | SUCURSAL B | 2020-08-16 |
|  3 | SUCURSAL C | 2020-09-16 |
|  4 | SUCURSAL D | 2020-10-19 |
+----+------------+------------+
4 rows in set (0.000 sec)

Eliminar datos en una tabla

El comando DELETE nos permite eliminar registros de forma física en nuestras tablas, es decir, borrará el registro de la tabla completamente.

Por ejemplo, vamos a eliminar la SUCURSAL D en la tabla branches, dado que no tiene empleados asignados:

MariaDB [storage]> DELETE FROM branches 
                   WHERE id = 4;

En la lección anterior te enseñamos cómo obtener las sucursales que no tienen empleados asignados usando el comando SELECT con la cláusula RIGHT JOIN.

El comando DELETE va seguido de la cláusula FROM y el nombre de la tabla donde deseamos eliminar los registros, luego, se agrega la cláusula WHERE para aplicar esta operación solamente en los registros que cumplan con las condiciones definidas.

Si no incluyes la cláusula WHERE se eliminarán TODOS los registros de la tabla.

Verifica que los registros que deseas eliminar no estén relacionados con registros en otras tablas, de lo contrario, la instrucción podría fallar.

Ahora, si consultamos nuevamente las sucursales, veremos que la SUCURSAL D no existe:

+----+------------+------------+
| id | name       | start_date |
+----+------------+------------+
|  1 | SUCURSAL A | 2020-07-16 |
|  2 | SUCURSAL B | 2020-08-16 |
|  3 | SUCURSAL C | 2020-09-16 |
+----+------------+------------+
3 rows in set (0.000 sec)

Para evitar una catástrofe si cometes un error, te recomendamos siempre crear un respaldo de tu base de datos de producción antes de ejecutar una acción UPDATE o DELETE o asegúrate al 100% que estás trabajando con una base de datos local sin datos importantes antes de ejecutar dichas acciones.

¡Felicitaciones por completar esta serie de Introducción a SQL!

Para continuar aprendiendo mucho más sobre SQL puedes obtener nuestro libro Aprende SQL con MySQL y MariaDB con 40% de descuento.

Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.

Lección anterior Uso de Join en consultas con MySQL / MariaDB