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...