Inserindo Dados (INSERT)
Fundamentos • 40 minutos • Iniciante
Aprenda a adicionar dados às suas tabelas usando o comando INSERT, desde inserções simples até operações mais avançadas com múltiplos registros.
Objetivos de Aprendizagem
- Entender a sintaxe básica do comando INSERT
- Inserir dados em colunas específicas
- Trabalhar com valores padrão e campos opcionais
- Inserir múltiplos registros de uma vez
Sintaxe Básica do INSERT
O comando INSERT é usado para adicionar novos registros (linhas) a uma tabela. É como adicionar uma nova linha em uma planilha do Excel.
INSERT INTO nome_da_tabela (coluna1, coluna2, coluna3)
VALUES (valor1, valor2, valor3);
Estrutura do comando:
- INSERT INTO: Indica que vamos inserir dados
- nome_da_tabela: A tabela onde inserir
- (coluna1, coluna2): Quais colunas recebem dados
- VALUES: Os valores a serem inseridos
Exemplo Prático
Vamos inserir um produto na tabela que criamos na aula anterior:
INSERT INTO produtos (nome, preco, categoria, em_estoque)
VALUES ('Notebook Dell', 2500.00, 'Eletrônicos', true);
O que acontece:
- ✓ id: Será gerado automaticamente (SERIAL)
- ✓ nome: 'Notebook Dell'
- ✓ preco: 2500.00
- ✓ categoria: 'Eletrônicos'
- ✓ em_estoque: true
- ✓ data_criacao: Data/hora atual (DEFAULT)
Inserindo em Colunas Específicas
Você não precisa inserir dados em todas as colunas. Pode escolher apenas as que deseja preencher, desde que respeite as restrições (como NOT NULL).
✅ Inserção Válida
-- Apenas campos obrigatórios
INSERT INTO produtos (nome, preco)
VALUES ('Mouse Wireless', 45.90);
Resultado:
- • categoria: NULL (permitido)
- • em_estoque: true (DEFAULT)
- • data_criacao: agora (DEFAULT)
❌ Inserção Inválida
-- Faltou campo obrigatório
INSERT INTO produtos (categoria)
VALUES ('Acessórios');
Erro:
Campo 'nome' é NOT NULL e não foi fornecido!
💡 Dica Importante:
Sempre verifique quais campos são obrigatórios (NOT NULL) antes de inserir dados. Campos com DEFAULT ou que permitem NULL podem ser omitidos.
Inserindo Múltiplos Registros
É possível inserir vários registros de uma só vez, o que é mais eficiente do que fazer várias inserções separadas.
Método 1: VALUES múltiplos
INSERT INTO produtos (nome, preco, categoria, em_estoque)
VALUES
('Teclado Mecânico', 299.90, 'Acessórios', true),
('Monitor 24"', 899.00, 'Eletrônicos', true),
('Webcam HD', 159.90, 'Acessórios', false);
Vantagens:
- • Mais rápido que inserções individuais
- • Menos tráfego de rede
- • Operação atômica (tudo ou nada)
Método 2: Inserção com SELECT (veremos na aula 6)
Também é possível inserir dados vindos de outra consulta usando INSERT INTO ... SELECT. Isso será abordado quando aprendermos sobre consultas.
Tipos de Dados e Formatação
É importante saber como formatar diferentes tipos de dados ao inserir:
Texto (STRING)
'Texto entre aspas simples'
Sempre use aspas simples para texto
Números
123 ou 45.67
Sem aspas, use ponto para decimais
Datas
'2024-03-15' ou '2024-03-15 14:30:00'
Formato ISO: YYYY-MM-DD
Boolean
true ou false
Sem aspas, minúsculo
NULL
NULL
Representa ausência de valor
JSON
'{"nome": "João", "idade": 30}'
JSON válido entre aspas
Exemplo completo com diferentes tipos:
INSERT INTO clientes (nome, email, telefone, data_nascimento, ativo, configuracoes)
VALUES (
'João Silva', -- texto
'joao@email.com', -- texto
'11999887766', -- texto (telefone como string)
'1990-05-15', -- data
true, -- boolean
'{"tema": "escuro", "notificacoes": true}' -- JSON
);
Exercício Prático
Vamos praticar inserções!
Complete os comandos INSERT abaixo para adicionar dados à tabela de produtos:
1. Inserir um produto completo:
INSERT INTO produtos (nome, preco, categoria, em_estoque)
VALUES (_______, _______, _______, _______);
2. Inserir apenas campos obrigatórios:
INSERT INTO produtos (nome, preco)
VALUES (_______, _______);
3. Qual comando está correto para inserir múltiplos produtos?
Erros Comuns
❌ Aspas incorretas
VALUES ("texto", 123) -- ERRADO
VALUES ('texto', 123) -- CORRETO
❌ Tipos incompatíveis
VALUES ('abc', 'xyz') -- texto em campo numérico
VALUES ('abc', 123) -- CORRETO
❌ Campos obrigatórios
INSERT INTO produtos (categoria) VALUES ('Casa')
Faltou o campo 'nome' que é NOT NULL
❌ Número de valores
INSERT INTO produtos (nome, preco) VALUES ('Produto')
Faltou o valor para 'preco'
Resumo da Aula
- INSERT INTO adiciona novos registros às tabelas
- Pode inserir em colunas específicas ou todas as colunas
- Campos NOT NULL são obrigatórios, campos com DEFAULT são opcionais
- É possível inserir múltiplos registros de uma vez
- Cada tipo de dado tem sua formatação específica