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.

Postgres on Neon - Get the Free Plan

No credit card required. The database you love, on a serverless platform designed to help you build faster.

Get Postgres on Neon

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay