Foto cortesia de Mitchel Lensink on Unsplash
SQL (Structured Query Language) é a base para gerenciar e consultar dados em bancos de dados relacionais. Entre seus muitos comandos, a comando SELECT é a mais essencial e frequentemente utilizada. Seja você um analista de dados, desenvolvedor, administrador de banco de dados ou alguém que está começando sua jornada com bancos de dados, dominar o SELECT é fundamental para trabalhar eficazmente com dados.
Neste artigo, vamos explorar tudo o que você precisa saber sobre a comando SELECT — desde sua sintaxe e usos principais até exemplos práticos que você pode aplicar em cenários do mundo real.
A comando SELECT é usada no SQL para recuperar dados de uma tabela do banco de dados. Ela permite consultar uma ou mais tabelas e extrair dados específicos conforme suas necessidades.
Seja para buscar tabelas inteiras ou apenas certas colunas, filtrar dados com condições ou agrupar e ordenar resultados, a comando SELECT é sua porta de entrada para trabalhar com dados armazenados em bancos de dados relacionais.
JOIN, GROUP BY ou WHERE.A sintaxe básica de uma comando SELECT é:
SELECT column1, column2, ...
FROM table_name;
Vamos analisar isso:
SELECT informa ao SQL quais dados você deseja recuperar.column1, column2, ... são os nomes das colunas que você deseja retornar.FROM table_name especifica a tabela onde estão os dados.SELECT first_name, last_name
FROM employees;
Isso recupera as colunas first_name e last_name da tabela employees.
O asterisco * é um caractere curinga no SQL. Quando usado com SELECT, ele recupera todas as colunas da tabela especificada.
SELECT * FROM table_name;
SELECT * FROM customers;
Esta comando retorna todas as colunas de todas as linhas na tabela customers.
Nota de Boa Prática: Embora
SELECT *seja conveniente para consultas rápidas ou exploração de dados, não é recomendado para consultas em produção. Selecionar todas as colunas pode causar problemas de desempenho e retornar dados desnecessários. É melhor especificar apenas as colunas necessárias.
Em vez de usar *, você pode (e deve) especificar as colunas exatas que deseja recuperar.
SELECT column1, column2
FROM table_name;
SELECT customer_id, customer_name
FROM customers;
Isso retorna apenas as colunas customer_id e customer_name da tabela customers.
Isso melhora o desempenho e torna suas consultas mais claras e fáceis de manter.
Às vezes, os nomes das colunas são longos, pouco claros ou precisam ser mais amigáveis no resultado da consulta. É aí que entram os apelidos. Você pode renomear uma coluna na saída usando a palavra-chave AS.
SELECT column_name AS alias_name
FROM table_name;
SELECT first_name AS "First Name", last_name AS "Last Name"
FROM employees;
Isso retornará as colunas com os cabeçalhos First Name e Last Name em vez de first_name e last_name.
Você também pode usar apelidos sem o AS:
SELECT first_name "First Name", last_name "Last Name"
FROM employees;
Apelidos são úteis para melhorar a legibilidade, especialmente ao exibir resultados de consultas em relatórios ou visualizações.
A função COUNT(*) é uma função agregada que retorna o número de linhas em uma tabela, incluindo aquelas com valores NULL.
SELECT COUNT(*) FROM table_name;
SELECT COUNT(*) FROM orders;
Isso retorna o número total de registros na tabela orders.
Você também pode contar linhas com condições específicas usando WHERE:
SELECT COUNT(*) FROM orders
WHERE order_status = 'Shipped';
COUNT(*)é amplamente usado em painéis, resumos e métricas de desempenho.
No SQL, a palavra-chave DISTINCT garante que os resultados retornados contenham apenas valores únicos, removendo quaisquer duplicatas.
SELECT DISTINCT column1
FROM table_name;
SELECT DISTINCT country
FROM customers;
Isso retornará uma lista de países únicos da tabela customers, com cada país aparecendo apenas uma vez.
Você também pode usar DISTINCT com múltiplas colunas:
SELECT DISTINCT city, state
FROM customers;
Neste caso, o SQL considera cada combinação única de city e state.
Use
DISTINCTcom cautela em conjuntos de dados grandes, pois pode impactar o desempenho.
SELECT first_name, department
FROM employees
WHERE department = 'Sales';
SELECT customer_name, country
FROM customers
ORDER BY country ASC;
No MySQL e PostgreSQL:
SELECT * FROM products
LIMIT 10;
No SQL Server:
SELECT TOP 10 * FROM products;
| Erro | Por que é um problema? | Melhor abordagem |
|---|---|---|
Usar SELECT * |
Retorna dados desnecessários | Selecione colunas específicas |
Sem WHERE |
Pode sobrecarregar os resultados | Filtre os dados relevantes |
| Sem aliases | Reduz a legibilidade | Use AS para nomear colunas |
| Uso | Exemplo em SQL |
|---|---|
| Selecionar todas as colunas | SELECT * FROM users; |
| Selecionar colunas específicas | SELECT name, email FROM users; |
| Usar aliases | SELECT name AS "Full Name" FROM users; |
| Contar total de linhas | SELECT COUNT(*) FROM orders; |
| Selecionar valores únicos | SELECT DISTINCT city FROM customers; |
Vamos supor que você trabalha em uma empresa de e-commerce. Você quer preparar um relatório rápido que mostre:
Consultas:
-- Total number of orders
SELECT COUNT(*) AS total_orders
FROM orders;
-- Unique list of customer countries
SELECT DISTINCT country
FROM customers;
-- Customer names with formatted output
SELECT first_name AS "First Name", last_name AS "Last Name", email AS "Email Address"
FROM customers;
A comando SELECT é o comando SQL mais vital e amplamente utilizado por um motivo — ela capacita os usuários a extrair e manipular dados de maneiras infinitas. Seja para puxar tabelas completas com SELECT *, isolar dados específicos ou tornar os resultados mais legíveis com aliases, entender como usar o SELECT de forma eficaz é o primeiro passo para se tornar proficiente em SQL.
À medida que você constrói consultas mais complexas, lembre-se de:
COUNT() e DISTINCT para resumir e esclarecerAo dominar a comando SELECT, você desbloqueia a capacidade de consultar e transformar dados de qualquer banco de dados relacional — fazendo seus dados trabalharem com mais inteligência, não com mais esforço.