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
Revisão: SELECT, WHERE, AND, OR e parênteses
00:05:17Começa com
SELECT *para trazer tudo eSELECTcom colunas para trazer sóplanoeidade. OWHEREfiltra linha a linha com=,<>,>e<.ANDexige todas as condições e afunila,ORaceita qualquer uma e expande, e parênteses em( )definem o que é avaliado junto para não misturar os blocos.SELECT plano, idade FROM clientes WHERE idade >= 25 AND (plano = 'Padrão' OR plano = 'Prêmio');Busca textual com LIKE, % e _
00:10:08LIKEé o operador doWHEREpara pesquisar texto por padrão.%vale por zero ou mais letras, entãoLIKE 'P%'trazPadrãoePrêmio._vale por exatamente um caractere, então a quantidade de_define o tamanho procurado e diferenciaPadrãodePremium.SELECT plano FROM clientes WHERE plano LIKE 'P%';Intervalos com BETWEEN e listas com IN e NOT IN
00:18:38BETWEEN 25 AND 35busca intervalo inclusivo e equivale aidade >= 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.INreúne alternativas de igualdade, comoplano IN ('Padrão', 'Prêmio'). Nos exemplos sem valores nulos,NOT INseleciona os valores fora da lista.SELECT plano, idade FROM clientes WHERE idade BETWEEN 25 AND 35; SELECT plano FROM clientes WHERE plano IN ('Padrão', 'Prêmio');Subquery como filtro de outra consulta
00:38:07Subquery é 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.SELECT nome, plano FROM clientes WHERE plano IN (SELECT plano FROM clientes WHERE estado = 'SP');DISTINCT para valores e combinações únicas
01:00:38SELECT DISTINCT planoelimina repetições e mostra só os 3 planos. Com duas colunas, comoDISTINCT plano, estado, o banco não traz únicos de cada uma separado. Ele traz combinações únicas, como quais planos existem em cada estado.SELECT DISTINCT plano FROM clientes;ORDER BY com ASC, DESC e várias colunas
01:05:04ORDER BY estadoordena o resultado para facilitar a leitura.ASCé o padrão do menor para o maior e deAparaZe nem precisa escrever,DESCinverte para do maior para o menor e deZparaA. Com várias colunas a segunda só decide quando há duplicata na primeira, como idades iguais, então não embaralha as linhas.SELECT estado, idade, nome FROM clientes ORDER BY estado ASC, idade DESC;GROUP BY com COUNT, SUM e alias AS
01:29:02GROUP BY planojunta linhas semelhantes para aplicarCOUNT(*)ouSUM(valor_mensal)por grupo. SemGROUP BYoCOUNT(*)devolve uma linha única com o total.AScria o apelido, comoCOUNT(*) AS total, que deixa a coluna amigável e permite ordenar comORDER BY total DESC.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
- HAVING e DISTINCT com GROUP BYSQL e Dados · trilha, etapa 9
- Agregação com GROUP BY: SUM, COUNT, AVG, MIN e MAXSQL e Dados · trilha, etapa 8
- ORDER BY: ordenação com ASC e DESCSQL e Dados · trilha, etapa 7