Fundamentos de SQL: Extração de Dados com a Instrução SELECT

Conceitos Básicos da Instrução SELECT

A instrução SELECT é o comando fundamental na linguagem SQL utilizado para recuperar informações armazenadas em uma ou mais tabelas de um banco de dados relacional.

Palavras-chave (Keywords): O SQL possui um conjunto de palavras reservadas que compõem a sua sintaxe oficial. Essas palavras-chave não devem ser utilizadas como identificadores para nomes de tabelas ou colunas, pois isso pode causar conflitos de inetrpretação no SGBD.

Regras gerais de sintaxe e formatação:

  • Terminação: Embora nem todos os Sistemas de Gerenciamento de Banco de Dados (SGBD) exijam, é uma excelente prática encerrar instruções SQL com um ponto e vírgula (;).
  • Case Sensitivity: Os comandos SQL não diferenciam letras maiúsculas de minúsculas. No entanto, a convenção da indústria dita que as palavras-chave sejam escritas em maiúsculas e os nomes de objetos (tabelas e colunas) em minúsculas, visando facilitar a leitura e a depuração do código.
  • Espaços em branco: O interpretador SQL ignora quebras de linha e espaços extras. Isso permite que as consultas sejam formatadas em múltiplas linhas para melhorar a legibilidade.

Recuperação de uma Única Coluna

Para extrair dados de apenas um campo específico, basta informar o nome da coluna logo após o comando SELECT.

SELECT titulo
FROM catalogo_livros;

Extração de Múltiplas Colunas

Quando for necessário consultar mais de um campo simultaneamente, separe os nomes das colunas por vírgulas. Certifique-se de não adicionar uma vírgula após o último item da lista, para evitar erros de sintaxe.

SELECT id_livro, titulo, autor, preco 
FROM catalogo_livros;

Seleção de Todas as Colunas

O caractere curinga asterisco (*) instrui o banco de dados a retornar todas as colunas existentes na tabela especificada. O uso indiscriminado dessa abordagem em ambientes de produção deve ser evitado, pois trafegar colunas não utilizadas pela aplicação consome recursos de rede e reduz a performance geral.

SELECT * 
FROM catalogo_livros;

Filtragem de Registros Duplicados

Por padrão, uma consulta retorna todas as linhas correspondentes, incluindo registros duplicados. Para garantir que o conjunto de resultados contenha apenas valores exclusivos, utilize a palavra-chave DISTINCT imediatamente antes das colunas desejadas.

O escopo do DISTINCT abrange todas as colunas listadas na instrução, retornando apenas as combinações únicas de registros.

-- Consulta padrão que pode retornar editoras repetidas
SELECT editora 
FROM catalogo_livros;

-- Consulta filtrando apenas editoras únicas
SELECT DISTINCT editora 
FROM catalogo_livros;

-- Combinação exclusiva de editora e faixa de preço
SELECT DISTINCT editora, preco 
FROM catalogo_livros;

Limitação de Resultados

Dialetos de SQL como MySQL, MariaDB e PostgreSQL utilizam a cláusula LIMIT para restringir o número total de linhas retornadas por uma consulta. Quando combinado com a cláusula OFFSET, torna-se possível criar mecanismos eficientes de paginação de dados.

É importante ressaltar que a contagem do índice das linhas inicia em 0, não em 1.

-- Retorna os 5 primeiros livros da tabela
SELECT titulo 
FROM catalogo_livros 
LIMIT 5;

-- Ignora os 5 primeiros registros e retorna a próxima sequência
SELECT titulo 
FROM catalogo_livros 
LIMIT 5 OFFSET 5;

Nota: Em algumas implementações do MySQL, a sintaxe abreviada LIMIT 5, 5 é aceita como um equivalente direto ao uso do OFFSET, onde o primeiro parâmetro indica o deslocamento e o segundo define o limite de registros.

Adição de Comentários ao Código

Documentar o código SQL é essencial para a manutenção de scripts complexos e trabalho em equipe. Existem diferentes formas de inserir anotações que serão completamente ignoradas pelo motor do banco de dados durante a execução:

  • Comentários de linha única: Utilize dois traços consecutivos (--) ou o caractere cerquilha (#, suportado em alguns dialetos específicos) no início do comentário. Todo o texto posicionado à direita será desconsiderado.
  • Comentários de bloco: Delimite o texto entre /* e */. Esta sintaxe é universalmente aceita e permite quebras de linha e parágrafos inteiros dentro do bloco de anotação.
-- Esta consulta busca livros de ficção científica
SELECT titulo 
FROM catalogo_livros
WHERE categoria = 'Ficção Científica'; /* Filtro de gênero literário */

Tags: SQL select bancos-de-dados-relacionais MySQL postgresql

Publicado em 6-25 04:59