Aulas do bloco

← Aulas

SQL e DadosAula 1231/08/20261h32

TP3, WHERE, AND, OR e LIKE

Retoma SELECT, FROM e WHERE da aula do banco contra planilha para filtrar linhas com igualdade e comparação. Destrava a leitura do TP3 com AND que afunila, OR que expande, LIKE com % e IN com parênteses para misturar blocos. O TP2 tem entrega até sexta-feira.

O que foi falado

  1. Duplicar e rodar o DeepNote do TP3

    00:08:40

    O notebook do TP3 vem travado, então duplique para o seu workspace para conseguir editar. Rode o notebook antes de resolver para ele criar as tabelas e inserir os valores. Se der erro de tabela não existe, olhe o log e rode de novo porque a sessão caiu.

  2. SELECT * traz tudo e WHERE filtra linhas

    00:15:48

    SELECT * retorna todas as colunas da tabela e exige menos digitação. Listar os campos desejados permite retornar só as colunas necessárias. WHERE filtra as linhas conforme a pergunta da consulta.

    SQL
    SELECT * FROM produtos;
    SELECT nome, preco FROM produtos;
  3. = , <> e comparadores com aspas e padrão americano

    00:53:22

    = filtra por valor exato, como categoria igual a periféricos. <> ou != filtram a diferença, e >, <, >= e <= comparam número e data incluindo o limite quando tem =. Texto usa aspas simples como em 'SP', número usa ponto como em 10.5 e data se escreve como está no banco no padrão americano sem formatar.

    SQL
    SELECT * FROM produtos WHERE categoria = 'perifericos';
    SELECT * FROM produtos WHERE categoria <> 'perifericos';
    SELECT * FROM clientes WHERE idade > 21;
  4. AND exige tudo e afunila

    00:58:44

    AND exige que todas as condições sejam atendidas. Quanto mais AND empilhado, mais o resultado afunila, como no exemplo que caiu para 3 linhas. Campo lógico filtra com TRUE para trazer só ativos.

    SQL
    SELECT * FROM produtos WHERE preco > 500 AND estoque < 10 AND categoria <> 'perifericos';
  5. OR aceita qualquer condição e expande

    01:03:37

    OR basta atender qualquer uma das condições. Ele junta os grupos e expande o resultado, como trazer 'RJ' ou 'SP' em um conjunto novo. No exemplo de SP ou plano diferente de básico, traz SP independente do plano e traz plano não básico de qualquer cidade.

    SQL
    SELECT * FROM clientes WHERE estado = 'RJ' OR estado = 'SP';
  6. LIKE com % pesquisa trecho de texto

    01:16:53

    LIKE pesquisa trecho de texto quando você não sabe a grafia exata. % representa qualquer quantidade de caracteres. Com % só no fim filtra pelo começo, e com % dos dois lados permite texto antes e depois, como '%zon%' para achar Belo Horizonte.

    SQL
    SELECT * FROM clientes WHERE cidade LIKE '%zon%';
    SELECT * FROM clientes WHERE cidade LIKE 'Sao%';
  7. IN e parênteses para misturar AND com OR

    01:21:41

    Para testar vários valores o elegante é IN em vez de vários OR, como estado IN ('RJ', 'SP'). Vírgula no lugar de OR dá erro. Quando AND e OR aparecem juntos, use parênteses para isolar os blocos que devem ser avaliados juntos.

    SQL
    SELECT * FROM clientes WHERE estado IN ('RJ', 'SP');
    SELECT * FROM pedidos WHERE (estado = 'RJ' OR estado = 'SP') AND status <> 'cancelado';

Perguntas que valem a pena

Aspas simples e duplas fazem diferença no SQL?01:08:21

A aula orienta usar aspas simples para valores de texto, como 'SP'. Aspas duplas têm outro papel em muitos bancos, então siga a forma usada nos exemplos para os literais de texto.

O que retorna o filtro com OR entre cidade SP e plano diferente de básico?01:08:49

Atende qualquer uma das condições. Traz 'SP' independente do plano e traz plano não básico de qualquer cidade.

Dá para usar vírgula no lugar de AND para filtrar RJ e SP?01:21:00

Não, vírgula dá erro. Para 'RJ' ou 'SP' use OR, e a forma mais elegante é IN.

Qual a diferença entre usar % só no fim ou dos dois lados no LIKE?01:23:56

Com % só no fim filtra pelo começo do texto. Com % dos dois lados permite texto antes e depois do termo.

Dá para usar * menos uma coluna?01:30:00

Na forma ensinada nesta aula, liste explicitamente as colunas que deseja retornar.

Conceitos da aula

  • SELECT
  • FROM
  • WHERE
  • asterisco *
  • AND
  • OR
  • LIKE
  • IN
  • query
  • parênteses

Reforce este assunto

10 exercíciosComeçar →