Com o comando INSERT INTO no MariaDB, você insere novos registros em uma tabela existente. Ele é um dos comandos básicos mais im­por­tan­tes do SQL e é usado sempre que você deseja adicionar novos dados ou ampliar in­for­ma­ções já exis­ten­tes em um banco de dados.

O que é o comando INSERT INTO no MariaDB?

O comando INSERT no MariaDB insere novos dados em uma tabela. Ele completa es­tru­tu­ras de dados exis­ten­tes adi­ci­o­nando linhas inteiras. Sempre que usuários se registram, enviam um for­mu­lá­rio ou cadastram um produto, o sistema executa um INSERT INTO em segundo plano.

O MariaDB verifica, ao inserir os dados, se os valores cor­res­pon­dem aos tipos das colunas e se todos os campos obri­ga­tó­rios foram pre­en­chi­dos. Caso os valores violem res­tri­ções como NOT NULL, UNIQUE ou re­fe­rên­cias definidas por FOREIGN KEY, o banco de dados rejeita a operação. Por isso, a estrutura da tabela destino e a correta indicação das colunas são es­sen­ci­ais para o uso adequado do INSERT.

Sintaxe do INSERT INTO no MariaDB

A sintaxe padrão do comando INSERT INTO no MariaDB é:

INSERT INTO nome_da_tabela (coluna1, coluna2, coluna3)
VALUES (valor1, valor2, valor3);
sql
  • nome_da_tabela define a tabela onde os dados serão inseridos.
  • A lista de colunas (coluna1, coluna2 etc.) é opcional, mas re­co­men­dada.
  • VALUES contém os valores a serem inseridos nas colunas indicadas.

O MariaDB insere os valores na ordem em que as colunas foram definidas. Se a quan­ti­dade ou a ordem dos valores não cor­res­pon­der à lista de colunas, ocorrerá um erro.

Cloud Compute Engine da IONOS

Empresas de médio e grande porte optam pela nuvem da Alemanha. Serviços IaaS e PaaS são para campeões.

  • Seguro
  • Confiável
  • Flexível

Pa­râ­me­tros e ar­gu­men­tos do INSERT INTO no MariaDB

O comando INSERT INTO no MariaDB pode ser estendido e adaptado conforme a ne­ces­si­dade. Aqui estão os pa­râ­me­tros e variações mais im­por­tan­tes:

Listar colunas

Você pode es­pe­ci­fi­car todas as colunas ou apenas algumas. Se a lista for omitida, o MariaDB espera valores para todas as colunas da tabela.

INSERT INTO usuários VALUES (1, 'Anna', 'anna@exemplo.com');
sql

Se quiser preencher apenas colunas es­pe­cí­fi­cas, use o comando a seguir:

INSERT INTO usuários (nome, e-mail) VALUES ('Anna', 'anna@exemplo.com');
sql

Aqui, es­co­lhe­mos as colunas nome e e-mail.

Inserir várias linhas

Essa variação é mais eficiente do que a execução de vários comandos INSERT in­di­vi­du­ais no MariaDB, es­pe­ci­al­mente ao lidar com grandes volumes de dados:

INSERT INTO produtos (nome, preço)
VALUES ('caneta', 1.50),
    ('bloco de notas', 2.00),
    ('sacola', 9.90);
sql

Comando INSERT IGNORE

Com IGNORE, o MariaDB ignora as linhas que violam res­tri­ções e continua com as demais.

INSERT IGNORE INTO usuários (id, nome) VALUES (1, 'Anna');
sql

Comando INSERT ... ON DUPLICATE KEY UPDATE

Essa expressão atualiza linhas exis­ten­tes quando há conflito com uma chave única:

INSERT INTO usuários (id, nome)
VALUES (1, 'Anna')
ON DUPLICATE KEY UPDATE nome = 'Anna';
sql

A técnica evita consultas adi­ci­o­nais e permite combinar lógica de inserção e atu­a­li­za­ção em um único comando. Isso é muito prático em im­por­ta­ções, dados sin­cro­ni­za­dos ou processos au­to­ma­ti­za­dos de registro.

Inserir com SELECT

Com SELECT, você copia registros de uma tabela para outra:

INSERT INTO arquivar_pedidos (id, status)
SELECT id, status FROM pedidos WHERE status = 'concluído';
sql

Exemplos de uso do INSERT INTO no MariaDB

A seguir, apre­sen­ta­mos cenários comuns de uso do INSERT INTO.

Registrar usuário

No exemplo a seguir, o MariaDB insere um novo usuário na tabela usuários. Os valores para as colunas nome e e-mail vêm de um for­mu­lá­rio ou aplicação. O valor NOW() obtém o carimbo de data/hora atual, ou seja, o momento do registro.

INSERT INTO usuários (nome, e-mail, criado_em)
VALUES ('Lena', 'lena@exemplo.com', NOW());
sql

Esse método é adequado para for­mu­lá­rios clássicos da web, como telas de cadastro, nas quais cada entrada é re­gis­trada di­re­ta­mente no banco de dados. É im­por­tante que a coluna criado_em seja do tipo DATETIME ou TIMESTAMP para que NOW() seja ar­ma­ze­nado cor­re­ta­mente.

Inserir dados de outra tabela

Este exemplo mostra como trans­fe­rir dados exis­ten­tes de uma tabela (pedidos) para outra tabela (arquivar_pedidos). O MariaDB seleciona todos os pedidos com o status 'concluído' e transfere as colunas id e status.

INSERT INTO arquivar_pedidos (id, status)
SELECT id, status FROM pedidos WHERE status = 'concluído';
sql

Esse tipo de comando é usado em ar­qui­va­men­tos, limpezas de dados ou geração de re­la­tó­rios. Verifique se a estrutura (como os tipos de colunas) das tabelas de origem e de destino é com­pa­tí­vel, caso contrário o MariaDB não executará o comando.

Ir para o menu principal