DEV Community

Cover image for SQL Query basicos.
Henrique Vital
Henrique Vital

Posted on

SQL Query basicos.

Aqui está a lista de 12 exemplos SQL, com explicações mais detalhadas diretamente no código como comentários.


1. Selecionar dados básicos

-- Seleciona todas as colunas e registros da tabela
SELECT * 
FROM tabela;

-- Seleciona apenas as colunas "coluna1" e "coluna2" de todos os registros
SELECT coluna1, coluna2 
FROM tabela;
Enter fullscreen mode Exit fullscreen mode

Explicação:

  • SELECT * traz todas as colunas, mas pode ser ineficiente em tabelas grandes.
  • Especificar colunas é uma boa prática para reduzir o tamanho da consulta e torná-la mais legível.

2. Filtrar registros com WHERE

-- Filtra registros onde a "coluna" tem o valor exato 'valor'
SELECT * 
FROM tabela
WHERE coluna = 'valor';

-- Usa operadores lógicos para combinar condições
SELECT * 
FROM tabela
WHERE coluna1 > 10 AND coluna2 = 'Ativo';

-- Verifica se o valor está em uma lista específica
SELECT * 
FROM tabela
WHERE coluna IN ('valor1', 'valor2', 'valor3');

-- Filtra registros dentro de um intervalo de valores
SELECT * 
FROM tabela
WHERE coluna BETWEEN 10 AND 20;

-- Busca padrões usando LIKE
SELECT * 
FROM tabela
WHERE coluna LIKE '%palavra%'; -- "%palavra%" significa que pode ter algo antes ou depois de "palavra"
Enter fullscreen mode Exit fullscreen mode

Explicação:

  • WHERE restringe os resultados da consulta.
  • LIKE é útil para buscas parciais, como encontrar palavras em um texto.

3. Ordenar resultados com ORDER BY

-- Ordena os registros pela "coluna1" de forma ascendente (padrão)
SELECT * 
FROM tabela
ORDER BY coluna1;

-- Ordena pela "coluna1" de forma descendente
SELECT * 
FROM tabela
ORDER BY coluna1 DESC;
Enter fullscreen mode Exit fullscreen mode

Explicação:

  • ORDER BY organiza os resultados, útil para relatórios ou quando a ordem importa.
  • Combine com LIMIT para exibir os primeiros registros organizados.

4. Limitar resultados com LIMIT

-- Retorna no máximo 10 registros
SELECT * 
FROM tabela
LIMIT 10;
Enter fullscreen mode Exit fullscreen mode

Explicação:

  • Limitar os resultados é especialmente útil para visualizar apenas uma parte dos dados durante a análise.

5. Usar funções de agregação

-- Conta o número total de registros na tabela
SELECT COUNT(*) AS total
FROM tabela;

-- Calcula soma, média, menor e maior valor de uma coluna
SELECT SUM(coluna) AS soma, 
       AVG(coluna) AS media, 
       MIN(coluna) AS minimo, 
       MAX(coluna) AS maximo
FROM tabela;

-- Agrupa por uma coluna e conta os registros em cada grupo
SELECT coluna, COUNT(*) AS total
FROM tabela
GROUP BY coluna;
Enter fullscreen mode Exit fullscreen mode

Explicação:

  • Funções como COUNT, SUM, AVG, MIN e MAX resumem os dados.
  • Use GROUP BY para aplicar funções de agregação em grupos específicos.

6. Trabalhar com JOINs

-- INNER JOIN: retorna registros que têm correspondência em ambas as tabelas
SELECT a.coluna1, b.coluna2
FROM tabela1 a
INNER JOIN tabela2 b ON a.chave = b.chave;

-- LEFT JOIN: retorna tudo da tabela1 e as correspondências da tabela2 (se existirem)
SELECT a.coluna1, b.coluna2
FROM tabela1 a
LEFT JOIN tabela2 b ON a.chave = b.chave;

-- RIGHT JOIN: retorna tudo da tabela2 e as correspondências da tabela1 (se existirem)
SELECT a.coluna1, b.coluna2
FROM tabela1 a
RIGHT JOIN tabela2 b ON a.chave = b.chave;

-- FULL JOIN: retorna tudo de ambas as tabelas, com ou sem correspondências
SELECT a.coluna1, b.coluna2
FROM tabela1 a
FULL JOIN tabela2 b ON a.chave = b.chave;
Enter fullscreen mode Exit fullscreen mode

Explicação:

  • JOINs conectam dados de diferentes tabelas.
  • Escolha o tipo de JOIN com base em quais dados você precisa incluir.

7. Trabalhar com subconsultas

-- Subconsulta no WHERE para buscar valores específicos de outra tabela
SELECT * 
FROM tabela
WHERE coluna IN (
    SELECT coluna 
    FROM outra_tabela 
    WHERE condicao
);

-- Subconsulta em FROM para criar uma tabela temporária
SELECT sub.coluna, COUNT(*)
FROM (
    SELECT coluna 
    FROM tabela 
    WHERE condicao
) AS sub
GROUP BY sub.coluna;
Enter fullscreen mode Exit fullscreen mode

Explicação:

  • Subconsultas tornam as consultas mais flexíveis e poderosas, mas podem ser mais lentas.

8. Criar colunas calculadas

-- Adiciona uma coluna calculada multiplicando "coluna2" por 2
SELECT coluna, coluna2 * 2 AS calculo
FROM tabela;

-- Cria categorias com base em condições usando CASE
SELECT coluna,
       CASE 
           WHEN coluna2 > 10 THEN 'Alto'
           ELSE 'Baixo'
       END AS categoria
FROM tabela;
Enter fullscreen mode Exit fullscreen mode

Explicação:

  • Colunas calculadas permitem manipular dados diretamente na consulta.

9. Excluir duplicatas com DISTINCT

-- Seleciona apenas valores únicos de uma coluna
SELECT DISTINCT coluna
FROM tabela;
Enter fullscreen mode Exit fullscreen mode

Explicação:

  • DISTINCT é usado para eliminar duplicatas e exibir apenas valores únicos.

10. Atualizar e excluir dados

-- Atualiza o valor de uma coluna para registros que atendem a uma condição
UPDATE tabela
SET coluna = 'novo_valor'
WHERE coluna2 = 'condicao';

-- Remove registros que atendem a uma condição
DELETE FROM tabela
WHERE coluna = 'condicao';
Enter fullscreen mode Exit fullscreen mode

Explicação:

  • Cuidado: Sempre use WHERE para evitar alterar ou excluir toda a tabela.

11. Criar e manipular tabelas

-- Cria uma nova tabela com colunas e tipos de dados definidos
CREATE TABLE nova_tabela (
    coluna1 INT,
    coluna2 VARCHAR(50),
    coluna3 DATE
);

-- Insere um registro na tabela
INSERT INTO tabela (coluna1, coluna2)
VALUES (1, 'valor');

-- Adiciona uma nova coluna a uma tabela existente
ALTER TABLE tabela
ADD nova_coluna INT;

-- Remove a tabela inteira
DROP TABLE tabela;
Enter fullscreen mode Exit fullscreen mode

Explicação:

  • Manipular tabelas é fundamental para criar e organizar seus bancos de dados.

12. Consultas avançadas

-- Funções de janela para calcular somas em grupos
SELECT coluna,
       SUM(coluna2) OVER (PARTITION BY coluna3) AS soma
FROM tabela;

-- Filtra registros após o agrupamento usando HAVING
SELECT coluna, COUNT(*) AS total
FROM tabela
GROUP BY coluna
HAVING COUNT(*) > 5;

-- Usar CTE (Common Table Expression) para simplificar consultas
WITH cte AS (
    SELECT coluna, COUNT(*) AS total
    FROM tabela
    GROUP BY coluna
)
SELECT * 
FROM cte
WHERE total > 10;
Enter fullscreen mode Exit fullscreen mode

Explicação:

  • Funções de janela permitem cálculos avançados sem perder o detalhe dos dados.
  • HAVING é usado para filtrar dados agregados.
  • CTEs melhoram a legibilidade e organizam consultas complexas.

Esses exemplos são uma base sólida para aprender SQL e aplicar em cenários reais.

Top comments (0)