0Pricing
SQL Academy · Aula

INSERT com várias linhas

Insira uma ou várias linhas com uma única instrução e use INSERT ... SELECT para copiar dados entre tabelas.

INSERT com várias linhas é uma aula grátis de SQL Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de SQL Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de SQL Academy inclui 4 aulas no total.

INSERT de uma única linha

A forma mais simples informa as colunas e fornece os valores:

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

INSERT de várias linhas

Insira muitas linhas em uma única instrução. É mais rápido do que várias idas e voltas:

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

Por que várias linhas são mais rápidas

Menos viagens de ida e volta ao banco de dados, menos ciclos de análise e planejamento, uma única descarga do WAL. Para inserções em massa de centenas de linhas, vários VALUES são de 5 a 10 vezes mais rápidos do que inserir uma linha por vez.

Valores DEFAULT

Omita uma coluna para usar o valor DEFAULT (ou NULL):

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

DEFAULT explícito

Ou use a palavra-chave DEFAULT:

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

RETURNING

Obtenha as colunas da linha ou das linhas inseridas sem uma segunda consulta (PostgreSQL):

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

INSERT … SELECT

Copie ou transforme linhas de outra tabela:

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

Carregamento em massa com COPY

Para dezenas de milhares de linhas ou mais, use o comando COPY — de longe, o caminho mais rápido:

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 inserir em transações grandes sem motivo

Uma transação = um bloco atômico. Se uma importação de um milhão de linhas falhar pela metade, tudo será revertido. Às vezes é isso que você quer; às vezes é melhor dividir em lotes de 10 mil linhas.

Dicas de desempenho do INSERT

Para inserções grandes:

  • Remova os índices secundários, faça a inserção e recrie-os
  • Desative gatilhos e verificações de FK, se for seguro
  • Use COPY sempre que possível
  • Ajuste maintenance_work_mem para recriar índices

Prévia do tratamento de conflitos

Para inserir "se for novo; caso contrário, atualizar", use INSERT ... ON CONFLICT — isso será abordado na próxima lição.

Recapitulação

INSERT é simples; vários VALUES e INSERT … SELECT abrangem os casos do dia a dia. RETURNING evita viagens extras ao banco de dados. Para operações em massa, use COPY.

Verificação rápida

Qual é a maneira mais rápida de carregar 100.000 linhas de um arquivo CSV no PostgreSQL?

Perguntas Frequentes

A aula “INSERT com várias linhas” é grátis?

Sim — o texto completo de “INSERT com várias linhas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de SQL Academy, atualize para CoddyKit PRO. O curso de SQL Academy inclui 4 aulas no total.

O que vou aprender em “INSERT com várias linhas”?

Insira uma ou várias linhas com uma única instrução e use INSERT ... SELECT para copiar dados entre tabelas. Você pratica SQL Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar SQL Academy?

Nenhuma experiência prévia é necessária. SQL Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “INSERT com várias linhas”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de SQL Academy?

Sim. Cada aula de SQL Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. INSERT com várias linhas
  2. UPSERT: ON CONFLICT DO UPDATE (PostgreSQL)
  3. UPDATE com FROM e atualizações no estilo JOIN
  4. DELETE com USING e padrões seguros
← Voltar para SQL Academy