Aulas do bloco

← Aulas

SQL e DadosAula 1303/09/20261h60

LIKE, BETWEEN, IN, DISTINCT, ORDER BY e GROUP BY

Retoma SELECT, FROM e WHERE com AND, OR e parênteses e LIKE com % da aula do TP3. Introduz intervalo inclusivo com BETWEEN, lista com IN e NOT IN, valores únicos com DISTINCT e ordenação com ORDER BY. Destrava agregação por grupo com GROUP BY, COUNT, SUM e apelido com AS para responder por categoria.

O que foi falado

  1. Revisão: SELECT, WHERE, AND, OR e parênteses

    00:05:17

    Começa com SELECT * para trazer tudo e SELECT com colunas para trazer só plano e idade. O WHERE filtra linha a linha com =, <>, > e <. AND exige todas as condições e afunila, OR aceita qualquer uma e expande, e parênteses em ( ) definem o que é avaliado junto para não misturar os blocos.

    SQL
    SELECT plano, idade
    FROM clientes
    WHERE idade >= 25 AND (plano = 'Padrão' OR plano = 'Prêmio');
  2. Busca textual com LIKE, % e _

    00:10:08

    LIKE é o operador do WHERE para pesquisar texto por padrão. % vale por zero ou mais letras, então LIKE 'P%' traz Padrão e Prêmio. _ vale por exatamente um caractere, então a quantidade de _ define o tamanho procurado e diferencia Padrão de Premium.

    SQL
    SELECT plano
    FROM clientes
    WHERE plano LIKE 'P%';
  3. Intervalos com BETWEEN e listas com IN e NOT IN

    00:18:38

    BETWEEN 25 AND 35 busca intervalo inclusivo e equivale a idade >= 25 AND idade <= 35. A aula usa intervalos de números, valores monetários e datas; para texto, é preciso considerar a ordenação usada pelo banco. IN reúne alternativas de igualdade, como plano IN ('Padrão', 'Prêmio'). Nos exemplos sem valores nulos, NOT IN seleciona os valores fora da lista.

    SQL
    SELECT plano, idade
    FROM clientes
    WHERE idade BETWEEN 25 AND 35;
    SELECT plano
    FROM clientes
    WHERE plano IN ('Padrão', 'Prêmio');
  4. Subquery como filtro de outra consulta

    00:38:07

    Subquery é uma consulta usada como filtro dentro de outra, como WHERE bairro IN (SELECT ...) . Ela precisa retornar só a coluna compatível com o filtro, por isso a aula corrigiu o exemplo para devolver só plano. Escrever o pseudocódigo em português antes ajuda a limpar a lógica do que pedir fora e filtrar dentro.

    SQL
    SELECT nome, plano
    FROM clientes
    WHERE plano IN (SELECT plano FROM clientes WHERE estado = 'SP');
  5. DISTINCT para valores e combinações únicas

    01:00:38

    SELECT DISTINCT plano elimina repetições e mostra só os 3 planos. Com duas colunas, como DISTINCT plano, estado, o banco não traz únicos de cada uma separado. Ele traz combinações únicas, como quais planos existem em cada estado.

    SQL
    SELECT DISTINCT plano
    FROM clientes;
  6. ORDER BY com ASC, DESC e várias colunas

    01:05:04

    ORDER BY estado ordena o resultado para facilitar a leitura. ASC é o padrão do menor para o maior e de A para Z e nem precisa escrever, DESC inverte para do maior para o menor e de Z para A. Com várias colunas a segunda só decide quando há duplicata na primeira, como idades iguais, então não embaralha as linhas.

    SQL
    SELECT estado, idade, nome
    FROM clientes
    ORDER BY estado ASC, idade DESC;
  7. GROUP BY com COUNT, SUM e alias AS

    01:29:02

    GROUP BY plano junta linhas semelhantes para aplicar COUNT(*) ou SUM(valor_mensal) por grupo. Sem GROUP BY o COUNT(*) devolve uma linha única com o total. AS cria o apelido, como COUNT(*) AS total, que deixa a coluna amigável e permite ordenar com ORDER BY total DESC.

    SQL
    SELECT plano, COUNT(*) AS total
    FROM clientes
    GROUP BY plano
    ORDER BY total DESC;

Perguntas que valem a pena

LIKE só funciona no WHERE?00:17:41

Nesta aula, LIKE aparece no WHERE para filtrar texto por padrão. O operador também pode compor outras expressões SQL; ele não é exclusivo do WHERE.

Como ordenar do maior para o menor?01:10:32

Com DESC, que vale para valores, datas e até ordem alfabética de Z para A.

DISTINCT com duas colunas traz únicos de cada coluna ou combinações únicas?01:20:22

Traz combinações únicas, por exemplo quais planos existem em cada estado.

COUNT é para ORDER BY como SUM e AVG?01:48:48

COUNT calcula uma contagem: sem GROUP BY, pode contar o conjunto inteiro; com GROUP BY, calcula por grupo. ORDER BY organiza a ordem do resultado.

O apelido Total Cliente funciona como criar uma variável?01:54:33

AS dá um nome à coluna do resultado, como COUNT(*) AS total. Esse alias pode ser usado no ORDER BY da consulta.

Conceitos da aula

  • SELECT
  • WHERE
  • AND
  • OR
  • LIKE
  • IN
  • BETWEEN
  • DISTINCT
  • ORDER BY
  • GROUP BY
  • COUNT
  • SUM

Reforce este assunto

10 exercíciosComeçar →