Capítulo 09: Introdução ao SQL no Access: SELECT, FROM e WHERE

🎯 Objetivo da Aula

Nesta aula que inaugura o Módulo 3, você entrará no mundo da Linguagem SQL (Structured Query Language), a linguagem declarativa padrão universal utilizada por praticamente todos os bancos de dados do planeta (Access, SQL Server, Oracle, PostgreSQL, MySQL e BigQuery). No laboratório de informática, você aprenderá a alternar entre o Construtor Visual de Consultas e o Modo SQL (SQL View) do Microsoft Access. Você dominará a estrutura canônica fundamental SELECT ... FROM ... WHERE, aprenderá a projetar colunas com precisão e aplicará operadores relacionais e lógicos para extrair inteligência dos dados.

Ao final desta aula, você terá programado sua primeira consulta SQL corporativa, auditando carretas de alto valor em trânsito para a diretoria de segurança da FastLog S.A.


🏢 Cenário Prático (FastLog S.A.)

Empresa: FastLog Transportes & Logística Integrada S.A.
Problema: A seguradora parceira da FastLog (Porto Seguro Cargas) enviou um comunicado urgente: qualquer carreta em trânsito com carga de valor superior a R$ 50.000,00 precisa obrigatoriamente de escolta armada caso esteja trafegando na rota do interior paulista. O gerente de logística precisava dessa lista de caminhões em menos de 5 minutos para acionar as viaturas de escolta. O assistente demorou 40 minutos tentando filtrar planilhas manualmente no Excel, e uma carreta desprotegida sofreu uma tentativa de assalto em Sumaré (SP).
Sua Missão: Como especialista em dados corporativos, você abrirá o editor SQL do Access e escreverá uma consulta em código puro que extrai em 0,01 segundo todas as ordens de frete ativas com valor superior a R$ 50.000,00, emitindo o alerta preventivo para a equipe de gerenciamento de risco.


🧠 Fundamentos: A Teoria Traduzida

1. O que é a Linguagem SQL?

A linguagem SQL é declarativa: em vez de você programar “como” o computador deve buscar os dados (como em Python ou VBA com laços e variáveis), você simplesmente declara o que você deseja receber. O motor do SGBD encarrega-se de escolher o caminho mais rápido através dos índices.

flowchart TD
    SQL["💻 Código SQL ANSI<br/>SELECT ID_OrdemFrete, Valor_Frete<br/>FROM tbl_OrdensFrete<br/>WHERE Valor_Frete > 50000;"]
    
    SQL --> ENGINE["⚙️ Motor de Banco de Dados (Access / Jet Engine)<br/>Otimizador de Consultas & Árvore B-Tree"]
    ENGINE --> TABELA[("💾 Tabelas Físicas no Disco")]
    TABELA --> RESULTADO["📊 Tabela Virtual de Resultados (Dataset)<br/>Apenas os registros que atendem aos critérios"]

    style SQL fill:#1a365d,stroke:#fff,stroke-width:2px,color:#fff
    style ENGINE fill:#234e52,stroke:#fff,stroke-width:2px,color:#fff
    style TABELA fill:#744210,stroke:#fff,stroke-width:2px,color:#fff
    style RESULTADO fill:#27ae60,stroke:#fff,stroke-width:2px,color:#fff

2. A Estrutura Canônica: SELECT ... FROM ... WHERE

Toda consulta básica de leitura em SQL é estruturada em três blocos obrigatórios:

1
2
3
SELECT Coluna1, Coluna2, Coluna3
FROM NomeDaTabela
WHERE CondicaoBooleana;
  • SELECT (Projeção): Define quais colunas você quer ver no relatório final.
    • Boa Prática: Especifique os nomes das colunas. Evite usar SELECT * em sistemas profissionais, pois trazer colunas desnecessárias consome banda de rede e memória RAM.
  • FROM (Origem): Especifica a tabela (ou tabelas) onde os dados estão fisicamente gravados.
  • WHERE (Seleção/Filtro): Especifica a regra lógica que cada linha deve cumprir para ser exibida.

3. Operadores Relacionais e Lógicos no SQL

OperadorSignificadoExemplo Prático
=Igual aWHERE Status_Ordem = 'Em Trânsito'
<>Diferente deWHERE Status_Ordem <> 'Cancelado'
>Maior queWHERE Valor_Frete > 50000
<Menor queWHERE Peso_Liquido_Kg < 5000
>= / <=Maior/Igual ou Menor/IgualWHERE Data_Despacho >= #2026-10-01#
ANDE lógico (ambas devem ser verdadeiras)WHERE Valor_Frete > 50000 AND Status_Ordem = 'Em Trânsito'
OROU lógico (ao menos uma verdadeira)WHERE UF = 'SP' OR UF = 'PR'
NOTNegação lógicaWHERE NOT (Status_Ordem = 'Entregue')

⚠️ Formatação Rigorosa de Dados no SQL do Access:

  1. Valores de Texto: Devem estar obrigatoriamente entre aspas simples (ex: 'Campinas').
  2. Valores de Data: No SQL do Access, devem estar entre cerquilhas (#) (ex: #2026-10-01# ou #10/01/2026#).
  3. Valores Numéricos e Moeda: Devem ser digitados puros, usando ponto como separador decimal (ex: 50000.50).

📖 Exemplo Guiado: Passo a Passo no Laboratório

Abra o arquivo FastLog_Database.accdb. Vamos acessar o editor de código SQL.

Passo 1: Abrindo o Modo SQL no Access

  1. Na faixa de opções superior, clique na guia Criar.
  2. No grupo Consultas, clique no botão Design da Consulta (Query Design).
  3. O Access abrirá o Construtor Visual (QBE) e a janela lateral Adicionar Tabelas.
  4. O Segredo: Feche a janela lateral Adicionar Tabelas.
  5. No canto superior esquerdo da faixa de opções, clique no botão Modo SQL (ou clique com o botão direito na aba da consulta e escolha Modo SQL).
  6. Uma folha em branco com o texto padrão SELECT; se abrirá. É aqui que você programará seu código SQL!

🛠️ Prática Obrigatória 1: Criando a Consulta de Cargas Valiosas em SQL

Você escreverá a consulta solicitada pela seguradora para monitorar transportes acima de R$ 50.000,00.

Passo a Passo no Computador:

  1. No editor de código SQL, apague qualquer texto existente e digite rigorosamente o script abaixo:
    1
    2
    3
    
    SELECT ID_OrdemFrete, Data_Despacho, Placa_Veiculo, Valor_Frete, Status_Ordem
    FROM tbl_OrdensFrete
    WHERE Valor_Frete > 50000;
  2. Executando a Consulta:
    • Na faixa de opções superior (guia Design da Consulta), clique no botão com a exclamação vermelha: ! Executar (Run).
  3. Análise do Resultado:
    • O Access exibe uma grade de dados contendo apenas as ordens de frete cujo valor supera R$ 50.000,00!
  4. Voltando ao Código SQL:
    • Clique com o botão direito sobre a aba da consulta e selecione Modo SQL para ver seu código novamente.
  5. Pressione Ctrl + B para salvar a consulta.
  6. Nomeie a consulta como: qry_CargasValiosas e clique em OK.

✅ Resultado Esperado (Prática 1):

A consulta qry_CargasValiosas aparece listada no Painel de Navegação lateral sob o grupo “Consultas”, pronta para ser executada a qualquer momento com um duplo clique.


🛠️ Prática Obrigatória 2: Consulta Multi-Critérios com Operador Lógico AND

Agora você refinará o filtro para atender exatamente à regra da seguradora: o valor deve ser maior que R$ 50.000,00 E a carga deve estar com status 'Em Trânsito'.

Passo a Passo no Computador:

  1. Abra qry_CargasValiosas no Modo SQL.
  2. Modifique o comando adicionando a condição composta:
    1
    2
    3
    
    SELECT ID_OrdemFrete, Data_Despacho, Placa_Veiculo, Valor_Frete, Status_Ordem
    FROM tbl_OrdensFrete
    WHERE Valor_Frete > 50000 AND Status_Ordem = 'Em Trânsito';
  3. Clique no botão ! Executar.
  4. Observe que fretes que já foram entregues ou que ainda estão apenas agendados no pátio são automaticamente excluídos da lista, exibindo apenas as carretas que estão efetivamente correndo risco na rodovia neste momento!
  5. Salve a consulta atualizada.

✅ Resultado Esperado (Prática 2):

A consulta retorna com precisão cirúrgica apenas as carretas ativas na malha rodoviária com alto valor agregado, reduzindo o tempo de acionamento da escolta armada para menos de 1 segundo.


📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o banco de dados e feche o Access.
  2. Nomeie o arquivo: FastLog_BD_Cap09_SeuNome_SeuSobrenome.accdb.
  3. Acesse o Microsoft Teams na sua turma técnica.
  4. Abra a tarefa: “Banco de Dados - Cap 09: Sintaxe SQL e Cláusula WHERE”.
  5. Anexe o seu arquivo .accdb e confirme o envio clicando em Entregar (Turn In).

💡 Checkpoint de Gestão & TI

Por que aprender SQL é um dos maiores diferenciais competitivos para quem atua em Administração e Logística? Porque o SQL é a língua franca de todos os sistemas de dados do mundo corporativo. Quem depende de relatórios prontos feitos por outros fica refém da fila de chamados do departamento de TI. Quem sabe escrever um SELECT ... WHERE extrai respostas instantâneas direto da fonte, antecipando riscos e liderando decisões estratégicas.


🔥 Desafio de Fixação: Auditoria de Frota Pesada Disponível

A diretoria de logística precisa alocar com urgência carretas pesadas para um novo contrato de transporte de minério.

Escreva uma consulta SQL no Access que atenda aos seguintes requisitos:

  1. Selecione os campos Placa, Modelo_Cavalo, Qtd_Eixos e Capacidade_Kg da tabela tbl_Veiculos.
  2. Filtre apenas caminhões que possuam 6 ou mais eixos (Qtd_Eixos >= 6) E cuja capacidade de carga seja maior ou igual a 30.000 kg (Capacidade_Kg >= 30000).
  3. Salve a consulta com o nome: qry_FrotaPesadaDisponivel.

🔑 Revelar Gabarito Oficial e Material de Apoio da Aula (Clique para expandir)
💡 Incentivo Pedagógico: Tente resolver as práticas e o desafio de fixação por conta própria antes de abrir o gabarito. Seus erros e tentativas durante o laboratório são a chave para a consolidação real do aprendizado!

Código SQL Oficial do Desafio de Fixação:

1
2
3
SELECT Placa, Modelo_Cavalo, Qtd_Eixos, Capacidade_Kg
FROM tbl_Veiculos
WHERE Qtd_Eixos >= 6 AND Capacidade_Kg >= 30000;

📥 Download dos Scripts desta Aula:
Baixe o arquivo de script Capitulo_09.sql ou o pacote compactado (.zip) com os comandos SQL e esquemas da aula.


📝 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.

  1. O que representa a sigla SQL e qual é o órgão internacional responsável pela sua padronização na indústria?
  2. Explique por que a linguagem SQL é classificada como uma linguagem declarativa.
  3. Quais são as três cláusulas canônicas que compõem a estrutura básica de uma consulta de seleção em SQL?
  4. Qual é o papel da cláusula SELECT e por que devemos evitar o uso indiscriminado do asterisco (SELECT *)?
  5. Qual é a finalidade da cláusula FROM em uma instrução SQL?
  6. Como funciona a cláusula WHERE na filtragem de registros de uma tabela?
  7. Qual é a regra de sintaxe do SQL do Access para valores do tipo Texto, do tipo Data e do tipo Numérico?
  8. Diferencie o comportamento lógico do operador AND em relação ao operador OR na cláusula WHERE.
  9. Como alternamos entre o Modo Design visual e o Modo SQL dentro do Microsoft Access?
  10. No Desafio de Fixação, como os operadores relacionais >= e o operador lógico AND permitiram selecionar apenas a frota pesada adequada ao transporte de minério?