Aula 04: DDL - Criação da Estrutura 🏗️
Mão na Massa com SQL
Ricardo Pires
Bancos de Dados SQL e NoSQL
🎯 O que vamos aprender hoje?
- A linguagem DDL
- Criando Bancos de Dados
- Criando Tabelas e Tipos
- Constraints (Restrições)
- Índices e Performance
- Alterando e Removendo Estruturas
📜 O que é DDL?
- Data Definition Language
- Foco na ESTRUTURA (o container)
- Não mexe nos dados (linhas) ainda! 📂
🛠️ Comandos Principais
CREATE: CriarALTER: MudarDROP: Destruir 🔥TRUNCATE: Esvaziar
🏗️ Criando o Banco de Dados
- Dica: No pgAdmin, você pode usar a interface visual, mas o SQL é mais poderoso!📑 Criando uma Tabela
CREATE TABLE usuarios (
id SERIAL PRIMARY KEY,
nome VARCHAR(100) NOT NULL,
email VARCHAR(150) UNIQUE
);
SERIAL: Auto-incremento ➕
- NOT NULL: Obrigatório ❗
- UNIQUE: Sem repetições 🆔
🔑 Restrições (Constraints)
Servem para garantir a qualidade: - PK: Chave Primária - FK: Chave Estrangeira - CHECK: Validação personalizada - DEFAULT: Valor padrão
⛓️ Criando Chave Estrangeira (FK)
CREATE TABLE pedidos (
id SERIAL PRIMARY KEY,
id_cliente INT REFERENCES usuarios(id),
total DECIMAL(10,2)
);
REFERENCES cria o elo de integridade! 🛡️
✅ A cláusula CHECK
- Impede a entrada de dados inválidos na raiz!⚡ Índices: O Atalho
- Sem Índice: Busca sequencial (lento) 🐢
- Com Índice: Busca binária/B-Tree (rápido) 🐇
⚖️ Prós e Contras dos Índices
- Pró: Leituras instantâneas
- Contra: Deixa o
INSERTum pouco mais pesado - Regra: Indexe colunas muito usadas no
WHERE.
🔨 Alterando a Tabela (ALTER)
- Mudar nome da coluna
- Mudar tipo de dado
- Adicionar ou remover restrições
🔥 Destruindo com Segurança (DROP)
- Cuidado: Isso apaga a tabela E os dados dela! 🛑 - UseDROP TABLE IF EXISTS para scripts mais seguros.
🧹 Limpeza Rápida (TRUNCATE)
- Quer limpar a tabela sem apagar a estrutura?
- Muito mais rápido que
DELETE FROM logs.
💻 Visualizando no pgAdmin
- Query Tool: Onde a mágica acontece
- Dashboards: Monitorando o servidor
- ERD Tool: Gerador de diagrama a partir do código
🧬 Ciclo de Vida do Banco
- Planejar (DER)
- Criar (DDL)
- Popular (DML - Próxima aula!)
- Consultar (DQL)
🧠 Desafio Prático
- Tente criar um script SQL para:
- Tabela
Escolas - Tabela
Salas(com FK para Escolas) - Coluna
capacidadecomCHECK > 0.
🚀 Dica de Mestre
Sempre use scripts .sql para criar seus bancos.
- Facilita o deploy
- Serve como documentação
- Permite controle de versão (Git)
🏁 Resumo
- DDL define a "casa" dos dados
CREATE,ALTER,DROPsão os pilares- PKs e FKs garantem a ordem
- Índices garantem a velocidade