En un mundo empresarial donde las necesidades de información requieren de los datos más actualizados con el fin de proveer el mejor servicio tanto a clientes como proveedores, se vuelve muy necesaria la actualización de los datos, ya que su vigencia puede establecerse en plazos más cortos que años atrás.
Por ello, el reemplazo o la eliminación (en casos más extremos) de los datos es algo necesario y crucial para el buen desempeño de una organización. En este tema, aprenderás el manejo de las tablas de tal forma que puedas borrarlas por completo o solamente un conjunto de datos en particular a través del uso de instrucciones adecuadas para tener tus datos al día.
Uso de DELETE
MySQL ayuda a trabajar con la estructura más adecuada para el diseño de una base de datos que cumpla con las necesidades de cada empresa, sin embargo, en algunas ocasiones es necesario realizar el borrado de datos con el fin de garantizar que el sistema de gestión de bases de datos (SGBD) y sus entradas se encuentres actualizadas en todo momento, para ello se cuenta con el comando DELETE, que permite especificar de manera precisa, el conjunto de datos que se deben eliminar, definiendo los datos correspondientes y la tabla de la cual se desea hacer la eliminación. (Equipo editorial de IONOS, 2022)
La sintaxis de MySQL DELETE es la siguiente:
DELETE FROM tabla
WHERE [condición];
FROM indica al sistema de cuál tabla borrará los registros. Por su parte, WHERE realiza la definición de la condición que deberá cumplir el registro para ser eliminado; en caso de no especificarlo, se eliminarán todas las filas.
Para este tema, se usará la tabla ordenes_compra.csv (que puedes descargar aquí) con el fin de ejemplificar el uso de los comandos que se estarán revisando. Se recomienda darla de alta en MYSQL Workbench porque cuenta con registros de una compra como número de orden, tipo, embarque, destino, fecha de embarque, fecha de envío, precio, moneda, entre otros.
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.
Entre los campos de la tabla, se encuentra “cantidad”; se procederá a eliminar aquellas órdenes de compra cuya cantidad sea “menor a 50”.
Utiliza DELETE para borrar los registros que tienen menos de 50 artículos en su solicitud. Es importante incluir la sentencia WHERE para que no se borren todos los registros en su totalidad.
DELETE FROM empresa.ordenes_compra
WHERE ordenes_compra.cantidad<50;
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.
En esta pantalla, en la parte de Action Output (parte inferior de la imagen), observa las 28 filas afectadas o eliminadas. Así se garantiza el eliminado correcto de acuerdo con las especificaciones realizadas en WHERE.
Si quieres eliminar todos los registros de la tabla, no es necesario usar WHERE. La consulta quedaría de la siguiente manera:
DELETE FROM empresa.ordenes_compra;
NOTA. Debes tener mucho cuidado al utilizar esta instrucción porque podrías eliminar todos los registros de una tabla por error.
Uso de TRUNCATE
El comando TRUNCATE es un comando DDL (Lenguaje de Definición de Datos) que se encarga de borrar los registros de la tabla, pero sin eliminar su estructura y no hace uso de la cláusula WHERE, es importante aclarar que en caso de equivocarse al usar esta instrucción, se puede revertir, pero esto solo aplica para SQL Server, PostgreSQL, ya que no es posible hacerlo para MySQL ni Oracle. (Wdzięczna, 2022)
TRUNCATE es más rápido que DELETE porque no hace un barrido de todos los registros antes de eliminarlos, sino que bloquea la tabla para eliminarlos, usando menos espacio de transacción que DELETE. Otro aspecto relevante consiste en que, al terminar de ejecutarse, no devuelve el número de filas eliminadas de la tabla, por lo que no se verá esta información como en el ejemplo anterior. Adicionalmente, de acuerdo con Wdzięczna (2022), restablece el valor de autoincremento de la tabla al valor inicial que usualmente es 1, por lo que, si se agrega un registro después de ejecutar TRUNCATE, el ID será igual a 1. En PostgreSQL, sí se presenta la opción de elegir reiniciar o continuar el valor de autoincremento, mientras que, en Oracle, se utiliza una secuencia para incrementar los valores, la cual no es reiniciada por TRUNCATE.
Por último, hay que considerar que se requieren permisos para ejecutar esta instrucción tan importante. En PostgreSQL, se necesita el privilegio TRUNCATE; en SQL Server, el permiso es ALTER TABLE; en el caso de MySQL, se usa el privilegio DROP; y Oracle demanda el privilegio DROP ANY TABLE. Lo anterior con el fin de darle los permisos necesarios a este comando para ser ejecutado. Por defecto, este comando usa la restricción RESTRICT para evitar que una tabla que tenga referencias externas sea eliminada (truncada). Revisa, a continuación, un ejemplo de uso de TRUNCATE.
TRUNCATE TABLE estudiantes.
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.
Uso de REPLACE
La función REPLACE permite la búsqueda de una cadena de datos para ser reemplazada por otra dentro de las tablas de una base de datos, este comando es muy útil sobre todo cuando existe una cantidad grandes de registros y se necesitan hacer modificaciones de forma masiva en todos ellos, pero con una sola consulta. (WebExperto, 2021)
La sintaxis de este comando es la siguiente:
REPLACE (expresión, patrón, reemplazo)
Tomando en consideración lo anterior, se utilizará REPLACE para actualizar la información de la tabla “ordenes_compra”. En esta ocasión, se desea realizar el cambio de vendedor LightTree por Arbol de Luz, que aparece en el archivo que descargaste previamente. Utiliza la siguiente instrucción:
#Utiliza REPLACE para cambiar "LightTree" por "Arbol de Luz"
#Se usa la instrucción UPDATE/SET, que ayudará a realizar el cambio de forma permanente.
UPDATE ordenes_compra
SET
vendedor = REPLACE ("LightTree"," LightTree ","Arbol de Luz");
La vista actual de la tabla es la siguiente:
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.
Como resultado al ejecutar REPLACE, se hace un cambio en el nombre del VENDEDOR y el resultado sería el siguiente:
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.
Ahora bien, si necesitas ejecutar un reemplazo simple como, por ejemplo, cambiar el campo “tipo” de OUTBOUND a “saliente”, escribe la siguiente instrucción:
#Este remplazo es temporal ya que solo usas SELECT, el cual no altera la tabla, solo la filtra.
#Se busca "OUTBOUND" dentro de "Frutas/Verduras" y lo reemplazas por "Leguminosas".
SELECT REPLACE ("tipo","OUTBOUND","saliente");
El resultado sería el siguiente:
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.
Ahora, si necesitas corregir un cambio de información dentro de un campo, también lo puedes realizar teniendo una consulta como esta:
UPDATE ordenes_compra
SET comprador = REPLACE (comprador, 'AHTD', 'AH-TD2');
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.
Uso de DROP
De acuerdo con Trost (2022), el comando DROP eliminará toda la tabla, incluyendo todos los datos y las definiciones de sus columnas. Considera que, una vez realizada la eliminación usando el comando DROP, toda la tabla desaparecerá y no será posible recuperarla, mientras que DELETE y TRUNCATE solamente eliminan los datos de la tabla manteniendo sus definiciones. La sintaxis de DROP se muestra a continuación.
Es importante considerar que, al utilizar DROP, se suprimen las propiedades del campo, tales como la restricción de valores duplicados, relaciones con otros campos, etc.
Figura 8.1. Comparativo de antes y después de ejecutar DROP TABLE.
Ten en cuenta que, cuando una tabla tiene índices definidos que facilitan las búsquedas y evitan la duplicidad de información, será posible eliminarlos sin que eso implique borrar la información que contienen. Como lo muestra el ejemplo:
#Se elimina el Índice "orden ", (no se eliminan los datos).
ALTER TABLE ordenes_compra
DROP INDEX orden;
Así, se obtiene el mismo resultado en la misma tabla con los mismos datos con el índice inoperativo.
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.
Como recomendación final, ten cuidado con el uso de los comandos DELETE, TRUNCATE y DROP porque los registros o la tabla completa no podrán ser restaurados después de ejecutar su eliminación. Asegúrate de que realmente no se necesitarán esos datos antes de realizar este tipo de acciones. Se recomienda ampliamente crear copias de seguridad del sistema de bases de datos para contar con respaldos en caso de que la información se borre por error o se necesite la recuperación de cierta información que se haya perdido.
Cuando se requiera eliminar información de las tablas, podrás usar los comandos descritos en el tema. DROP resulta el más idóneo siempre y cuando se use con precaución. Por su parte, para el caso de actualizaciones, utiliza REPLACE que permitirá seleccionar y cambiar solamente lo necesario.
La actualización de las tablas es una tarea ardua que implica mucha organización con el fin de salvaguardar la información de la base de datos. No olvides crear los respaldos necesarios para poder restablecer la información, especialmente antes de eliminar los datos.
Asegúrate de:
Tecmilenio no guarda relación alguna con las marcas mencionadas como ejemplo. Las marcas son propiedad de sus titulares conforme a la legislación aplicable, estas se utilizan con fines académicos y didácticos, por lo que no existen fines de lucro, relación publicitaria o de patrocinio.
Los siguientes enlaces son externos a la Universidad Tecmilenio, al acceder a ellos considera que debes apegarte a sus términos y condiciones.
Lecturas
Videos
Tecmilenio no guarda relación alguna con las marcas mencionadas como ejemplo. Las marcas son propiedad de sus titulares conforme a la legislación aplicable, estas se utilizan con fines académicos y didácticos, por lo que no existen fines de lucro, relación publicitaria o de patrocinio.
La obra presentada es propiedad de ENSEÑANZA E INVESTIGACIÓN SUPERIOR A.C. (UNIVERSIDAD TECMILENIO), protegida por la Ley Federal de Derecho de Autor; la alteración o deformación de una obra, así como su reproducción, exhibición o ejecución pública sin el consentimiento de su autor y titular de los derechos correspondientes es constitutivo de un delito tipificado en la Ley Federal de Derechos de Autor, así como en las Leyes Internacionales de Derecho de Autor.
El uso de imágenes, fragmentos de videos, fragmentos de eventos culturales, programas y demás material que sea objeto de protección de los derechos de autor, es exclusivamente para fines educativos e informativos, y cualquier uso distinto como el lucro, reproducción, edición o modificación, será perseguido y sancionado por UNIVERSIDAD TECMILENIO.
Queda prohibido copiar, reproducir, distribuir, publicar, transmitir, difundir, o en cualquier modo explotar cualquier parte de esta obra sin la autorización previa por escrito de UNIVERSIDAD TECMILENIO. Sin embargo, usted podrá bajar material a su computadora personal para uso exclusivamente personal o educacional y no comercial limitado a una copia por página. No se podrá remover o alterar de la copia ninguna leyenda de Derechos de Autor o la que manifieste la autoría del material.