Modelado físico relacional de bases de datos

Introducción a DML

El Lenguaje de Manipulación de Datos (DML) se utiliza para modificar los datos almacenados en una base de datos. Los principales comandos de DML son INSERT, UPDATE, y DELETE.


Comando INSERT

Sintaxis básica de INSERT:

1INSERT INTO tabla (columna1, columna2, ...)
2VALUES (valor1, valor2, ...);

Ejemplo:

1INSERT INTO estudiantes (nombre, edad, clase)
2VALUES ('Juan', 20, 'Matemáticas');

Este comando agrega un nuevo estudiante llamado Juan, de 20 años, a la clase de Matemáticas.


Comando UPDATE

Sintaxis básica de UPDATE:

1UPDATE tabla
2SET columna1 = valor1, columna2 = valor2, ...
3WHERE condición;

Ejemplo:

1UPDATE estudiantes
2SET edad = 21
3WHERE nombre = 'Juan';

Este comando actualiza la edad de Juan a 21 años.


Comando DELETE

Sintaxis básica de DELETE:

1DELETE FROM tabla
2WHERE condición;

Ejemplo:

1DELETE FROM estudiantes
2WHERE nombre = 'Juan';

Este comando elimina el registro del estudiante llamado Juan.


3.5. Práctica

Ejercicio 1: Inserta un nuevo estudiante llamado María, de 22 años, en la clase de Física.

Ejercicio 2: Actualiza la clase de todos los estudiantes llamados Pedro a "Química".

Ejercicio 3: Elimina a todos los estudiantes mayores de 25 años.

Comando MERGE (o UPSERT)**

El comando MERGE (en algunos sistemas de bases de datos, como SQL Server) combina la funcionalidad de INSERT y UPDATE en una sola operación. Este comando es útil cuando se quiere insertar nuevos datos si no existen o actualizarlos si ya existen.

Sintaxis básica:

1-- Requiere que `columna` sea clave primaria o UNIQUE en tabla_destino
2INSERT INTO tabla_destino (columna1, columna2)
3SELECT columna1, columna2 FROM tabla_fuente
4ON DUPLICATE KEY UPDATE columna1 = VALUES(columna1);

Ejemplo: Si quieres actualizar los salarios de los empleados, y si no existen, insertarlos:

1-- Requiere que `id` sea clave primaria o tenga índice único
2INSERT INTO empleados (id, salario)
3SELECT id, salario FROM nuevos_salarios
4ON DUPLICATE KEY UPDATE salario = VALUES(salario);

RETURNING (Obtener resultados de INSERT, UPDATE o DELETE)

En algunos sistemas de bases de datos como PostgreSQL, el comando RETURNING permite obtener los valores modificados por una consulta INSERT, UPDATE, o DELETE. Es útil cuando se necesita saber qué registros fueron afectados o insertar nuevos registros y obtener automáticamente sus claves generadas.

Sintaxis:

1-- ❌ MySQL no soporta RETURNING hasta la versión 8.0.19 y solo con LIMITADAS funciones
2-- Alternativa: hacer un SELECT inmediatamente después si conoces la clave
3INSERT INTO tabla (columna1, columna2)
4VALUES (valor1, valor2);
5
6-- Luego:
7SELECT columna1, columna2 FROM tabla WHERE ...;

Ejemplo: Si insertas un nuevo estudiante y quieres obtener su id generado automáticamente:

1INSERT INTO estudiantes (nombre, edad)
2VALUES ('Carlos', 25)
3RETURNING id, nombre;
  • Loading...