En esta sección, aprenderás cómo actualizar datos en una base de datos PostgreSQL utilizando la instrucción UPDATE. Actualizar datos es una operación fundamental en cualquier sistema de gestión de bases de datos, ya que permite modificar registros existentes para reflejar cambios en la información.

Contenido

Sintaxis Básica de UPDATE

La instrucción UPDATE se utiliza para modificar los datos existentes en una tabla. La sintaxis básica es la siguiente:

UPDATE nombre_tabla
SET nombre_columna = nuevo_valor
WHERE condición;

Ejemplo Práctico

Supongamos que tenemos una tabla llamada empleados con las siguientes columnas: id, nombre, salario.

-- Estructura de la tabla empleados
CREATE TABLE empleados (
    id SERIAL PRIMARY KEY,
    nombre VARCHAR(100),
    salario NUMERIC
);

-- Datos de ejemplo
INSERT INTO empleados (nombre, salario) VALUES
('Juan Pérez', 50000),
('Ana Gómez', 60000),
('Luis Martínez', 55000);

Para actualizar el salario de 'Juan Pérez' a 55000, usaríamos la siguiente instrucción:

UPDATE empleados
SET salario = 55000
WHERE nombre = 'Juan Pérez';

Actualización Condicional

Es importante usar la cláusula WHERE para especificar qué registros deben ser actualizados. Si omites la cláusula WHERE, todos los registros de la tabla serán actualizados.

Ejemplo Práctico

Actualizar el salario de todos los empleados cuyo salario actual sea menor a 60000:

UPDATE empleados
SET salario = 60000
WHERE salario < 60000;

Actualización de Múltiples Columnas

Puedes actualizar múltiples columnas en una sola instrucción UPDATE separando cada asignación con una coma.

Ejemplo Práctico

Actualizar el nombre y el salario de un empleado específico:

UPDATE empleados
SET nombre = 'Juan Pérez García', salario = 58000
WHERE id = 1;

Uso de Subconsultas en UPDATE

Las subconsultas pueden ser utilizadas en la cláusula SET para calcular nuevos valores basados en otros datos de la base de datos.

Ejemplo Práctico

Supongamos que tenemos otra tabla llamada aumentos que registra los aumentos de salario:

-- Estructura de la tabla aumentos
CREATE TABLE aumentos (
    empleado_id INT,
    aumento NUMERIC
);

-- Datos de ejemplo
INSERT INTO aumentos (empleado_id, aumento) VALUES
(1, 5000),
(2, 4000);

Para actualizar los salarios de los empleados basándonos en los aumentos registrados en la tabla aumentos:

UPDATE empleados
SET salario = salario + (
    SELECT aumento
    FROM aumentos
    WHERE empleados.id = aumentos.empleado_id
)
WHERE id IN (SELECT empleado_id FROM aumentos);

Ejercicios Prácticos

Ejercicio 1

Actualiza el nombre del empleado con id = 2 a 'Ana Gómez López'.

UPDATE empleados
SET nombre = 'Ana Gómez López'
WHERE id = 2;

Ejercicio 2

Incrementa el salario de todos los empleados en un 10%.

UPDATE empleados
SET salario = salario * 1.10;

Ejercicio 3

Usa una subconsulta para establecer el salario de todos los empleados al promedio de los salarios actuales.

UPDATE empleados
SET salario = (
    SELECT AVG(salario)
    FROM empleados
);

Errores Comunes y Consejos

  1. Olvidar la cláusula WHERE: Esto actualizará todos los registros de la tabla, lo cual puede ser desastroso.
  2. Errores de tipo de datos: Asegúrate de que los valores que estás asignando sean del tipo correcto.
  3. Subconsultas que devuelven múltiples filas: Asegúrate de que las subconsultas utilizadas en la cláusula SET devuelvan un solo valor.

Resumen

En esta sección, hemos cubierto cómo actualizar datos en PostgreSQL utilizando la instrucción UPDATE. Aprendiste la sintaxis básica, cómo realizar actualizaciones condicionales, cómo actualizar múltiples columnas y cómo utilizar subconsultas en las actualizaciones. También realizaste ejercicios prácticos para reforzar estos conceptos.

En la siguiente sección, aprenderás sobre cómo eliminar datos de una base de datos PostgreSQL.

Curso de PostgreSQL

Módulo 1: Introducción a PostgreSQL

Módulo 2: Operaciones Básicas de SQL

Módulo 3: Consultas Avanzadas de SQL

Módulo 4: Diseño de Bases de Datos y Normalización

Módulo 5: Características Avanzadas de PostgreSQL

Módulo 6: Ajuste de Rendimiento y Optimización

Módulo 7: Seguridad y Gestión de Usuarios

Módulo 8: Trabajando con JSON y Características NoSQL

Módulo 9: Extensiones y Herramientas Avanzadas

Módulo 10: Estudios de Caso y Aplicaciones del Mundo Real

© Copyright 2024. Todos los derechos reservados