0Pricing
SQL Academy · Lección

INSERT con varias filas

Inserte una o varias filas con una sola instrucción y use INSERT ... SELECT para copiar datos entre tablas.

INSERT con varias filas es una lección gratuita de SQL Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de SQL Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de SQL Academy incluye 4 lecciones en total.

INSERT de una sola fila

La forma más sencilla indica las columnas y proporciona los valores:

INSERT INTO users (email, full_name)
VALUES ('alice@example.com', 'Alice Adams');

INSERT de varias filas

Inserte muchas filas en una sola instrucción. Es más rápido que realizar muchos viajes de ida y vuelta:

INSERT INTO users (email, full_name) VALUES
  ('alice@example.com', 'Alice Adams'),
  ('bob@example.com',   'Bob Brown'),
  ('carol@example.com', 'Carol Chen');

Por qué las inserciones de varias filas son más rápidas

Menos viajes de ida y vuelta a la base de datos, menos ciclos de análisis y planificación, y un solo vaciado de WAL. Para inserciones masivas de cientos de filas, usar varios valores en VALUES es entre 5 y 10 veces más rápido que hacerlo fila por fila.

Valores predeterminados

Omita una columna para usar su valor DEFAULT (o NULL):

INSERT INTO orders (user_id, total)
VALUES (1, 99.50);
-- id, created_at, status filled by DEFAULTs

DEFAULT explícito

También puede usar la palabra clave DEFAULT:

INSERT INTO orders (id, user_id, total, status)
VALUES (DEFAULT, 1, 99.50, DEFAULT);

RETURNING

Recupere las columnas de las filas insertadas sin realizar una segunda consulta (PostgreSQL):

INSERT INTO users (email, full_name)
VALUES ('alice@example.com', 'Alice Adams')
RETURNING id, created_at;

INSERT … SELECT

Copie o transforme filas de otra tabla:

INSERT INTO archive_orders (id, user_id, total)
SELECT id, user_id, total
FROM orders
WHERE created_at < NOW() - INTERVAL '5 years';

Carga masiva con COPY

Para decenas de miles de filas o más, use el comando COPY: es, con diferencia, la opción más rápida:

COPY users (email, full_name) FROM '/tmp/users.csv' (FORMAT csv, HEADER true);

-- Or from STDIN in a client:
COPY users (email, full_name) FROM STDIN;
 alice@example.com\tAlice
 bob@example.com\tBob
 \.

Evite insertar en transacciones grandes sin motivo

Una transacción = un bloque atómico. Si una importación de un millón de filas falla a mitad de camino, todo se revierte. A veces querrá ese comportamiento; otras veces, dividirá el proceso en lotes de 10 000 filas.

Consejos de rendimiento para INSERT

Para inserciones grandes:

  • Elimine los índices secundarios, inserte los datos y vuelva a crearlos
  • Desactive los triggers o las comprobaciones de claves foráneas si es seguro hacerlo
  • Use COPY cuando sea posible
  • Ajuste maintenance_work_mem para reconstruir los índices

Adelanto del manejo de conflictos

Para insertar "si es nuevo y, de lo contrario, actualizarlo", use INSERT ... ON CONFLICT; lo veremos en la próxima lección.

Resumen

INSERT es sencillo; los valores de varias filas con VALUES y INSERT … SELECT cubren los casos habituales. RETURNING evita viajes de ida y vuelta adicionales. Para cargas masivas, use COPY.

Comprobación rápida

¿Cuál es la forma más rápida de cargar 100 000 filas desde un archivo CSV en PostgreSQL?

Preguntas frecuentes

¿La lección «INSERT con varias filas» es gratis?

Sí — el texto completo de «INSERT con varias filas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de SQL Academy, actualiza a CoddyKit PRO. El curso de SQL Academy incluye 4 lecciones en total.

¿Qué aprenderé en «INSERT con varias filas»?

Inserte una o varias filas con una sola instrucción y use INSERT ... SELECT para copiar datos entre tablas. Practicas SQL Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar SQL Academy?

No se requiere experiencia previa. SQL Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «INSERT con varias filas»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de SQL Academy?

Sí. Cada lección de SQL Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. INSERT con varias filas
  2. UPSERT: ON CONFLICT DO UPDATE (PostgreSQL)
  3. UPDATE con FROM y actualizaciones al estilo JOIN
  4. DELETE con USING y patrones seguros
← Volver a SQL Academy