Capítulo 10: Filtros Avançados, Operadores Especiais e Ordenação SQL
🎯 Objetivo da Aula
Nesta aula, você expandirá seu vocabulário na linguagem SQL, aprendendo a criar filtros analíticos sofisticados e relatórios perfeitamente ordenados. No laboratório de informática, você dominará os operadores corporativos mais utilizados no mercado: o operador de busca textual LIKE com caracteres coringa, o operador de pertinência a conjuntos IN, a filtragem por faixa de valores BETWEEN ... AND ... e a detecção de valores em branco com IS NULL. Você aprenderá também a ordenar resultados com ORDER BY e a projetar Colunas Calculadas com apelidos amigáveis (AS).
Ao final desta aula, você será capaz de construir consultas analíticas completas para a FastLog S.A., simulando tributos (ICMS), calculando taxas de seguro em tempo de execução e organizando rankings de clientes.
🏢 Cenário Prático (FastLog S.A.)
Empresa: FastLog Transportes & Logística Integrada S.A.
Problema: O diretor comercial precisava de um relatório urgente para fechar as metas trimestrais: ele queria listar todos os clientes das regiões Sul e Sudeste cujos fretes tenham sido despachados no mês de setembro com peso entre 10 e 30 toneladas, ordenados do maior faturamento para o menor. Além disso, a contabilidade exigia que a consulta exibisse o cálculo estimado do ICMS (12% sobre o frete) e da taxa de gerenciamento de risco (GRIS - 0,3%). Na tentativa de montar isso no Excel, o analista fez 6 etapas manuais de filtros, copiou fórmulas erradas e entregou os números com 3 dias de atraso na reunião de acionistas.
Sua Missão: Como analista de Business Intelligence (BI) e SQL, você construirá uma única consulta SQL declarativa que calcula os impostos, filtra as faixas de peso e ordena o faturamento em 0,03 segundo, pronta para exportação direta para a diretoria.
🧠 Fundamentos: A Teoria Traduzida
1. Operadores de Busca Textual e Conjuntos
flowchart TD
subgraph OPERADORES["Operadores Especiais em SQL"]
OP1["LIKE 'S*' ➔ Textos que iniciam com 'S' (São Paulo, Santos)"]
OP2["IN ('SP', 'PR', 'SC') ➔ Pertencimento a uma lista fechada"]
OP3["BETWEEN 10000 AND 30000 ➔ Faixa contínua (Peso de 10t a 30t)"]
OP4["IS NULL ➔ Detecta ausência de dados (Sem data de entrega)"]
end
style OPERADORES fill:#f8f9fa,stroke:#0056b3,stroke-width:2px
style OP1 fill:#d1ecf1,stroke:#0c5460,stroke-width:1px,color:#0c5460
style OP2 fill:#d4edda,stroke:#155724,stroke-width:1px,color:#155724
style OP3 fill:#fff3cd,stroke:#856404,stroke-width:1px,color:#856404
style OP4 fill:#f8d7da,stroke:#721c24,stroke-width:1px,color:#721c24- Operador
LIKE(Busca por Padrão):- No Access tradicional (interface gráfica), o caractere coringa para “qualquer quantidade de caracteres” é o asterisco
*(no padrão ANSI puro de servidores web é%). - Exemplo:
WHERE Razao_Social LIKE 'Trans*'localiza “Transportadora Rápida”, “Translog”, “Transcontinental”. - Exemplo:
WHERE Placa LIKE '???1*'localiza qualquer placa Mercosul cujo 4º caractere seja o número 1.
- No Access tradicional (interface gráfica), o caractere coringa para “qualquer quantidade de caracteres” é o asterisco
- Operador
IN(Substituindo múltiplosOR):- Em vez de digitar o cansativo
WHERE UF = 'SP' OR UF = 'RJ' OR UF = 'MG' OR UF = 'PR', você escreve de forma limpa e profissional:
- Em vez de digitar o cansativo
- Operador
BETWEEN ... AND ...(Intervalos Fechados):- Retorna valores inclusivos:
WHERE Data_Despacho BETWEEN #01/09/2026# AND #30/09/2026#.
- Retorna valores inclusivos:
2. A Cláusula de Ordenação: ORDER BY
Permite organizar as linhas retornadas pela consulta:
ASC(Padrão): Ordem Crescente (A $\to$ Z, 0 $\to$ 9, datas mais antigas para mais recentes).DESC: Ordem Decrescente (Z $\to$ A, 9 $\to$ 0, maiores valores para os menores).- Ordenação Multinível: Podemos ordenar por mais de uma coluna separadas por vírgula:(Organiza primeiro por Estado em ordem alfabética; dentro de cada Estado, lista do frete mais caro para o mais barato!).
3. Colunas Calculadas e Aliases (AS)
O SQL permite que você realize operações matemáticas diretamente na projeção do SELECT. Como a coluna resultante não existe fisicamente na tabela, usamos a palavra-chave AS para batizá-la com um apelido (Alias):
📖 Exemplo Guiado: Passo a Passo no Laboratório
Abra o arquivo FastLog_Database.accdb. Vamos criar uma nova consulta no Modo SQL.
Passo 1: Abrindo a Consulta em Modo SQL
- Acesse Criar ➔ Design da Consulta.
- Feche o painel lateral Adicionar Tabelas.
- Clique no botão Modo SQL no canto superior esquerdo.
- Apague o texto existente.
🛠️ Prática Obrigatória 1: Busca por Padrão de Nome com LIKE e ORDER BY
Você criará uma ferramenta de busca para o SAC da FastLog localizar clientes cujo nome comece com determinada letra ou contenha palavras-chave como “Logística” ou “Indústria”.
Passo a Passo no Computador:
- No editor SQL, digite o seguinte comando:
- Clique no botão com a exclamação vermelha
! Executar. - Observe que o Access organiza os clientes agrupados primeiro por Estado (
PR,RJ,SC,SP) e, dentro de cada Estado, em ordem alfabética estrita de Razão Social. - Volte ao Modo SQL e adicione um filtro com
LIKE: - Execute a consulta e veja que ela localiza instantaneamente o cliente independente se a palavra “Alvorada” está no início, meio ou fim do nome!
- Salve a consulta como:
qry_FiltroClientesRegional.
✅ Resultado Esperado (Prática 1):
A consulta demonstra o poder dos operadores IN e LIKE, permitindo buscas textuais flexíveis e ordenadas por múltiplos critérios.
🛠️ Prática Obrigatória 2: Consulta Analítica com Cálculos Tributários e Aliases (AS)
Agora você construirá o relatório tributário solicitado pela diretoria financeira da FastLog.
Passo a Passo no Computador:
- Acesse Criar ➔ Design da Consulta ➔ Modo SQL.
- Digite a consulta corporativa abaixo, contendo cálculos de impostos e ordenação por faturamento:
- Clique em
! Executar. - Análise dos Resultados na Tela:
- Observe os títulos das colunas: em vez dos nomes técnicos de banco (
ID_OrdemFrete), a grade exibe títulos executivos amigáveis como[Código do Frete]e[Receita Líquida (R$)]. - As colunas
ICMS Estimado,Taxa GRISeReceita Líquidaforam calculadas em tempo de execução para cada linha pelo processador sem que você precisasse criar novos campos físicos na tabela! - A lista está perfeitamente ordenada do frete mais lucrativo para o menor.
- Observe os títulos das colunas: em vez dos nomes técnicos de banco (
- Salve a consulta como:
qry_AnaliseTributariaFretes.
✅ Resultado Esperado (Prática 2):
A consulta gera um relatório executivo pronto para a diretoria, calculando impostos e receitas líquidas de forma dinâmica e instantânea.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o banco de dados e feche o Access.
- Nomeie o arquivo:
FastLog_BD_Cap10_SeuNome_SeuSobrenome.accdb. - Acesse o Microsoft Teams na sua turma técnica.
- Abra a tarefa: “Banco de Dados - Cap 10: Operadores Avançados e Ordenação SQL”.
- Anexe o seu arquivo
.accdbe conclua o envio clicando em Entregar (Turn In).
💡 Checkpoint de Gestão & TI
Por que o uso de Colunas Calculadas no SQL é considerado uma prática de engenharia de software de classe mundial? Porque evita o armazenamento de dados redundantes! Se você criasse colunas físicas na tabela para guardar o valor do ICMS ou da Receita Líquida, e amanhã a alíquota tributária mudasse de 12% para 14%, todos os dados do passado ficariam corrompidos. Ao calcular em tempo de consulta (SELECT), os números são sempre atualizados e matematicamente exatos.
🔥 Desafio de Fixação: Auditoria de Entregas Pendentes com IS NULL
Na gestão de transportes, uma ordem de frete que já foi despachada mas que ainda não possui Data_Entrega_Realizada registrada é considerada uma Carga em Rota ou Atrasada.
Escreva uma consulta SQL no Access que atenda aos seguintes requisitos:
- Selecione os campos
ID_OrdemFrete,Data_Despacho,Valor_FreteeStatus_Ordem. - Adicione uma coluna calculada:
(Valor_Frete * 0.05) AS [Multa_Atraso_Prevista]. - Filtre cargas cujo frete seja maior que R$ 10.000,00 E cuja data de entrega esteja vazia (
IS NULL), ou cujo status seja diferente de'Entregue'. - Ordene os resultados da data de despacho mais antiga para a mais recente (
ASC). - Salve com o nome:
qry_AuditoriaCargasPendentes.
📝 Atividade Extra: Questionário de Fixação (Caderno)
Instruções: Responda no caderno, de próprio punho, as 10 perguntas reflexivas abaixo com base no conteúdo deste capítulo. Ao concluir, apresente o caderno ao professor para conferência e visto.
- Qual é a função do operador
LIKEem uma instrução SQL e em que situações corporativas ele é utilizado? - No Microsoft Access nativo, qual é o caractere coringa utilizado para substituir qualquer número de caracteres em uma busca textual?
- Como o operador
INotimiza e simplifica a escrita de consultas que dependem de múltiplos testes com o operador lógicoOR? - Explique como funciona o operador
BETWEEN ... AND ...e mencione dois exemplos de dados logísticos ideais para ele. - Para que serve o operador
IS NULLe por que não devemos usar a comparação= ''(aspas vazias) para verificar ausência de dados em SGBDs? - Qual é a finalidade da cláusula
ORDER BYe qual é a diferença entre os modificadoresASCeDESC? - Como configuramos uma ordenação multinível com múltiplos critérios no comando
ORDER BY? - O que é um Alias (Apelido de Coluna) no SQL e qual palavra-chave utilizamos para defini-lo?
- Por que quando o apelido de uma coluna contém espaços ou caracteres especiais (como acentos e parênteses) devemos colocá-lo entre colchetes
[ ]? - No Desafio de Fixação, qual é a vantagem gerencial de ordenar as cargas pendentes com
ORDER BY Data_Despacho ASC(da mais antiga para a mais recente)?