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