Aulas do bloco

← Aulas

SQL e DadosTrilha · etapa 628 min

WHERE: comparação, AND, OR, IN e NOT IN

Vídeos desta etapa, na ordem do portal:

  1. Utilizando operadores de comparação · 10 min
  2. Combinando operadores lógicos AND/OR · 9 min
  3. Operador IN e variações · 8 min
Use o número do vídeo e o horário indicado como referência nos arquivos locais.

Você já importa CSV e conecta Google Sheets no Looker Studio e já usa SELECT com FROM, *, AS e ROUND para projetar colunas no banco. A planilha trava com volume e edição manual, e o banco resolve com tabela e busca otimizada. Esta aula destrava o filtro de linhas com WHERE, com =, >, <, <>, <=, além de AND, OR, parênteses, IN e NOT IN.

O que foi falado

  1. WHERE filtra linhas com SELECT ... WHERE

    Vídeo 1 · 00:00:28

    O WHERE filtra linhas e mostra só quem atende a condição. O mantra é SELECT ... FROM ... WHERE, com SELECT nas colunas, FROM na tabela e WHERE na condição. O SELECT * traz todas as colunas quando nenhuma coluna foi pedida.

    SQL
    SELECT * FROM tabela
    WHERE year = 2010;
  2. Filtro numérico com = > < <> sem aspas

    Vídeo 1 · 00:03:05

    Use literais numéricos sem aspas, como year = 2010. Colocar um número entre aspas produz um literal textual: o banco pode convertê-lo implicitamente ou rejeitá-lo, conforme o contexto. = testa igualdade; > e < excluem o limite; <= e >= incluem. <> significa diferente, e muitos bancos também aceitam !=.

    SQL
    SELECT * FROM tabela
    WHERE year > 2010;
  3. Filtro de texto com aspas simples

    Vídeo 1 · 00:05:59

    Literais de texto usam aspas simples, como '3A63'. Aspas duplas normalmente identificam nomes de tabelas ou colunas, incluindo nomes com espaços, como "Report Code". Não são uma substituição portável das aspas simples de texto. -- inicia um comentário até o fim da linha no SQLite.

    SQL
    SELECT * FROM tabela
    WHERE "Report Code" = '3A63';
  4. AND, OR e parênteses definem a ordem

    Vídeo 2 · 00:00:43

    O AND exige que todas as condições sejam verdadeiras e deixa o resultado mais específico. O OR pede só uma condição verdadeira e vale quando qualquer critério já basta. Os parênteses controlam a ordem como na matemática e evitam ambiguidade com AND e OR.

    SQL
    SELECT * FROM tabela
    WHERE year = 2006 OR year = 2010;
  5. Exemplo com AND para ano e mês

    Vídeo 2 · 00:02:48

    O exemplo combina year = 2006 AND month > 6 para pegar só o segundo semestre de 2006. Cada parte sozinha traria mais linhas, com AND só passa quem atende as duas. Para testar, a aula comenta o WHERE com -- e compara o total com e sem filtro.

    SQL
    SELECT * FROM tabela
    WHERE year = 2006 AND month > 6;
  6. Exemplo com OR e parênteses para chuva ou neve

    Vídeo 2 · 00:04:47

    O exemplo exige Rain = 1 e, além disso, temperatura de no máximo 32 ou profundidade de neve maior que zero. AND tem precedência sobre OR; os parênteses tornam explícito que o bloco alternativo fica dentro da exigência de chuva. O nome Snow Depth precisa ser delimitado por conter espaço. NULL indica ausência de valor, diferente de espaço ou zero.

    SQL
    SELECT * FROM tabela
    WHERE Rain = 1 AND (temperature <= 32 OR "Snow Depth" > 0);
  7. IN e NOT IN para listas fixas

    Vídeo 3 · 00:00:17

    IN verifica a presença numa lista, como month IN (3, 6, 9, 12); para valores não nulos, corresponde a alternativas ligadas por OR na mesma coluna. NOT IN exclui os valores da lista. NULL exige cuidado: se estiver no lado esquerdo ou numa lista sem correspondência, a condição pode ficar desconhecida e ser descartada pelo WHERE. Para evitar esse problema em uma subconsulta usada por NOT IN, é preciso remover os nulos dos valores devolvidos por ela; filtrar somente a coluna externa não resolve um NULL na lista.

    SQL
    SELECT * FROM tabela
    WHERE month IN (3, 6, 9, 12);
    SELECT * FROM tabela
    WHERE month NOT IN (3, 6, 9, 12);

Conceitos da aula

  • SELECT
  • Tabela
  • WHERE
  • Operadores de comparação
  • AND
  • OR
  • IN
  • NOT IN
  • NULL
  • IS NOT NULL

Reforce este assunto

10 exercíciosComeçar →