📘 📌 SUMÁRIO SQL (PostgreSQL) PRIMARY KEY
FOREIGN KEY
🟢 1. Fundamentos NOT NULL
✔ O que é banco de dados UNIQUE
Tabelas
Linhas (registros) 🟡 4. Filtros e ordenação
Colunas (atributos) SELECT * FROM clientes
WHERE idade > 30
ORDER BY nome;
✔ Comandos básicos
SELECT * FROM tabela;
✔ Operadores
INSERT INTO tabela VALUES (...);
UPDATE tabela SET coluna = valor; =, >, <
DELETE FROM tabela;
LIKE
IN
🟢 2. Tipos de dados
BETWEEN
INT, BIGINT
VARCHAR, TEXT
🟡 5. JOIN (relacionamentos)
DATE, TIMESTAMP
SELECT [Link], [Link]
BOOLEAN FROM pedidos pe
JOIN clientes c ON [Link] = pe.id_cliente
NUMERIC(10,2)
JOIN produtos p ON [Link] = pe.id_produto;
SERIAL / IDENTITY
✔ Tipos de JOIN
🟢 3. Criação de estruturas
INNER JOIN
CREATE TABLE clientes (
LEFT JOIN
id SERIAL PRIMARY KEY,
nome TEXT NOT NULL RIGHT JOIN
);
🟠 6. Funções agregadas
SUM()
✔ Restrições (constraints)
COUNT()
AVG() 🟣 12. Índices (performance)
MAX() CREATE INDEX idx_nome ON clientes(nome);
MIN()
🟣 13. Transações
🟠 7. GROUP BY BEGIN;
COMMIT;
SELECT id_cliente, SUM(valor)
ROLLBACK;
FROM pedidos
GROUP BY id_cliente;
🟣 14. Sequence / Auto incremento
🟠 8. HAVING SERIAL
SELECT id_cliente, SUM(valor) GENERATED AS IDENTITY
FROM pedidos
GROUP BY id_cliente
HAVING SUM(valor) > 1000; 🟣 15. Boas práticas
✔ usar nomes claros
✔ evitar SELECT *
🔴 9. Subqueries
✔ usar índices quando necessário
SELECT nome ✔ normalizar dados
FROM clientes
WHERE id IN (
SELECT id_cliente FROM pedidos 🟣 16. Tópicos intermediários (quando evoluir)
);
CASE
COALESCE
🔴 10. Funções úteis
CAST
NOW()
EXISTS
UPPER()
DISTINCT
LOWER()
LENGTH()
📘 Resumo SQL (PostgreSQL) Organizado
🔴 11. Views
🟢 1. SELECT (Consulta básica)
CREATE VIEW relatorio AS
SELECT nome, idade
SELECT * FROM pedidos;
FROM clientes
WHERE idade > 30
ORDER BY nome;
🟠 7. HAVING (Filtro com agregação)
👉 Busca dados com filtro e ordenação
SELECT id_cliente, SUM(quantidade) AS total
FROM pedidos
GROUP BY id_cliente
🟢 2. INSERT (Inserir dados)
HAVING SUM(quantidade) > 5;
INSERT INTO clientes (nome, idade)
👉 Filtra após agrupamento
VALUES ('João', 25);
👉 Insere um novo registro
🔴 8. Subquery (Consulta interna)
SELECT nome
🟢 3. UPDATE (Atualizar dados)
FROM clientes
UPDATE clientes WHERE id IN (
SET idade = 26 SELECT id_cliente FROM pedidos
WHERE nome = 'João'; );
👉 Atualiza registros existentes 👉 Usa resultado de outra consulta
🟢 4. DELETE (Excluir dados) 🔴 9. CASE (Condição)
DELETE FROM clientes SELECT nome,
WHERE id = 1; CASE
WHEN idade > 30 THEN 'Adulto'
👉 Remove registros
ELSE 'Jovem'
END AS classificacao
FROM clientes;
🟡 5. JOIN (Relacionamento entre tabelas)
👉 Cria lógica condicional
SELECT [Link] AS cliente, [Link] AS produto
FROM pedidos pe
INNER JOIN clientes c ON [Link] = pe.id_cliente
INNER JOIN produtos p ON [Link] =
pe.id_produto;
👉 Junta dados de várias tabelas 🟣 10. VIEW (Consulta salva)
CREATE VIEW relatorio AS
SELECT * FROM pedidos;
🟠 6. GROUP BY (Agrupamento)
👉 Cria uma tabela virtual
SELECT id_cliente, SUM(quantidade) AS total
FROM pedidos
GROUP BY id_cliente;
🟣 11. INDEX (Performance)
👉 Agrupa dados para cálculo
CREATE INDEX idx_nome
ON clientes(nome);
👉 Acelera consultas
🟣 12. TRANSAÇÃO (Controle de operações)
BEGIN;
UPDATE clientes
SET idade = 30
WHERE id = 1;
COMMIT;
👉 Garante segurança nas alterações
🔥 Resumo rápido
SELECT → consultar
INSERT → inserir
UPDATE → atualizar
DELETE → excluir
JOIN → relacionar
GROUP BY → agrupar
HAVING → filtrar agregação
Subquery → consulta interna
CASE → condição
VIEW → consulta salva
INDEX → performance
TRANSACTION → controle