Este repositório reúne anotações dos principais comandos SQL utilizados em bancos de dados relacionais. O objetivo é servir como material de estudo e consulta rápida com conceitos, exemplos práticos e resultados esperados.
O conteúdo está organizado com:
- Conceito
- Exemplo em SQL
- Resultado esperado
| id | name | city |
|---|---|---|
| 1 | Ana | Mineiros |
| 2 | Pedro | Goiânia |
| 3 | Carlos | Mineiros |
| id | name | price | stock | category_id |
|---|---|---|---|---|
| 1 | Notebook | 3500 | 5 | 1 |
| 2 | Mouse | 80 | 30 | 1 |
| 3 | Teclado | 150 | 20 | 1 |
| id | name |
|---|---|
| 1 | Eletrônicos |
| 2 | Escritório |
O comando SELECT é utilizado para consultar dados de uma tabela, podendo retornar todas as colunas ou apenas colunas específicas.
SELECT * FROM products;| id | name | price | stock | category_id |
|---|---|---|---|---|
| 1 | Notebook | 3500 | 5 | 1 |
| 2 | Mouse | 80 | 30 | 1 |
| 3 | Teclado | 150 | 20 | 1 |
SELECT name, price FROM products;| name | price |
|---|---|
| Notebook | 3500 |
| Mouse | 80 |
| Teclado | 150 |
A cláusula WHERE é utilizada para filtrar registros com base em uma condição.
SELECT * FROM products
WHERE price > 100;| id | name | price | stock | category_id |
|---|---|---|---|---|
| 1 | Notebook | 3500 | 5 | 1 |
| 3 | Teclado | 150 | 20 | 1 |
Os operadores AND e OR permitem combinar múltiplas condições.
AND retorna quando todas são verdadeiras. OR retorna quando ao menos uma é verdadeira.
SELECT * FROM products
WHERE price > 100 AND stock > 10;| id | name | price | stock | category_id |
|---|---|---|---|---|
| 3 | Teclado | 150 | 20 | 1 |
SELECT * FROM products
WHERE price > 100 OR stock > 25;| id | name | price | stock | category_id |
|---|---|---|---|---|
| 1 | Notebook | 3500 | 5 | 1 |
| 2 | Mouse | 80 | 30 | 1 |
| 3 | Teclado | 150 | 20 | 1 |
O operador LIKE permite buscar padrões em campos de texto.
% representa vários caracteres _ representa um caractere
SELECT * FROM customers
WHERE name LIKE 'P%';| id | name | city |
|---|---|---|
| 2 | Pedro | Goiânia |
O operador BETWEEN filtra valores dentro de um intervalo.
SELECT * FROM products
WHERE price BETWEEN 100 AND 2000;| id | name | price | stock | category_id |
|---|---|---|---|---|
| 3 | Teclado | 150 | 20 | 1 |
O operador IN permite filtrar múltiplos valores.
SELECT * FROM customers
WHERE city IN ('Mineiros', 'Goiânia');| id | name | city |
|---|---|---|
| 1 | Ana | Mineiros |
| 2 | Pedro | Goiânia |
| 3 | Carlos | Mineiros |
ORDER BY ordena os resultados de forma crescente ou decrescente.
SELECT * FROM products
ORDER BY price DESC;| id | name | price | stock | category_id |
|---|---|---|---|---|
| 1 | Notebook | 3500 | 5 | 1 |
| 3 | Teclado | 150 | 20 | 1 |
| 2 | Mouse | 80 | 30 | 1 |
LIMIT restringe a quantidade de registros retornados.
SELECT * FROM products
LIMIT 2;| id | name | price | stock | category_id |
|---|---|---|---|---|
| 1 | Notebook | 3500 | 5 | 1 |
| 2 | Mouse | 80 | 30 | 1 |
COUNT conta a quantidade de registros.
SELECT COUNT(*) FROM products;3
AVG calcula a média dos valores.
SELECT AVG(price) FROM products;1243.33
SUM realiza a soma dos valores.
SELECT SUM(stock) FROM products;55
GROUP BY agrupa registros para uso com funções agregadas.
SELECT category_id, COUNT(*)
FROM products
GROUP BY category_id;| category_id | count |
|---|---|
| 1 | 3 |
AS permite renomear colunas ou tabelas.
SELECT name AS product_name, price AS product_price
FROM products;| product_name | product_price |
|---|---|
| Notebook | 3500 |
| Mouse | 80 |
| Teclado | 150 |
Subquery é uma consulta dentro de outra consulta.
SELECT *
FROM products
WHERE price > (
SELECT AVG(price) FROM products
);| id | name | price | stock | category_id |
|---|---|---|---|---|
| 1 | Notebook | 3500 | 5 | 1 |
INNER JOIN retorna apenas registros com correspondência entre tabelas.
SELECT products.name, categories.name
FROM products
INNER JOIN categories
ON categories.id = products.category_id;| name | name |
|---|---|
| Notebook | Eletrônicos |
| Mouse | Eletrônicos |
| Teclado | Eletrônicos |
LEFT JOIN retorna todos da tabela esquerda.
SELECT products.name, categories.name
FROM products
LEFT JOIN categories
ON categories.id = products.category_id;INSERT adiciona novos registros.
INSERT INTO customers (name, city)
VALUES ('João', 'Mineiros');Novo registro inserido na tabela customers.
UPDATE altera registros existentes.
UPDATE products
SET price = 100
WHERE id = 2;Produto atualizado.
DELETE remove registros.
DELETE FROM products
WHERE id = 3;Registro removido.
- Evitar SELECT *
- Sempre usar WHERE em UPDATE
- Sempre usar WHERE em DELETE
- Utilizar aliases para melhorar leitura
- Preferir JOIN ao invés de subquery quando possível
- Padronizar nomes de colunas
- Utilizar ORDER BY quando necessário
Este repositório apresenta os principais comandos SQL utilizados em bancos de dados relacionais, incluindo consultas, filtros, ordenação, agregações, subqueries e manipulação de dados. Os exemplos demonstram o uso prático de cada comando, servindo como material de estudo e consulta rápida para desenvolvimento de aplicações que utilizam SQL.