viernes, 3 de julio de 2026

🐘 Actualizar Datos en PostgreSQL con UPDATE

Hasta ahora hemos aprendido a:

  • Crear tablas (CREATE TABLE)

  • Insertar registros (INSERT)

  • Consultar información (SELECT)

Sin embargo, en aplicaciones reales los datos cambian constantemente. Un empleado puede cambiar de departamento, un producto puede cambiar de precio o un cliente puede actualizar su información.

Para modificar registros existentes utilizamos la instrucción:

UPDATE


🧠 ¿Qué es UPDATE?

La instrucción UPDATE permite modificar uno o varios registros existentes en una tabla.

Sintaxis general:

UPDATE nombre_tabla

SET columna1 = valor1,

columna2 = valor2

WHERE condicion;

Donde:

  • UPDATE indica la tabla a modificar.

  • SET especifica los nuevos valores.

  • WHERE define qué registros serán actualizados.


⚠️ Importancia de la cláusula WHERE

La cláusula WHERE suele ser la parte más importante de un UPDATE.

Si la omites, PostgreSQL actualizará todos los registros de la tabla.

Por ejemplo:

UPDATE empleados

SET salario = 30000;

Esto modificará el salario de todos los empleados.

Por esta razón, siempre es recomendable revisar cuidadosamente la condición WHERE.


🏗️ Ejemplo Completo

Paso 1: Crear una tabla

Crearemos una tabla de empleados.

CREATE TABLE empleados (

id INTEGER,

nombre VARCHAR(100),

departamento VARCHAR(100),

salario NUMERIC(10,2),

activo BOOLEAN,

fecha_ingreso DATE

);


Paso 2: Insertar registros

INSERT INTO empleados (

id,

nombre,

departamento,

salario,

activo,

fecha_ingreso

)

VALUES

(

1,

'Juan Pérez',

'Tecnología',

25000.00,

TRUE,

'2026-01-15'

),

(

2,

'Ana López',

'Finanzas',

32000.00,

TRUE,

'2026-02-01'

),

(

3,

'Carlos García',

'Recursos Humanos',

28000.00,

FALSE,

'2026-03-10'

);

``


Paso 3: Consultar la información inicial

SELECT *

FROM empleados;

Resultado:

id | nombre      | departamento   | salario  | activo

----+-----------------+--------------------+----------+--------

1  | Juan Pérez  | Tecnología     | 25000.00 | true

2  | Ana López   | Finanzas       | 32000.00 | true

3  | Carlos García   | Recursos Humanos   | 28000.00 | false


✏️ Actualizar una columna

Supongamos que Juan recibió un aumento salarial.

UPDATE empleados

SET salario = 27000.00

WHERE id = 1;


Verificar el cambio

SELECT *

FROM empleados

WHERE id = 1;

Resultado:

id | nombre  | departamento | salario  | activo

----+-------------+--------------+----------+--------

1  | Juan Pérez  | Tecnología   | 27000.00 | true

``


✏️ Actualizar varias columnas

También podemos modificar varias columnas en una sola sentencia.

Supongamos que Carlos volvió a trabajar en la empresa y fue transferido al departamento de Tecnología.

UPDATE empleados

SET activo = TRUE,

departamento = 'Tecnología'

WHERE id = 3;


Consultar el registro actualizado

SELECT *

FROM empleados

WHERE id = 3;

Resultado:

id | nombre      | departamento | salario  | activo

----+-----------------+--------------+----------+--------

3  | Carlos García   | Tecnología   | 28000.00 | true


🔍 Consultar registros usando WHERE

La cláusula WHERE permite recuperar únicamente los registros que cumplen una condición.

Por ejemplo, consultar un empleado específico:

SELECT *

FROM empleados

WHERE id = 2;


Consultar empleados del área de Tecnología:

SELECT *

FROM empleados

WHERE departamento = 'Tecnología';

Resultado:

id | nombre      | departamento

----+-----------------+--------------

1  | Juan Pérez  | Tecnología

3  | Carlos García   | Tecnología


Consultar empleados activos:

SELECT *

FROM empleados

WHERE activo = TRUE;


🧪 Actualización de múltiples registros

También podemos actualizar varios registros simultáneamente.

Por ejemplo, aumentar el salario de todos los empleados de Tecnología.

UPDATE empleados

SET salario = 30000.00

WHERE departamento = 'Tecnología';


Consultar los registros actualizados:

SELECT *

FROM empleados

WHERE departamento = 'Tecnología';

Resultado:

id | nombre      | departamento | salario

----+-----------------+--------------+----------

1  | Juan Pérez  | Tecnología   | 30000.00

3  | Carlos García   | Tecnología   | 30000.00


🎯 Actualizar valores de tipo fecha

También es posible actualizar fechas.

UPDATE empleados

SET fecha_ingreso = '2026-05-01'

WHERE id = 2;

Consultar:

SELECT *

FROM empleados

WHERE id = 2;


💡 Buenas prácticas

Revisa primero con SELECT

Antes de ejecutar un UPDATE, verifica los registros afectados.

Por ejemplo:

SELECT *

FROM empleados

WHERE departamento = 'Tecnología';

Después:

UPDATE empleados

SET salario = 30000.00

WHERE departamento = 'Tecnología';


Utiliza siempre WHERE cuando sea posible

✅ Correcto

UPDATE empleados

SET salario = 35000.00

WHERE id = 1;

⚠️ Cuidado

UPDATE empleados

SET salario = 35000.00;

Este último modificará toda la tabla.


Verifica el resultado después del UPDATE

Una práctica común es ejecutar inmediatamente un SELECT.

SELECT *

FROM empleados

WHERE id = 1;

De esta forma puedes confirmar que el cambio se realizó correctamente.


✅ Conclusión

La instrucción UPDATE permite modificar información existente en una tabla. Es una de las operaciones fundamentales de SQL y se utiliza constantemente en aplicaciones reales.

Los conceptos más importantes son:

  • UPDATE modifica registros existentes.

  • SET indica los nuevos valores.

  • WHERE define qué registros se actualizarán.

  • Es posible actualizar una o varias columnas a la vez.

  • Siempre es recomendable validar los registros afectados con un SELECT antes y después de la actualización.


🐘 Consultar Datos en PostgreSQL con SELECT

Hasta ahora hemos aprendido a crear bases de datos, esquemas, tablas e insertar información. El siguiente paso es aprender a consultar los datos almacenados.

Para ello utilizaremos una de las instrucciones más importantes de SQL:

SELECT

Prácticamente cualquier aplicación que utilice una base de datos ejecuta consultas SELECT para recuperar información.


🧠 ¿Qué es SELECT?

La instrucción SELECT permite leer datos de una o varias tablas.

Sintaxis básica:

SELECT columnas

FROM tabla;

Por ejemplo:

SELECT nombre

FROM empleados;

Esta consulta devolverá únicamente la columna nombre.


🏗️ Crear una tabla de ejemplo

Para entender mejor las consultas, primero crearemos una tabla sencilla.

CREATE TABLE empleados (

id INTEGER,

nombre VARCHAR(100),

departamento VARCHAR(100),

salario NUMERIC(10,2),

activo BOOLEAN,

fecha_ingreso DATE

);


📝 Insertar datos de prueba

Ahora agregaremos algunos registros.

INSERT INTO empleados (

id,

nombre,

departamento,

salario,

activo,

fecha_ingreso

)

VALUES

(

1,

'Juan Pérez',

'Tecnología',

25000.00,

TRUE,

'2026-01-15'

),

(

2,

'Ana López',

'Finanzas',

32000.00,

TRUE,

'2026-02-01'

),

(

3,

'Carlos García',

'Recursos Humanos',

28000.00,

FALSE,

'2026-03-10'

),

(

4,

'María Rodríguez',

'Tecnología',

35000.00,

TRUE,

'2026-04-05'

);

La tabla ahora contiene cuatro registros.


🔍 Consultar todas las columnas

La forma más sencilla de recuperar información es mediante el asterisco (*).

SELECT *

FROM empleados;

Resultado aproximado:

id | nombre       | departamento   | salario  | activo | fecha_ingreso

----+------------------+--------------------+----------+--------+--------------

  1 | Juan Pérez   | Tecnología     | 25000.00 | true   | 2026-01-15

  2 | Ana López    | Finanzas       | 32000.00 | true   | 2026-02-01

  3 | Carlos García | Recursos Humanos   | 28000.00 | false  | 2026-03-10

  4 | María Rodríguez  | Tecnología     | 35000.00 | true   | 2026-04-05


📋 Consultar columnas específicas

No siempre necesitamos todas las columnas.

Por ejemplo:

SELECT nombre,

    salario

FROM empleados;

Resultado:

nombre        | salario

-------------------+----------

Juan Pérez    | 25000.00

Ana López     | 32000.00

Carlos García | 28000.00

María Rodríguez   | 35000.00


🔄 Cambiar el orden de las columnas

Las columnas aparecerán en el mismo orden en que se indiquen en el SELECT.

SELECT salario,

    nombre

FROM empleados;

Resultado:

salario  | nombre

----------+-----------------

25000.00 | Juan Pérez

32000.00 | Ana López

28000.00 | Carlos García

35000.00 | María Rodríguez


✍️ Asignar alias a las columnas

Los alias permiten cambiar temporalmente el nombre mostrado en el resultado.

Se utiliza la palabra clave AS.

SELECT nombre AS empleado,

    salario AS sueldo

FROM empleados;

Resultado:

empleado      | sueldo

-------------------+----------

Juan Pérez    | 25000.00

Ana López     | 32000.00

Carlos García | 28000.00

María Rodríguez   | 35000.00


🔎 Consultar una sola columna

También es posible recuperar únicamente una columna.

SELECT departamento

FROM empleados;

Resultado:

departamento

--------------

Tecnología

Finanzas

Recursos Humanos

Tecnología

Observa que los valores pueden repetirse.


📊 Consultar varias columnas

SELECT id,

    nombre,

    departamento

FROM empleados;

Resultado:

id | nombre        | departamento

----+-------------------+--------------

1  | Juan Pérez    | Tecnología

2  | Ana López     | Finanzas

3  | Carlos García | Recursos Humanos

4  | María Rodríguez   | Tecnología


🎯 El orden de las filas no está garantizado

Si ejecutas:

SELECT *

FROM empleados;

PostgreSQL normalmente devolverá las filas en el orden en que fueron insertadas, pero esto no está garantizado.

Cuando necesites un orden específico deberás utilizar ORDER BY, tema que veremos más adelante.


📦 Consultar tablas de un esquema

Supongamos que la tabla fue creada dentro del esquema recursos_humanos.

CREATE TABLE recursos_humanos.empleados (

id INTEGER,

nombre VARCHAR(100)

);

La consulta se realizaría utilizando la notación:

SELECT *

FROM recursos_humanos.empleados;


🧪 Ejemplo completo

Este ejemplo muestra el flujo completo desde la creación de la tabla hasta la consulta de los datos.

Paso 1: Crear la tabla

CREATE TABLE productos (

codigo INTEGER,

nombre VARCHAR(100),

categoria VARCHAR(100),

precio NUMERIC(10,2),

disponible BOOLEAN,

fecha_alta DATE

);

Paso 2: Insertar registros

INSERT INTO productos (

codigo,

nombre,

categoria,

precio,

disponible,

fecha_alta

)

VALUES

(

1001,

'Laptop',

'Computadoras',

18500.00,

TRUE,

'2026-06-01'

),

(

1002,

'Monitor',

'Periféricos',

4200.00,

TRUE,

'2026-06-02'

),

(

1003,

'Teclado',

'Accesorios',

750.00,

FALSE,

'2026-06-03'

);

Paso 3: Consultar todos los registros

SELECT *

FROM productos;

Paso 4: Consultar solo algunas columnas

SELECT nombre,

    precio

FROM productos;


💡 Buenas prácticas

Evita usar SELECT * en aplicaciones

Durante el aprendizaje está bien utilizar:

SELECT *

FROM empleados;

Pero en aplicaciones reales suele ser mejor indicar explícitamente las columnas necesarias:

SELECT nombre,

    salario

FROM empleados;

Esto hace las consultas más claras y eficientes.

Utiliza alias descriptivos

SELECT nombre AS empleado,

    salario AS sueldo

FROM empleados;

Mejora la legibilidad de los resultados y reportes.

Mantén formato consistente

Una práctica común es escribir cada columna en una línea distinta:

SELECT id,

    nombre,

    salario

FROM empleados;

Las consultas son más fáciles de leer y mantener.


✅ Conclusión

La instrucción SELECT es la base de cualquier consulta en PostgreSQL. Con ella podemos recuperar una o varias columnas, visualizar todos los registros de una tabla y presentar los datos de diferentes formas.

Los conceptos más importantes de este capítulo son:

  • SELECT recupera información.

  • FROM indica la tabla origen.

  • SELECT * devuelve todas las columnas.

  • Se pueden consultar columnas específicas.

  • Las columnas pueden renombrarse mediante alias (AS).

  • Las tablas ubicadas en esquemas se consultan mediante esquema.tabla.