Cómo actualizar registros con SQL UPDATE

¿Ya sabes cómo actualizar registros con SQL? En este tutorial dirigido a futuros profesionales te explico cómo actualizar registros en SQL con ejemplos.

sql update consultas sql

Tras haber visto todas las posibilidades para insertar datos con sql, vamos a ver ahora cómo actualizar los registros almacenados en la base de datos mediante consultas SQL.

Las actualizaciones de registros en bases de datos son algo más delicadas que las inserciones, ya que sino nos andamos con precaución, podemos acabar sobrescribiendo todos los registros de una tabla.

Como siempre en SrCodigoFuente voy a enseñarte ejemplos reales de uso a la vez que avanzamos por los distintos puntos claves del proceso.

Terminaré este tutorial con formas avanzadas de actualizar los registros por si te atreves a probar o estás buscando un conocimiento completo sobre cómo se utiliza la sentencia UPDATE.

¿Cuál es la consulta SQL para actualizar registros?

Para actualizar las distintas filas, también conocidas como tuplas, en una tabla, utilizaremos la sentencia UPDATE de SQL.

La sentencia UPDATE permite modificar múltiples registros de una tabla, así que cuidado, con una sola consulta podrías modificar TODOS los registros de una misma tabla.

La sintaxis o estructura de una consulta UPDATE de SQL es la siguiente:

UPDATE tabla
SET columna = valor;

Esa es la estructura de una consulta UPDATE sencilla y que modificaría todos los registros de la tabla indicada.

La estructura completa de esta sentencia SQL es la siguiente:

UPDATE tabla
SET columna = valor
[WHERE condiciones];

Observa cómo he escrito la sentencia WHERE entre corchetes, quiero decir con esto que esta parte es opcional y no obligatoria.

Cómo se usa la consulta UPDATE de SQL

Ya conoces la estructura de una consulta UPDATE, vamos ahora a ver cómo podríamos usarla en distintos casos.

Voy a mostrarte a continuación los casos más comunes y sencillos en los que podrías necesitas utilizar un UPDATE:

  1. Actualizar una columna de uno o varios registros en concreto.
  2. Actualizar una columna de todos los registros de una tabla.
  3. Modificar varias columnas de una o más filas de una tabla.
  4. Modificar varias columnas de todas las filas de una tabla.

En los siguientes ejemplos voy a trabajar sobre una tabla tienda creada con una consulta CREATE cómo la siguiente:

CREATE TABLE tienda (
	id INT PRIMARY KEY,
	nombre VARCHAR(50) NOT NULL,
	direccion VARCHAR(150) NOT NULL,
	contacto VARCHAR(100),
	tlf VARCHAR(15)
);

1. UPDATE de una columna de uno o varios registros

Para cambiar los datos de uno o varios registros en concreto, deberemos hacer uso de la clausulaWHERE. Cómo hemos dicho antes, se pueden indicar una o varias condiciones, al igual que en una consulta SELECT.

A continuación te dejo un UPDATE para actualizar los datos de ciertos registros de la tabla tienda. Para ser exactos voy a modificar el teléfono del registro con id 33:

UPDATE tienda
SET tlf = ‘765 333 120’
WHERE id = 33;

2. Consulta UPDATE para modificar todos los registros de una tabla

El siguiente ejemplo, aunque prácticamente dicho con la propia explicación de la sentencia UPDATE, quiero que deje claro el funcionamiento de un UPDATE sin WHERE:

UPDATE tienda
SET contacto = ‘srCodigoFuente’;

El UPDATE del ejemplo modificaría TODOS los registros de la tabla tienda sobrescribiendo su dato de la columna contacto por el valor srCodigoFuente.

3. Modificar varias columnas de una o más filas de una tabla.

Atento ahora a esta consulta, ya que si que difiere de lo visto en las anteriores en un punto clave: vamos a modificar varias columnas de una misma tabla.

Gracias a que SQL es un lenguajae sencillo vas a ver que la tarea en cuestión es sencilla de resolver. Básicamente vamos a separar los pares columna = valor mediante comas.

Aquí el ejemplo:

UPDATE tienda
SET contacto = ‘srCodigoFuente’, tlf = ‘765 333 120’
WHERE direccion LIKE ‘%Madrid%’;

Esta vez la consulta UPDATE actualiza el valor de las columnas contacto y tlf con los valors srCodigoFuente y 765 333 120 respectivamente. Además, con el WHERE, configuro que la actualización solo se haga sobre los registros que contienenla ciudad Madrid.

4. Modificar varias columnas de todas las filas de una tabla.

Voy a terminar esta serie de ejemplos con otra variante más: actualizar el valor de varias columnas pero para todos los registros de la tabla tienda.

El siguiente ejemplo cambia el valor de la columna nombre y direccion para todos los registros de la tabla tienda y los deja vacíos:

UPDATE tienda
SET nombre = ‘’, direccion = ‘’;

SQL UPDATE de forma avanzada

En el apartado anterior te he expuesto uno a uno los 4 usos más comunes de la sentencia UPDATE. Ahora quiero ir un paso más allá y exponerte otros casos de uso que también son relativamente comunes pero algo más complejos.

Los casos de uso que quiero enseñarte son varios:

  1. Actualizar el valor de una columna con el valor de otra.
  2. Incrementar el valor numérico de una columna de tipo INT.
  3. Insertar la concatenación del valor de varias columnas en otra columna.

Los siguientes ejemplos voy a realizarlos modificando las filas de una tabla creada con la siguiente sentencia CREATE TABLE:

CREATE TABLE producto (
	id INT,
	codigo VARCHAR(20),
	nombre VARCHAR(100) NOT NULL,
	descripcion_corta VARCHAR (255),
	descripcion TEXT,
	texto_busqueda VARCHAR(120),
	visitas INT,
	PRIMARY KEY (id)
);

1. UPDATE SET una columna igual al valor de otra

Este tipo de actualizaciones son útiles para replicar datos de una columna a otra de una mismo registro. El UPDATE completo para este fin tendría el siguiente aspecto:

UPDATE producto
SET descripcion = descripcion_corta;

He actualizado con este UPDATE SQL todos los registros de la tabla producto de forma que el texto de su columna descripcion_corta sea igual ala de su columna descripcion.

2. Incrementar una columna de tipo numérico

Un UPDATE bastante común en desarrollos web grandes es la acción de incrementar el valor de una columna de tipo numérico de la que, aunque desconozcamos su valor, sabemos que queremos incrementar un cierto valor.

En el siguiente ejemplo sobre la tabla producto voy a incrementar la columna visitas en 1 para un registro concreto con el id 98200:

UPDATE producto
SET visitas = visitas + 1
WHERE id = 98200;

3. Insertar concatenación del valor de dos columnas en el valor de otra.

Para terminar esta serie de ejemplos más complejos voy a enseñarte como puedes combinar la sentencia UPDATE con funciones SQL como CONCAT.

Si no habías visto con anterioridad la función CONCAT, debes saber que esta función devuelve la concatenación de los valores pasados como parámetro de entrada:

CONCAT( texto1, texto2, valor3, valorN)

Para el ejemplo he elegido una práctica que podría realizarse en un entorno real web: juntar el valor de la columna nombre, y de la columna codigo, para introducirlo en la columna texto_busqueda, columna especial para realizar búsquedas directamente en una sola columna. La consulta SQL es:

UPDATE producto
SET texto_busqueda = CONCAT ( nombre, ‘ ‘, codigo);

Conceptos a saber de la consulta UPDATE en SQL

Para una completa comprensión vamos a terminar este tutorial sobre la consulta UPDATE de SQL con un repaso de los conceptos vistos más algún detalle importante:

    • La sentencia UPDATE sirve para actualizar los registros existentes en tablas de bases de datos.
    • Una consulta UPDATE, como mínimo, debe contener la tabla a la que hará efecto y la sentencia SET para modificar el dato de una columna.
    • Se puede acompañar de la clausula WHERE, al igual que una consulta SELECT o DELETE, para configurar las condiciones que deben cumplir las filas a las que afectarán los cambios.
    • En la sentencia WHERE se pueden especificar tantas condiciones como se quieran. Como siempre, estás deberán unirse mediante AND u OR.
    • Si no se indican condiciones con un WHERE la actualización afectará a todos los registros de la tabla sin excepción.
    • Los datos introducidos mediante cualquier UPDATE de SQL siempre tendrán que cumplir con las restricciones de las columnas. Por ejemplo, no podremos insertar texto en una columna de tipo INT (entero).
    • En la sentencia SET se pueden introducir valores en tantas columnas como sea necesario. Los pares de columna-valor deberán ir separados por comas. Ejemplo: UPDATE producto SET nombre = ‘’, texto_busqueda = ‘’;

Sobre el autor

Javier Gómez Redactor en Srcodigofuente.es

Javier Gómez

Ingeniero técnico en informática de gestión. Desarrollador web freelance y profesor de desarrollo web a partes iguales. Testarudo autodidacta, creativo, perfeccionista y alma libre.

Cargando comentarios

Utilizamos "cookies" para información estadística. Si continúas navegando aceptas su uso.