O comando INSERT permite adicionar vários registros em uma tabela utilizando apenas uma instrução SQL.
Essa técnica melhora a produtividade e reduz a quantidade de comandos enviados ao servidor do banco de dados.
INSERT INTO nome_tabela
(coluna1, coluna2)
VALUES
(valor1, valor2),
(valor3, valor4),
(valor5, valor6);
CREATE TABLE alunos (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100),
idade INT,
curso VARCHAR(100)
);
Primeiro exemplo utilizando apenas uma linha:
INSERT INTO alunos
(nome, idade, curso)
VALUES
('Carlos', 18, 'Informática');
Agora vamos inserir vários alunos de uma única vez:
INSERT INTO alunos
(nome, idade, curso)
VALUES
('Ana', 17, 'Desenvolvimento'),
('Pedro', 19, 'Redes'),
('Maria', 18, 'Banco de Dados'),
('João', 20, 'Programação');
+----+---------+-------+----------------+
| ID | Nome | Idade | Curso |
+----+---------+-------+----------------+
| 1 | Ana | 17 | Desenvolvimento|
| 2 | Pedro | 19 | Redes |
| 3 | Maria | 18 | Banco Dados |
| 4 | João | 20 | Programação |
+----+---------+-------+----------------+
Em sistemas reais, é comum realizar cargas iniciais utilizando centenas ou milhares de registros.
INSERT INTO produtos
(nome, preco)
VALUES
('Notebook',3500),
('Mouse',80),
('Teclado',150),
('Monitor',900);
| INSERT Individual | INSERT Múltiplo |
|---|---|
| Um comando por registro | Vários registros em um comando |
| Mais comandos SQL | Menos comandos SQL |
| Mais comunicação com servidor | Maior eficiência |
Em bancos relacionais, devemos respeitar a ordem das inserções.
1º Inserir Cliente
2º Inserir Pedido
3º Inserir Itens do Pedido
O campo ID geralmente é criado automaticamente.
INSERT INTO alunos
(nome, idade, curso)
VALUES
('Lucas',18,'Web');
O MySQL gera automaticamente o valor do ID.
| Erro | Causa |
|---|---|
| Quantidade incorreta | Número de valores diferente das colunas |
| Tipo inválido | Valor incompatível com o campo |
| Duplicidade | Chave primária repetida |
| Campo obrigatório vazio | Coluna NOT NULL sem informação |
| Sistema | Exemplo de Uso |
|---|---|
| Escola | Cadastrar turmas e alunos |
| E-commerce | Cadastrar produtos |
| Empresa | Carga de funcionários |
| Sistema Financeiro | Lançamento de transações |