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)