SQL Básico: Guia Interativo dos Comandos Essenciais
Aprenda os comandos SQL essenciais do dia a dia com exemplos interativos. O ponto de partida perfeito para dominar a linguagem dos dados.
Dominar SQL (Structured Query Language) é uma habilidade essencial para qualquer profissional de tecnologia que precise extrair, analisar ou validar dados. Seja você um QA garantindo a integridade de um banco de dados após um teste, ou um BA buscando insights para o negócio, saber "conversar" com os dados é um superpoder.
Este artigo é um guia prático e interativo. Para cada comando, você encontrará uma demonstração visual que simula a execução em um banco de dados real.
Navegue pelos Comandos:
1. SELECT: O Comando para "Ver" os Dados
Imagine que o banco de dados é um armário gigante cheio de pastas (tabelas). O comando SELECT é como dizer: "Ei, me mostre o que tem dentro desta pasta!". Ele serve para buscar e ler informações, sem alterar nada. A tabela abaixo, por exemplo, se chama clientes e possui as colunas id, nome e estado.
SELECT * FROM clientes;| id | nome | estado |
|---|---|---|
| 1 | Ana | SP |
| 2 | Bruno | RJ |
| 3 | Carlos | SP |
2. WHERE: O Filtro Inteligente
Depois de selecionar uma pasta, você não quer ler todos os papéis, apenas os que interessam. A cláusula WHERE é o seu filtro. Com ela, você diz: "Me mostre apenas os clientes que moram em 'SP'".
SELECT * FROM clientes WHERE estado = 'SP';| id | nome | estado |
|---|---|---|
| 1 | Ana | SP |
| 2 | Bruno | RJ |
| 3 | Carlos | SP |
3. ORDER BY: Organizando a Bagunça
Os dados vêm do banco de dados sem uma ordem específica. O ORDER BY serve para organizar a sua lista. Você pode ordenar por nome (em ordem alfabética, ASC) ou por preço (do mais caro para o mais barato, DESC).
SELECT * FROM produtos ORDER BY preco DESC;| produto | preco |
|---|---|
| Caneta | 19.99 |
| Teclado | 99.90 |
| Mouse | 49.50 |
4. INSERT INTO: O "C" do CRUD (Create)
O comando INSERT INTO é a operação de Criação (Create) no mundo SQL. Ele é usado para adicionar um novo papel (registro) a uma pasta (tabela). Você precisa dizer em qual tabela quer inserir, quais colunas vai preencher e, finalmente, os valores que quer adicionar.
INSERT INTO fornecedores (nome, cidade) VALUES ('TechCorp', 'São Paulo');| id | nome | cidade |
|---|---|---|
| 1 | Papelaria ABC | Curitiba |
5. UPDATE: Corrigindo Informações
Imagine que você escreveu algo errado em um papel e precisa corrigir. O UPDATE é a sua borracha e caneta. Ele serve para modificar um dado que já existe. É crucial usar a cláusula WHERE para dizer exatamente qual registro você quer alterar!
UPDATE clientes SET email = 'novo.email@exemplo.com' WHERE id = 5;| id | nome | |
|---|---|---|
| 4 | Daniela | daniela@email.com |
| 5 | Eduardo | edu@email.com |
6. DELETE: Jogando Dados Fora
Às vezes, um papel no seu armário não é mais necessário. O DELETE é a sua lixeira. Ele serve para remover um registro (uma linha inteira) de uma tabela. Assim como no UPDATE, o uso do WHERE é fundamental para não apagar a tabela inteira por acidente!
DELETE FROM clientes WHERE id = 10;| id | nome | status |
|---|---|---|
| 9 | Fabiana | Ativo |
| 10 | Gabriel | Inativo |
| 11 | Heloisa | Ativo |
7. JOIN: O Super-Grampo de Tabelas
Imagine que você tem duas pastas: uma com os dados dos clientes e outra com os pedidos. Como saber qual pedido é de qual cliente? O JOIN é o seu super-grampo! Ele junta informações de duas ou mais tabelas que têm uma coluna em comum (como o id_cliente).
SELECT clientes.nome, pedidos.data_pedido FROM clientes JOIN pedidos ON clientes.id = pedidos.id_cliente;Tabelas Originais:
| clientes | |
|---|---|
| id | nome |
| 1 | Ana |
| 2 | Bruno |
| pedidos | ||
|---|---|---|
| id_pedido | id_cliente | data_pedido |
| 101 | 2 | 2024-01-05 |
| 102 | 1 | 2024-01-10 |
8. GROUP BY: O Organizador de Grupos
O GROUP BY é como um organizador de festa que agrupa pessoas por características em comum. Por exemplo: "Todos que são de 'SP', fiquem aqui. Todos que são do 'RJ', fiquem ali". Ele é quase sempre usado com funções de agregação (como COUNT para contar, SUM para somar ou AVG para calcular a média) para criar relatórios e resumos dos dados.
SELECT estado, COUNT(*) FROM clientes GROUP BY estado;Tabela Original:
| id | nome | estado |
|---|---|---|
| 1 | Ana | SP |
| 2 | Bruno | RJ |
| 3 | Carlos | SP |
| 4 | Daniela | MG |
| 5 | Eduardo | RJ |
9. LEFT JOIN: Trazendo Todos, Mesmo os Solitários
O LEFT JOIN é uma variação do JOIN. Enquanto o JOIN normal só mostra clientes que fizeram pedidos, o LEFT JOIN mostra todos os clientes da tabela da esquerda, e preenche com NULL (vazio) se não houver um pedido correspondente. É perfeito para encontrar quem ainda não comprou nada!
SELECT clientes.nome, pedidos.id_pedido FROM clientes LEFT JOIN pedidos ON clientes.id = pedidos.id_cliente;Tabelas Originais:
| clientes | |
|---|---|
| id | nome |
| 1 | Ana |
| 2 | Bruno |
| 3 | Carlos |
| pedidos | |
|---|---|
| id_pedido | id_cliente |
| 101 | 2 |
| 102 | 1 |
10. HAVING: O Filtro para Grupos
Se o WHERE filtra linhas individuais, o HAVING filtra os resultados de um grupo. Ele é sempre usado depois do GROUP BY. A pergunta muda de "quais clientes são de SP?" (WHERE) para "quais estados têm mais de 1 cliente?" (HAVING).
SELECT estado, COUNT(*) FROM clientes GROUP BY estado HAVING COUNT(*) > 1;| estado | COUNT(*) |
|---|---|
| SP | 2 |
| RJ | 2 |
| MG | 1 |