3

Comando INSERT

5 Sessões Práticas • 45 minutos cada • Iniciante

Domine a inserção de dados no Supabase através de 5 sessões práticas progressivas, desde conceitos básicos até projetos completos com a tabela da padaria.

🔍 Legenda dos Códigos - MUITO IMPORTANTE!

PASSO 1, 2, 3...

✅ Códigos para EXECUTAR

Estes códigos você DEVE EXECUTAR no SQL Editor do Supabase. São atividades práticas obrigatórias!

EXEMPLO - NÃO PRECISA CODAR

📖 Códigos para ESTUDAR

Estes códigos são apenas para DEMONSTRAÇÃO. Leia e entenda, mas não precisa executar!

📅 Navegação das 5 Sessões

SESSÃO 1: Conceitos Básicos e Primeiros Passos (45 minutos)

🎯 Objetivos desta sessão prática:

  • • Entender o que é inserção de dados na prática
  • • Configurar e acessar o SQL Editor no Supabase
  • • Executar seu primeiro comando INSERT
  • • Inserir dados reais na tabela de produtos da padaria

⏱️ Tempo estimado: 35-40 minutos + 5-10 minutos para dúvidas

🍞 Contexto: Padaria Digital

Você é o gerente de uma padaria e precisa cadastrar os produtos no sistema digital. Vamos aprender a inserir dados reais na tabela de produtos que criamos na aula anterior.

💡 O que é INSERT na prática:

É como preencher uma ficha de produto: nome, preço, categoria, etc. Mas ao invés de papel, usamos comandos SQL no Supabase!

🚀 ATIVIDADE PRÁTICA 1: Acessando o SQL Editor

👨‍💻 PASSO A PASSO - EXECUTE AGORA:

PASSO 1

Abra seu navegador e acesse supabase.com

PASSO 2

Faça login com sua conta e selecione o projeto da padaria

PASSO 3

No menu lateral esquerdo, clique em "SQL Editor"

PASSO 4

Clique em "New query" para criar uma nova consulta

PASSO 5

Verifique se você consegue ver a área de texto para comandos SQL

✅ Checkpoint: Todos conseguiram acessar o SQL Editor?

⚠️ IMPORTANTE - Não confunda as abas:

  • Table Editor: Para visualizar dados (não executar SQL)
  • Database: Para ver estrutura das tabelas
  • SQL Editor: ✅ AQUI que executamos comandos INSERT

📝 Entendendo a Sintaxe do INSERT

🔍 EXEMPLO - NÃO PRECISA CODAR:

INSERT INTO nome_da_tabela (coluna1, coluna2, coluna3)
VALUES (valor1, valor2, valor3);

👆 Este é apenas um exemplo para entender a estrutura

🔍 Explicação de cada parte:

  • INSERT INTO: Comando para inserir
  • nome_da_tabela: Qual tabela recebe os dados
  • (coluna1, coluna2): Quais campos preencher
  • VALUES: Palavra-chave para os valores
  • (valor1, valor2): Os dados a inserir
  • ; Ponto e vírgula obrigatório

✅ Regras importantes:

  • • Ordem dos valores = ordem das colunas
  • • Texto sempre entre aspas simples 'assim'
  • • Números sem aspas: 123 ou 45.67
  • • Cada comando termina com ;
  • • Campos obrigatórios não podem ficar vazios

🚀 ATIVIDADE PRÁTICA 2: Seu Primeiro INSERT

📋 Estrutura da tabela 'produtos' da padaria:

🔍 EXEMPLO - NÃO PRECISA CODAR:
-- Estrutura da tabela produtos:
-- id (INTEGER, chave primária, auto-incremento)
-- nome (TEXT, obrigatório)
-- preco (DECIMAL, obrigatório) 
-- categoria (TEXT, opcional)
-- em_estoque (BOOLEAN, padrão: true)

👨‍💻 PASSO A PASSO - EXECUTE AGORA:

PASSO 6

No SQL Editor, digite exatamente este comando:

INSERT INTO produtos (nome, preco, categoria)
VALUES ('Pão Francês', 0.50, 'Pães');
PASSO 7

Clique no botão "Run" (ou pressione Ctrl+Enter)

PASSO 8

Verifique se apareceu a mensagem de sucesso: "Success. No rows returned"

✅ Checkpoint: Todos conseguiram inserir o primeiro produto?

📋 O que aconteceu no comando:

  • INSERT INTO produtos: Inserimos na tabela 'produtos'
  • (nome, preco, categoria): Especificamos 3 colunas
  • VALUES: Palavra-chave para os valores
  • 'Pão Francês': Nome do produto (texto entre aspas)
  • 0.50: Preço (número decimal, sem aspas)
  • 'Pães': Categoria (texto entre aspas)

🤔 Por que não incluímos 'id' e 'em_estoque'?

  • id: É auto-incremento, o Supabase gera automaticamente
  • em_estoque: Tem valor padrão 'true', não precisamos especificar

🚀 ATIVIDADE PRÁTICA 3: Inserindo Mais Produtos

👨‍💻 AGORA É SUA VEZ - EXECUTE ESTES COMANDOS:

PASSO 9

Insira um croissant:

INSERT INTO produtos (nome, preco, categoria)
VALUES ('Croissant', 3.50, 'Pães');
PASSO 10

Insira um café:

INSERT INTO produtos (nome, preco, categoria)
VALUES ('Café Expresso', 4.00, 'Bebidas');
PASSO 11

Verifique os dados inseridos:

SELECT * FROM produtos;

✅ Checkpoint: Todos conseguem ver os 3 produtos inseridos?

🎉 Parabéns! Você completou a SESSÃO 1:

  • ✅ Acessou o SQL Editor no Supabase
  • ✅ Executou seus primeiros comandos INSERT
  • ✅ Inseriu 3 produtos na tabela da padaria
  • ✅ Verificou os dados com SELECT

⏱️ Tempo restante: 5-10 minutos para dúvidas e revisão

SESSÃO 2: INSERT com Diferentes Tipos de Dados (45 minutos)

🎯 Objetivos Práticos:

  • • Inserir dados de texto, números e datas no Supabase
  • • Trabalhar com valores NULL e campos opcionais
  • • Criar registros de clientes da padaria
  • • Praticar inserção em colunas específicas
  • • Validar diferentes tipos de dados inseridos

⏱️ Tempo estimado: 35-40 minutos + 5-10 minutos para dúvidas

🏪 Contexto: Cadastro de Clientes da Padaria

Nossa padaria está crescendo! Agora precisamos cadastrar clientes para um programa de fidelidade. Vamos criar uma tabela 'clientes' e aprender a inserir diferentes tipos de dados.

📋 Dados que vamos trabalhar:

  • Texto: Nome, email, telefone
  • Números: Idade, pontos de fidelidade
  • Datas: Data de nascimento, data de cadastro
  • Booleanos: Cliente ativo, aceita promoções
  • NULL: Campos opcionais não preenchidos

🚀 ATIVIDADE PRÁTICA 1: Criando a Tabela de Clientes

👨‍💻 EXECUTE ESTE COMANDO NO SUPABASE:

PASSO 12

Crie a tabela de clientes:

CREATE TABLE clientes (
    id SERIAL PRIMARY KEY,
    nome VARCHAR(100) NOT NULL,
    email VARCHAR(150),
    telefone VARCHAR(20),
    idade INTEGER,
    data_nascimento DATE,
    pontos_fidelidade INTEGER DEFAULT 0,
    cliente_ativo BOOLEAN DEFAULT true,
    aceita_promocoes BOOLEAN DEFAULT true,
    data_cadastro TIMESTAMP DEFAULT NOW()
);

✅ Checkpoint: A tabela foi criada com sucesso?

🔍 EXEMPLO - NÃO PRECISA CODAR

Entenda a estrutura da tabela que acabamos de criar:

Campos Obrigatórios:
  • id: Gerado automaticamente
  • nome: Texto obrigatório (NOT NULL)
Campos Opcionais:
  • email, telefone: Podem ser NULL
  • idade, data_nascimento: Opcionais
  • pontos_fidelidade: Padrão = 0
  • cliente_ativo: Padrão = true
  • data_cadastro: Padrão = agora

🚀 ATIVIDADE PRÁTICA 2: Inserindo Dados de Texto

👨‍💻 EXECUTE ESTES COMANDOS NO SUPABASE:

PASSO 13

Insira um cliente com apenas o nome (campo obrigatório):

INSERT INTO clientes (nome)
VALUES ('Maria Silva');
PASSO 14

Insira um cliente com nome e email:

INSERT INTO clientes (nome, email)
VALUES ('João Santos', 'joao@email.com');
PASSO 15

Verifique os dados inseridos:

SELECT * FROM clientes;

✅ Checkpoint: Conseguem ver os 2 clientes? Observem os campos NULL e os valores padrão!

🔍 EXEMPLO - NÃO PRECISA CODAR

Observe o que aconteceu com os dados:

Cliente 1 - Maria Silva:
  • nome: 'Maria Silva' ✅
  • email: NULL (não informado)
  • pontos_fidelidade: 0 (padrão)
  • cliente_ativo: true (padrão)
  • data_cadastro: agora (padrão)
Cliente 2 - João Santos:
  • nome: 'João Santos' ✅
  • email: 'joao@email.com' ✅
  • telefone: NULL (não informado)
  • pontos_fidelidade: 0 (padrão)
  • cliente_ativo: true (padrão)

🚀 ATIVIDADE PRÁTICA 3: Inserindo Números e Datas

👨‍💻 EXECUTE ESTES COMANDOS NO SUPABASE:

PASSO 16

Insira um cliente com idade e telefone:

INSERT INTO clientes (nome, telefone, idade)
VALUES ('Ana Costa', '(11) 99999-1234', 28);
PASSO 17

Insira um cliente com data de nascimento:

INSERT INTO clientes (nome, email, data_nascimento, idade)
VALUES ('Carlos Lima', 'carlos@email.com', '1990-05-15', 34);
PASSO 18

Insira um cliente inativo com pontos de fidelidade:

INSERT INTO clientes (nome, pontos_fidelidade, cliente_ativo, aceita_promocoes)
VALUES ('Pedro Silva', 150, false, false);
PASSO 19

Verifique todos os clientes cadastrados:

SELECT * FROM clientes ORDER BY id;

✅ Checkpoint: Conseguem ver 5 clientes com diferentes tipos de dados?

📚 Tipos de Dados que Acabamos de Usar:

Tipos Textuais:
  • VARCHAR: 'Ana Costa', 'carlos@email.com'
  • Aspas simples: Sempre para texto
Tipos Numéricos e Outros:
  • INTEGER: 28, 34, 150 (sem aspas)
  • DATE: '1990-05-15' (formato YYYY-MM-DD)
  • BOOLEAN: true, false (sem aspas)

🎯 RESUMO DA SESSÃO 2

✅ O que Aprendemos Hoje:

Atividades Realizadas:
  • • Criamos tabela de clientes
  • • Inserimos dados de texto (nomes, emails)
  • • Trabalhamos com números (idade, pontos)
  • • Usamos datas e valores booleanos
  • • Verificamos os dados inseridos
Tipos de Dados Dominados:
  • VARCHAR: Texto com aspas simples
  • INTEGER: Números sem aspas
  • DATE: Formato 'YYYY-MM-DD'
  • BOOLEAN: true/false sem aspas

🏆 Parabéns! Vocês já sabem inserir diferentes tipos de dados no Supabase!

⏰ Estimativa de Tempo da Sessão 2:

Atividade 1

Criar tabela: 10 min

Atividade 2

Inserir textos: 15 min

Atividade 3

Números e datas: 20 min

Total: 45 minutos ✅

SESSÃO 3: INSERT Múltiplo e Boas Práticas (45 minutos)

🎯 Objetivos Práticos desta Sessão:

  • • Inserir vários produtos da padaria de uma só vez
  • • Cadastrar múltiplos clientes em lote
  • • Aprender a sintaxe de INSERT múltiplo
  • • Praticar boas práticas de inserção em massa
  • • Verificar e validar dados inseridos em lote

⏰ Estimativa de Tempo:

Esta sessão tem aproximadamente 40 minutos de atividades práticas + 5 minutos para dúvidas

🏪 Contexto: Expansão da Padaria

Nossa padaria está crescendo! Precisamos cadastrar:

  • Novos produtos: Linha completa de bolos e tortas
  • Mais clientes: Lista de clientes do bairro
  • Eficiência: Fazer tudo de forma rápida e organizada

📝 EXEMPLO - NÃO PRECISA CODAR

🔍 EXEMPLO - NÃO PRECISA CODAR

Veja a diferença entre inserir produtos um por um vs inserir vários de uma vez:

❌ Forma Lenta (3 comandos):

INSERT INTO produtos (nome, preco) VALUES ('Bolo Chocolate', 25.90);
INSERT INTO produtos (nome, preco) VALUES ('Torta Morango', 35.90);
INSERT INTO produtos (nome, preco) VALUES ('Bolo Cenoura', 22.90);

✅ Forma Rápida (1 comando):

INSERT INTO produtos (nome, preco) VALUES 
    ('Bolo Chocolate', 25.90),
    ('Torta Morango', 35.90),
    ('Bolo Cenoura', 22.90);

💡 Vantagem: Mais rápido, mais organizado e menos chance de erro!

🚀 ATIVIDADE PRÁTICA 4: Inserindo Múltiplos Produtos

📋 PASSO 20 - Execute no Supabase

Agora vamos inserir vários produtos de uma só vez na nossa tabela de produtos:

INSERT INTO produtos (nome, preco, categoria, em_estoque) VALUES
    ('Pão Francês', 0.50, 'Pães', true),
    ('Croissant', 4.50, 'Pães', true),
    ('Bolo de Fubá', 18.90, 'Bolos', true),
    ('Torta de Limão', 32.90, 'Tortas', false);

📋 PASSO 21 - Verificar os dados

SELECT * FROM produtos ORDER BY id DESC LIMIT 4;

Checkpoint: Você deve ver os 4 novos produtos listados!

🎯 O que Aconteceu?

Com um único comando INSERT, inserimos 4 produtos diferentes! Veja a estrutura:

💡 Cada linha VALUES representa um produto completo:

  • • Linha 1: Pão Francês por R$ 0,50
  • • Linha 2: Croissant por R$ 4,50
  • • Linha 3: Bolo de Fubá por R$ 18,90
  • • Linha 4: Torta de Limão por R$ 32,90 (indisponível)

🚀 ATIVIDADE PRÁTICA 5: Inserindo Múltiplos Clientes

📋 PASSO 22 - Execute no Supabase

Agora vamos cadastrar vários clientes da padaria de uma vez:

INSERT INTO clientes (nome, email, telefone, data_nascimento, cliente_ativo) VALUES
    ('Maria Silva', 'maria@email.com', '11999887766', '1985-03-15', true),
    ('João Santos', 'joao@email.com', '11888776655', '1990-07-22', true),
    ('Ana Costa', 'ana@email.com', '11777665544', '1988-12-10', false);

📋 PASSO 23 - Verificar os clientes

SELECT nome, email, telefone FROM clientes ORDER BY id DESC LIMIT 3;

Checkpoint: Você deve ver os 3 novos clientes cadastrados!

📋 Regras Importantes:

  • Mesma ordem: Valores na ordem das colunas
  • Vírgulas: Separar registros com vírgula
  • Tipos corretos: Texto, números, datas
  • Último sem vírgula: Não colocar vírgula no final

⚡ Vantagens:

  • Mais rápido: Um comando vs vários
  • Mais seguro: Tudo ou nada
  • Menos código: Mais organizado
  • IDs sequenciais: Gerados automaticamente

🎯 RESUMO DA SESSÃO 3

✅ O que Aprendemos:

  • INSERT Múltiplo: Inserir vários registros de uma vez
  • Sintaxe VALUES: Como separar múltiplos registros
  • Eficiência: Mais rápido que inserções individuais
  • Prática: Inserimos produtos e clientes da padaria

⏱️ Tempo da Sessão 3:

Conceitos

10 minutos

Atividades Práticas

30 minutos

Dúvidas

5 minutos

🚀 Próxima Sessão:

SESSÃO 4: Tratamento de Erros e Validações - Aprenderemos a identificar e corrigir problemas nos nossos comandos INSERT!

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?

SESSÃO 4: Tratamento de Erros e Validações (45 minutos)

Estimativa de Tempo

  • • Identificação de erros: 15 minutos
  • • Correção prática: 20 minutos
  • • Validação de dados: 10 minutos

Contexto: Problemas Reais na Padaria

Durante o cadastro de produtos, alguns erros começaram a aparecer. Vamos aprender a identificar, entender e corrigir esses problemas para manter a qualidade dos dados.

Objetivos Práticos

  • Identificar e corrigir erros de sintaxe
  • Resolver problemas de tipos de dados
  • Validar dados antes da inserção
  • Usar ferramentas de debug do Supabase

📝 EXEMPLO - NÃO PRECISA CODAR

Vamos ver os erros mais comuns e como identificá-los:

❌ Erro: Aspas incorretas

INSERT INTO produtos (nome, preco)
VALUES ("Pão Francês", 0.50);

Mensagem: syntax error at or near "Pão"

VALUES ('Pão Francês', 0.50); -- CORRETO

❌ Erro: Tipos incompatíveis

INSERT INTO produtos (nome, preco)
VALUES ('Croissant', 'dois reais');

Mensagem: invalid input syntax for type numeric

VALUES ('Croissant', 2.00); -- CORRETO

❌ Erro: Campo obrigatório

INSERT INTO produtos (categoria)
VALUES ('Padaria');

Mensagem: null value in column "nome" violates not-null constraint

INSERT INTO produtos (nome, categoria)
VALUES ('Baguete', 'Padaria'); -- CORRETO

❌ Erro: Número de valores

INSERT INTO produtos (nome, preco, categoria)
VALUES ('Sonho', 1.50);

Mensagem: INSERT has more target columns than expressions

VALUES ('Sonho', 1.50, 'Doces'); -- CORRETO

🚀 ATIVIDADE PRÁTICA 6: Corrigindo Erros

Vamos corrigir comandos com erros!

Execute cada PASSO no Supabase e observe as mensagens de erro.

PASSO 24 Teste este comando com erro (vai dar erro mesmo!)

⚠️ Código não copiável - Digite para praticar

-- Este comando TEM ERRO propositalmente
INSERT INTO produtos (nome, preco)
VALUES ("Pão de Açúcar", 'três reais');

Observe a mensagem de erro que aparece!

PASSO 25 Agora execute a versão corrigida

⚠️ Código não copiável - Digite para praticar

-- Versão CORRIGIDA
INSERT INTO produtos (nome, preco)
VALUES ('Pão de Açúcar', 3.00);

Agora deve funcionar perfeitamente!

✅ CHECKPOINT

Verifique se o produto foi inserido:

SELECT * FROM produtos WHERE nome = 'Pão de Açúcar';

🚀 ATIVIDADE PRÁTICA 7: Validação de Dados

Vamos validar dados antes de inserir!

Teste diferentes cenários de validação.

PASSO 26 Teste inserção com preço negativo

⚠️ Código não copiável - Digite para praticar

-- Teste: preço negativo (pode ou não dar erro)
INSERT INTO produtos (nome, preco)
VALUES ('Teste Preço', -5.00);

Observe se o Supabase aceita preços negativos.

PASSO 27 Verifique os dados inseridos

⚠️ Código não copiável - Digite para praticar

-- Verificar todos os produtos
SELECT nome, preco 
FROM produtos 
ORDER BY id DESC 
LIMIT 5;

Veja os últimos 5 produtos inseridos.

✅ CHECKPOINT

Remova dados de teste se necessário:

DELETE FROM produtos WHERE nome LIKE 'Teste%';

🎯 RESUMO DA SESSÃO 4

✅ O que aprendemos:

  • Identificar erros de sintaxe
  • Corrigir problemas de tipos
  • Validar dados antes da inserção
  • Usar ferramentas de debug

⏱️ Tempo gasto:

  • • Identificação de erros: 15 min
  • • Correção prática: 20 min
  • • Validação de dados: 10 min
  • Total: 45 minutos

Próxima sessão:

SESSÃO 5 - Exercícios práticos completos e revisão com projeto final da padaria.

SESSÃO 5: Exercícios Práticos e Projeto Final (45 minutos)

Estimativa de Tempo

  • • Projeto final da padaria: 25 minutos
  • • Revisão e consolidação: 15 minutos
  • • Apresentação dos resultados: 5 minutos

Contexto: Projeto Final da Padaria

Agora vamos consolidar tudo que aprendemos criando um banco de dados completo para a padaria. Você vai inserir produtos, clientes e fazer validações como um verdadeiro administrador de banco de dados!

Objetivos do Projeto Final

  • Criar um catálogo completo de produtos
  • Cadastrar base de clientes da padaria
  • Aplicar todas as técnicas de INSERT aprendidas
  • Validar e corrigir dados inconsistentes

🚀 PROJETO FINAL: Banco de Dados da Padaria Completo

🎯 Missão: Criar o banco de dados completo da padaria!

Execute todos os PASSOS em sequência no Supabase.

PASSO 28 Limpe dados de teste anteriores

⚠️ Código não copiável - Digite para praticar

-- Limpar dados de teste
DELETE FROM produtos WHERE nome LIKE 'Teste%' OR nome LIKE 'Produto%';
DELETE FROM clientes WHERE nome LIKE 'Teste%';

Começamos com uma base limpa!

PASSO 29 Insira o catálogo completo de produtos da padaria

⚠️ Código não copiável - Digite para praticar

-- Catálogo completo da padaria
INSERT INTO produtos (nome, preco, categoria) VALUES
('Pão Francês', 0.50, 'Padaria'),
('Croissant', 3.50, 'Padaria'),
('Baguete', 4.00, 'Padaria'),
('Pão de Açúcar', 2.50, 'Padaria'),
('Brigadeiro', 2.00, 'Doces'),
('Beijinho', 2.00, 'Doces'),
('Torta de Morango', 25.00, 'Bolos'),
('Bolo de Chocolate', 30.00, 'Bolos'),
('Café Expresso', 3.00, 'Bebidas'),
('Cappuccino', 5.00, 'Bebidas');

Inserindo 10 produtos de diferentes categorias!

PASSO 30 Cadastre a base de clientes da padaria

⚠️ Código não copiável - Digite para praticar

-- Base de clientes da padaria
INSERT INTO clientes (nome, email, telefone) VALUES
('Maria Silva', 'maria.silva@email.com', '11999887766'),
('João Santos', 'joao.santos@email.com', '11888776655'),
('Ana Costa', 'ana.costa@email.com', '11777665544'),
('Pedro Oliveira', 'pedro.oliveira@email.com', '11666554433'),
('Carla Souza', 'carla.souza@email.com', '11555443322');

Cadastrando 5 clientes fiéis da padaria!

✅ CHECKPOINT PRINCIPAL

Verifique se tudo foi inserido corretamente:

SELECT COUNT(*) as total_produtos FROM produtos;
SELECT COUNT(*) as total_clientes FROM clientes;
SELECT categoria, COUNT(*) as quantidade FROM produtos GROUP BY categoria;

🔍 ATIVIDADE FINAL: Validação e Relatórios

Vamos validar nossos dados e gerar relatórios!

Execute os comandos para verificar a qualidade dos dados.

PASSO 31 Relatório de produtos por categoria

⚠️ Código não copiável - Digite para praticar

-- Relatório por categoria
SELECT 
    categoria,
    COUNT(*) as quantidade,
    AVG(preco) as preco_medio,
    MIN(preco) as menor_preco,
    MAX(preco) as maior_preco
FROM produtos 
GROUP BY categoria
ORDER BY categoria;

Análise estatística dos produtos!

PASSO 32 Validação de dados dos clientes

⚠️ Código não copiável - Digite para praticar

-- Verificar dados dos clientes
SELECT 
    nome,
    email,
    CASE 
        WHEN email LIKE '%@%' THEN 'Email válido'
        ELSE 'Email inválido'
    END as status_email,
    LENGTH(telefone) as tamanho_telefone
FROM clientes
ORDER BY nome;

Verificando qualidade dos dados!

🏆 PROJETO CONCLUÍDO!

Parabéns! Você criou um banco de dados completo. Faça uma consulta final:

SELECT 'Projeto da Padaria Concluído!' as status, NOW() as data_conclusao;

🎓 RESUMO COMPLETO DAS 5 SESSÕES

📚 SESSÃO 1 (45 min)

  • • Conceitos básicos de INSERT
  • • Primeiros comandos práticos
  • • Estrutura das tabelas

🔢 SESSÃO 2 (45 min)

  • • Tipos de dados diferentes
  • • Formatação correta
  • • Campos obrigatórios

⚡ SESSÃO 3 (45 min)

  • • INSERT múltiplo
  • • Boas práticas
  • • Eficiência na inserção

🐛 SESSÃO 4 (45 min)

  • • Identificação de erros
  • • Correção de problemas
  • • Validação de dados

🏆 SESSÃO 5 (45 min)

  • • Projeto final completo
  • • Consolidação prática
  • • Validação e relatórios

📊 TOTAL GERAL

  • 225 minutos de aula
  • 32 passos práticos
  • 1 projeto completo

🌟 Parabéns! Você domina o comando INSERT!

Agora você sabe inserir dados no Supabase, trabalhar com diferentes tipos de dados, fazer inserções múltiplas, corrigir erros e validar informações. Você está pronto para trabalhar com bancos de dados reais!

Aula Anterior: Criando Tabelas Próxima Aula: Consultando Dados