Curso de Fundamentos de Bases de Datos

INSERT básico vs INSERT múltiple en SQL

Curso de Fundamentos de Bases de Datos

Contenido del curso

Grabación

PlatziLearn

0:009:55

Recursos

Resumen

Dominar la sentencia INSERT en SQL es fundamental para cualquier persona que trabaje con bases de datos. La diferencia entre un INSERT bien estructurado y uno ineficiente puede significar segundos frente a minutos en una carga masiva de datos. A continuación se explican las formas más utilizadas para insertar registros en tablas, desde el enfoque básico hasta técnicas avanzadas como el returning y el manejo de llaves foráneas.

¿Cómo funciona el INSERT básico en SQL?

El INSERT básico es la forma más directa de agregar datos a una tabla. En cada sentencia se especifican las columnas y los valores correspondientes para una sola fila [01:00].

La sintaxis sigue este patrón:

sql INSERT INTO países (nombre, código) VALUES ('Chile', 'CHL'); INSERT INTO países (nombre, código) VALUES ('Argentina', 'ARG');

  • INSERT INTO es el comando que indica la acción de insertar.
  • Se indica la tabla destino (en este caso, países).
  • Se nombran explícitamente las columnas donde irán los datos.
  • Se proporcionan los valores en el mismo orden de las columnas.

Este enfoque funciona bien cuando se manejan pocos registros. Sin embargo, cuando se necesitan insertar decenas o cientos de filas, repetir la sentencia completa fila por fila se vuelve poco práctico y lento.

¿Qué ventajas ofrece el INSERT múltiple?

El INSERT múltiple permite agregar varias filas en una sola sentencia SQL, lo que simplifica el código y mejora el rendimiento [02:14].

sql INSERT INTO países (nombre, código) VALUES ('Colombia', 'COL'), ('México', 'MEX'), ('Perú', 'PER');

La diferencia principal es que no se repite INSERT INTO para cada registro. En cambio, se expanden los valores como pares ordenados separados por comas dentro de un único bloque VALUES. Los datos se insertan respetando el orden de las columnas definidas al inicio de la sentencia.

  • Reduce la cantidad de código escrito.
  • Mejora el rendimiento en cargas masivas.
  • Mantiene la legibilidad cuando hay múltiples registros.

¿Qué es el returning y para qué sirve?

Una técnica muy útil en la práctica profesional es el uso de RETURNING dentro de un INSERT [03:20]. Esta cláusula devuelve los datos recién insertados sin necesidad de ejecutar un SELECT aparte para verificar.

sql INSERT INTO categorías (nombre) VALUES ('electrónica') RETURNING categoría_id, nombre;

Al ejecutar esta sentencia, el motor de base de datos confirma la inserción y devuelve directamente el ID generado junto con el nombre del registro. Esto permite verificar in situ que la operación fue correcta.

Existen variaciones del returning:

  • RETURNING asterisco: devuelve todas las columnas del registro insertado [04:10].
  • RETURNING con columnas específicas: devuelve solo los campos indicados.

sql INSERT INTO tipo_cliente (nombre) VALUES ('estándar'), ('corporativo') RETURNING tipo_cliente_id, nombre;

Esta práctica evita consultas adicionales y agiliza el flujo de trabajo durante la carga de datos.

¿Cómo insertar datos cuando hay llaves foráneas?

Cuando una tabla contiene una llave foránea, el valor referenciado debe existir previamente en la tabla relacionada. De lo contrario, la base de datos rechazará la inserción [05:30].

sql INSERT INTO clientes (nombre, correo_electrónico, tipo_cliente_id) VALUES ('María González', 'maria@correo.com', 1) RETURNING cliente_id, nombre, correo_electrónico;

En este ejemplo, el tipo_cliente_id con valor 1 ya debe existir en la tabla tipo_cliente. La integridad referencial garantiza que no se inserten datos huérfanos. Al combinar esta inserción con returning, se obtiene confirmación inmediata del registro creado.

¿Cómo realizar un INSERT múltiple con llaves foráneas?

La misma lógica del INSERT múltiple aplica cuando existen llaves foráneas. Se pueden insertar varios clientes con diferentes referencias en una sola sentencia [06:35].

sql INSERT INTO clientes (nombre, correo_electrónico, activo, tipo_cliente_id) VALUES ('Ana Martínez', 'ana@correo.com', true, 1), ('Carlos López', 'carlos@correo.com', true, 2), ('Laura Díaz', 'laura@correo.com', false, 1);

Puntos importantes a recordar:

  • Siempre cerrar cada sentencia con punto y coma para evitar errores.
  • Sin returning, la única forma de verificar los datos es mediante un SELECT posterior.
  • Varios registros pueden compartir el mismo tipo_cliente_id, lo que representa una clasificación dentro de la tabla.

Para confirmar los resultados finales se utiliza SELECT * FROM sobre las tablas involucradas, lo que permite visualizar todos los registros insertados [07:50].

Como ejercicio práctico, intenta insertar los doce países de LATAM con un solo INSERT múltiple: Argentina, Chile, Colombia, México, Perú, Brasil, Ecuador, Bolivia, Uruguay, Paraguay, Venezuela y Panamá. Usa returning para confirmar los IDs generados y luego inserta al menos cinco categorías de producto con el mismo patrón. Comparte tus resultados en los comentarios.

INSERT básico vs INSERT múltiple en SQL