Jhonatan Pinheiro
Cargando página...
Jhonatan Pinheiro
Cargando página...
Jhonatan Pinheiro
Cargando página...
Los 20 comandos de SQL que usas todos los días — del SELECT a las agregaciones, con ejemplos listos para copiar.
Se você está começando com bancos de dados, estes são os 20 comandos que você usa todo dia. Cada um vem com um exemplo prático para você copiar e testar. Vamos do SELECT até agregações — a base de tudo.
O comando mais usado: escolhe quais colunas trazer de uma tabela. Use * para todas (evite em produção).
-- Todas as colunas
SELECT * FROM clientes;
-- Apenas o necessário (recomendado)
SELECT nome, email FROM clientes;Traz só as linhas que satisfazem uma condição.
SELECT nome, cidade
FROM clientes
WHERE cidade = 'São Paulo';Ordena o resultado. ASC (crescente, padrão) ou DESC (decrescente).
SELECT nome, criado_em
FROM clientes
ORDER BY criado_em DESC;Retorna apenas N linhas. No SQL Server é TOP; no Oracle, FETCH FIRST.
-- PostgreSQL / MySQL / SQLite
SELECT * FROM produtos ORDER BY preco DESC LIMIT 10;
-- SQL Server
SELECT TOP 10 * FROM produtos ORDER BY preco DESC;Elimina linhas repetidas do resultado.
SELECT DISTINCT cidade FROM clientes;Adiciona novas linhas. Sempre liste as colunas.
INSERT INTO clientes (nome, email, cidade)
VALUES ('Ana Souza', 'ana@email.com', 'Campinas');Altera linhas existentes. Nunca esqueça o WHERE — sem ele, atualiza a tabela inteira!
UPDATE clientes
SET cidade = 'Rio de Janeiro'
WHERE id = 42;Remove linhas. Igual ao UPDATE: sem WHERE, apaga tudo.
DELETE FROM clientes WHERE id = 42;Define a estrutura: colunas, tipos e restrições.
CREATE TABLE clientes (
id INTEGER PRIMARY KEY,
nome VARCHAR(120) NOT NULL,
email VARCHAR(200) UNIQUE,
cidade VARCHAR(80),
criado_em TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);Adiciona, remove ou muda colunas de uma tabela existente.
ALTER TABLE clientes ADD COLUMN telefone VARCHAR(20);
ALTER TABLE clientes DROP COLUMN telefone;Apaga a tabela inteira (estrutura + dados). Irreversível.
DROP TABLE clientes;
-- Só se existir (evita erro)
DROP TABLE IF EXISTS clientes;Escolher o tipo certo economiza espaço e evita bugs.
-- Numéricos: INTEGER, BIGINT, DECIMAL(10,2)
-- Texto: VARCHAR(n), TEXT
-- Data/hora: DATE, TIMESTAMP
-- Booleano: BOOLEAN
CREATE TABLE pedidos (
id BIGINT,
total DECIMAL(10,2),
pago BOOLEAN,
data DATE
);Identifica cada linha de forma única. Toda tabela deveria ter uma.
CREATE TABLE produtos (
id INTEGER PRIMARY KEY,
nome VARCHAR(120)
);Junte várias condições no WHERE. Use parênteses para deixar claro.
SELECT * FROM produtos
WHERE (categoria = 'livros' OR categoria = 'games')
AND preco < 100
AND NOT esgotado;Atalhos poderosos de filtro: lista de valores, intervalo e busca por padrão.
-- Lista
SELECT * FROM clientes WHERE cidade IN ('SP', 'RJ', 'MG');
-- Intervalo
SELECT * FROM produtos WHERE preco BETWEEN 50 AND 150;
-- Padrão (% = qualquer texto)
SELECT * FROM clientes WHERE email LIKE '%@gmail.com';NULL é 'ausência de valor'. Nunca compare com = NULL — use IS NULL.
SELECT * FROM clientes WHERE telefone IS NULL;
SELECT * FROM clientes WHERE telefone IS NOT NULL;Resumem várias linhas em um único valor.
SELECT
COUNT(*) AS total_pedidos,
SUM(total) AS faturamento,
AVG(total) AS ticket_medio,
MIN(total) AS menor,
MAX(total) AS maior
FROM pedidos;Agrupa linhas para agregar por categoria. Aqui: faturamento por cidade.
SELECT cidade, COUNT(*) AS pedidos, SUM(total) AS faturamento
FROM pedidos
GROUP BY cidade
ORDER BY faturamento DESC;Renomeia colunas e tabelas para deixar o resultado (e a query) legível.
SELECT p.nome AS produto, p.preco AS valor
FROM produtos AS p;Documente suas queries. -- para uma linha, /* */ para bloco.
-- Isto é um comentário de uma linha
SELECT nome FROM clientes; -- também funciona no fim
/* Comentário
de várias linhas */