Rullst AcademyRullst Academy/Lição
Bancos de dados e SQL I · Lição 04 / 12

Filtrar sem confundir ausências

Usar WHERE, parênteses e IS NULL; distinguir vazio, zero e ausência.

Trilhas de aprendizado16 min

Vamos descobrir juntos

  1. 1

    WHERE conserva condições verdadeiras. AND exige ambas; OR aceita pelo menos uma. AND tem precedência, mas parênteses explicitam a intenção: (category = ... OR category = ...) AND stock > 0.

  2. 2

    Use IS NULL, não = NULL. Comparações comuns com NULL produzem desconhecido, que não é verdadeiro em WHERE. No modelo returned IS NULL significa empréstimo aberto; esse significado foi uma escolha de modelagem.

  3. 3

    note do kit 3 é texto vazio; note dos kits 1 e 4 é NULL. Zero pode ser uma quantidade conhecida, vazio pode ser texto conhecido, NULL pode representar ausência. Não os substitua automaticamente uns pelos outros.

  4. 4

    Execute as duas consultas. Troque IS NULL por = NULL e explique o resultado. Depois procure note igual a uma string vazia e compare os ids.

Sua bancada de dados

Nosso modelo: kits.id ← loans.kit_id. Um material pode ter vários empréstimos; nomes podem repetir. Só usamos dados fictícios.

Preveja antes de abrir a referência. Ela mostra o resultado verificado do exemplo original, não executa seu texto. Para executar suas alterações, use o kit no computador.

-- Filtrar sem confundir ausências
SELECT id, kit_id FROM loans WHERE returned IS NULL ORDER BY id;
SELECT id FROM kits WHERE note IS NULL ORDER BY id;
Comparar com o resultado de referência
[
  {
    "columns": [
      "id",
      "kit_id"
    ],
    "rows": [
      [
        1,
        1
      ],
      [
        3,
        2
      ],
      [
        4,
        3
      ]
    ]
  },
  {
    "columns": [
      "id"
    ],
    "rows": [
      [
        1
      ],
      [
        4
      ]
    ]
  }
]

No terminal da pasta extraída, execute o comando. Use python3 no macOS/Ubuntu ou py se esse for seu launcher no Windows. Cada execução começa em memória; leia README.md para salvar arquivos e ensaiar recuperação.

python lab.py run lesson.sql
Meus arquivos e GitHub

O editor guarda seu rascunho .sql neste navegador. Baixe a edição e substitua lesson.sql no kit; no projeto final, availability.sql. O ZIP continua sendo o modelo original. Publicar no GitHub envia apenas o arquivo confirmado, sem executar SQL ou enviar o banco.

Links oficiais e próximo passo

✦
SUA MISSÃO

Usar WHERE, parênteses e IS NULL; distinguir vazio, zero e ausência.

Agora é a sua vez

Oficina de descobertas

Leia, preveja e confira

Usar WHERE, parênteses e IS NULL; distinguir vazio, zero e ausência.
Monte suas respostas e confira quando estiver pronto.
Uma pausa para entender

Como consultar empréstimos abertos?

Preciso de uma pista

Use IS NULL, não = NULL. Comparações comuns com NULL produzem desconhecido, que não é verdadeiro em WHERE. No modelo returned IS NULL significa empréstimo aberto; esse significado foi uma escolha de modelagem.

Carregando sua jornada…

Leve com você

Escreva um filtro para notas ausentes ou vazias. Preveja cada id e compare com a execução.

No seu ritmo

Meus arquivos e GitHub

Toda lição pode virar um registro seu: código, anotações ou um plano de prática. Guardar um arquivo no GitHub é opcional e não altera seu XP.

Manual do aluno

O editor e os downloads abrem quando esta lição estiver liberada para sua conta. Confira o acesso abaixo ou volte ao mapa da trilha.

Conferindo seu acesso à lição…

Rullstpetbot

A IA pode errar. Confira no material da lição.