Pular para conteúdo

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: Criar
  • ALTER: Mudar
  • DROP: Destruir 🔥
  • TRUNCATE: Esvaziar

🏗️ Criando o Banco de Dados

CREATE DATABASE meu_projeto;
- 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)
);
- O comando REFERENCES cria o elo de integridade! 🛡️


✅ A cláusula CHECK

ALTER TABLE usuarios 
ADD CHECK (idade >= 18);
- 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) 🐇
    CREATE INDEX idx_email ON usuarios(email);
    

⚖️ Prós e Contras dos Índices

  • Pró: Leituras instantâneas
  • Contra: Deixa o INSERT um 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
    ALTER TABLE usuarios 
    RENAME COLUMN nome TO nome_completo;
    

🔥 Destruindo com Segurança (DROP)

DROP TABLE usuarios;
- Cuidado: Isso apaga a tabela E os dados dela! 🛑 - Use DROP TABLE IF EXISTS para scripts mais seguros.


🧹 Limpeza Rápida (TRUNCATE)

  • Quer limpar a tabela sem apagar a estrutura?
    TRUNCATE TABLE logs;
    
  • 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

  1. Planejar (DER)
  2. Criar (DDL)
  3. Popular (DML - Próxima aula!)
  4. Consultar (DQL)

🧠 Desafio Prático

  • Tente criar um script SQL para:
  • Tabela Escolas
  • Tabela Salas (com FK para Escolas)
  • Coluna capacidade com CHECK > 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, DROP são os pilares
  • PKs e FKs garantem a ordem
  • Índices garantem a velocidade

👋 Até a próxima aula!

Tema: Módulo II - SQL Prática (DML) ⚙️

"Ir para Prática"