🎯 ATIVIDADE 06 — MOBILIANDO A CASA
Bem-vindo à sexta semana (4 aulas) do curso de Banco de Dados. Sua estrutura teórica já está pronta. Agora, vamos "mobiliar" o sistema — inserir dados reais e aprender a fazer as perguntas certas ao banco de dados usando a DML (Data Manipulation Language). 🛡️🧩
🎯 Objetivo da Aula
Ao final desta semana, você será capaz de:
- Inserir registros usando o comando
INSERT INTO. - Consultar dados de forma seletiva com
SELECTeWHERE. - Utilizar Operadores Lógicos (e / ou) para filtrar resultados com precisão.
- Ordenar informações com
ORDER BY.
🏢 O Cenário Prático (Seu Desafio)
A TecProExpress iniciou suas operações! Você recebeu uma lista de clientes iniciais e produtos. Seu desafio é popular o banco e gerar os primeiros relatórios para a gerência.
[!IMPORTANT] A Regra de Ouro: Você não pode colocar móveis em uma casa que ainda não tem paredes. No banco de dados, primeiro CRIAMOS a tabela (DDL) e depois INSERIMOS os dados (DML).
🧠 Fundamentos: A Teoria Traduzida
Consultar o banco é como usar o filtro de pesquisa do Instagram ou da Amazon.
O Fluxo da Pergunta (SELECT)
Veja como o banco processa sua solicitação:
flowchart LR
A[1. Tabela Criada] --> B[2. Dados Inseridos]
B --> C{"3. WHERE: Filtro"}
C -- Atende --> D[Exibir Linha]
C -- Não Atende --> E[Descartar]
D --> F["4. ORDER BY: Ordenação"]
style A fill:#e8f5e9
style B fill:#fffde7
📖 Exemplo Guiado: O Passo a Passo Completo
Para quem está começando, este é o fluxo obrigatório para qualquer banco de dados.
1. Criando o "Espaço" (DDL)
-- Primeiro, criamos a tabela para receber os produtos
CREATE TABLE produto (
id INT PRIMARY KEY AUTO_INCREMENT,
nome VARCHAR(100),
preco DECIMAL(10,2)
);
2. Inserindo a "Mobília" (DML)
-- Agora que a tabela existe, inserimos os dados
INSERT INTO produto (nome, preco) VALUES
('Smartphone X', 2500.00),
('Cabo USB', 25.00),
('Monitor 4K', 1800.00);
3. Fazendo a Pergunta (Query)
-- Selecionamos apenas o que nos interessa
SELECT nome, preco FROM produto WHERE preco > 100 AND preco < 2000;
🔍 Detalhamento do Código:
- CREATE TABLE: Prepara o terreno. Sem isso, o comando INSERT dá erro de "Table doesn't exist".
- INSERT INTO: "Empurra" os dados para dentro das colunas nome e preco.
- AND: O operador e exige que as duas condições sejam verdadeiras ao mesmo tempo.
🛠️ Prática Obrigatória 1: Populando a TecProExpress
Cenário: Carga inicial de teste.
- Crie a tabela
clientecom as colunasid,nomeecidade. - Insira 5 Clientes (use cidades como 'São Paulo', 'Curitiba' e 'Santos').
🚀 Script de Seed Completo (SQL)
[!TIP] Copie e cole este bloco no seu SGBD para garantir que o ambiente esteja pronto:
-- PASSO 1: Criar a tabela
CREATE TABLE cliente (
id INT PRIMARY KEY AUTO_INCREMENT,
nome VARCHAR(100),
cidade VARCHAR(50)
);
-- PASSO 2: Inserir os dados
INSERT INTO cliente (nome, cidade) VALUES
('Marcos Silva', 'São Paulo'),
('Julia Costa', 'Curitiba'),
('Roberto Dias', 'Santos'),
('Ana Paula', 'São Paulo'),
('Lucas Melo', 'Santos');
🛠️ Prática Obrigatória 2: Relatórios de Operação
Cenário: O Gerente solicitou dados específicos.
- Filtro Flexível (ou): Liste os clientes que moram em 'São Paulo' ou 'Santos'.
- Ordenação: Liste todos os produtos do mais caro para o mais barato (
DESC).
📤 Instruções de Entrega (Microsoft Teams)
Após validar seus códigos SQL locais:
- Certifique-se de que os seus comandos
INSERT INTOeSELECTestão em conformidade com o padrão ANSI SQL. - Salve os comandos em um único arquivo de script com a extensão
.sql(Ex:Atividade_06_SeuNome.sql). - Certifique-se de incluir comentários no código explicando o papel dos filtros lógicos
AND(operador e para restringir linhas) eOR(operador ou para ampliar critérios) nas consultas. - Envie o arquivo
.sqlcorrespondente no Microsoft Teams para avaliação técnica.
💡 Checkpoint de Lógica
[!IMPORTANT] Dica para Iniciantes: Sempre que você fechar seu banco de dados e abrir de novo, verifique se a tabela ainda existe. Se você estiver usando um banco em memória ou temporário, precisará rodar o
CREATE TABLEnovamente antes de inserir dados. 🧠🛡️
🔥 Desafio de Fixação (Opcional)
Nível: Analista Sênior 🏆
Use o operador LIKE para encontrar todos os clientes cujo nome comece com a letra "A". Como o WHERE se comporta nesse caso?
🔑 Gabarito de Código/Fórmulas Completo
Consultas da Prática 2:
-- 1. Filtro Flexível (OU)
SELECT * FROM cliente
WHERE cidade = 'São Paulo' OR cidade = 'Santos';
-- 2. Ordenação Decrescente (Z-A / Maior-Menor)
SELECT * FROM produto
ORDER BY preco DESC;
🔍 Explicação do Gabarito:
- OR: Traz registros que atendam a QUALQUER uma das condições.
- DESC: Inverte a ordem natural. No preço, coloca o mais caro primeiro.