3

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

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
Aula Anterior: Criando Tabelas Próxima Aula: Consultando Dados