Realizando cálculos com
Count
Sum
AVG
Group by
Melhorando nossas pesquisas com
Having, aliases, Distinct, like, order by, in e betweeen
Agrupando informações com Joins e Union
2. SUMÁRIO
• OBJETIVO DA AULA
• REALIZANDO CÁLCULOS COM
• COUNT
• SUM
• AVG
• GROUP BY
• MELHORANDO NOSSAS PESQUISAS COM
• HAVING, ALIASES, DISTINCT, LIKE, ORDER BY, IN E BETWEEEN
• AGRUPANDO INFORMAÇÕES COM JOINS E UNION
• EXERCÍCIOS PRÁTICOS
3. OBJETIVOS DA AULA
Apresentar novos parâmetros
para pesquisa, agrupamento e
cálculo envolvendo registros em
banco de dados relacionais
utilizando o padrão SQL.
1
Aplicar os comandos
apresentados em exercícios
práticos com o uso de
comandos de pesquisas e seus
principais operadores.
2
4. COUNT
O COMANDO COUNT RETORNA O NÚMERO DE REGISTROS QUE
ATENDEM A UMA DETERMINADA CONDIÇÃO. QUANDO UMA
COLUNA É PASSADA COMO PARÂMETRO, NÃO SÃO CONTADOS
VALORES NULOS, PORÉM, QUANDO O * É UTILIZADO, TODOS OS
REGISTROS SÃO CONTADOS.
SELECT COUNT(<COLUNA 1>)
FROM <NOME DA TABELA>
WHERE <COLUNA 1> = <VALOR DESEJADO>
5. SUM
O COMANDO SUM SOMA OS VALORES DE UMA DETERMINADA
COLUNA CONFORME OS FILTROS APLICADOS.
SELECT SUM(<COLUNA 1>)
FROM <NOME DA TABELA>
WHERE <COLUNA 1> = <VALOR DESEJADO>
6. AVG
O COMANDO AVG, ABREVIAÇÃO DE AVERAGE EM INGLÊS,
APRESENTA A MÉDIA OS VALORES DE UMA DETERMINADA COLUNA
CONFORME OS FILTROS APLICADOS.
SELECT AVG(<COLUNA 1>)
FROM <NOME DA TABELA>
WHERE <COLUNA 1> = <VALOR DESEJADO>
7. GROUP BY
O COMANDO GROUP BY GERALMENTE É UTILIZADO EM CONJUNTO
COM ALGUMA FUNÇÃO DE CÁLCULO COMO COUNT, MAX,
MIN, SUM E AVG. ELE IRÁ AGRUPAR OS RESULTADOS POR
COLUNAS QUE CONTENHAM REGISTROS COM O MESMO VALOR.
SELECT COUNT(<COLUNA 1>), <COLUNA 2>
FROM <NOME DA TABELA>
WHERE <COLUNA 1> = <VALOR DESEJADO>
GROUP BY <COLUNA 2>
8. HAVING
O COMANDO HAVING DEVE SER UTILIZADO PARA ALGUNS CASOS
ESPECÍFICOS QUE NÃO PODEM SER ATENDIDOS PELA CLÁUSULA
WHERE, COMO EM AGRUPAMENTOS.
SELECT COUNT(<COLUNA 1>), <COLUNA 2>
FROM <NOME DA TABELA>
WHERE <COLUNA 1> = <VALOR DESEJADO>
GROUP BY <COLUNA 2>
HAVING COUNT(<COLUNA 1>) > 0
9. ALIASES
ALIASES PODEM SER UTILIZADOS PARA FACILITAR A APRESENTAÇÃO
DOS CAMPOS PARA PESQUISAS E RELATÓRIOS. AS ASPAS SIMPLES
SOMENTE SÃO OBRIGATÓRIAS PARA UTILIZAÇÃO DE ESPAÇÕES E
CARACTERES ESPECIAIS.
SELECT <COLUNA 1> AS ‘IDADE’, <COLUNA 2> AS NOMES
FROM <NOME DA TABELA>
WHERE <COLUNA 1> = <VALOR DESEJADO>
10. DISTINCT
O COMANDO DISTINCT TRAZ APENAS VALORES ÚNICOS DE UMA
DETERMINADA COLUNA OU COLUNAS CONFORME OS FILTROS
APLICADOS.
SELECT DISTINCT <COLUNA 1>, <COLUNA 2>
FROM <NOME DA TABELA>
WHERE <COLUNA 1> = <VALOR DESEJADO>
11. LIKE
O OPERADOR LIKE PODE SER UTILIZADO PARA COMPARAR
CONJUNTOS DE CARACTERES QUE SEGUEM UM DETERMINADO
PADRÃO OU POSSUEM UMA DETERMINADA SIMILARIDADE.
NO EXEMPLO ABAIXO, SERÃO APRESENTADOS TODOS OS REGISTROS
QUE POSSUEM A PALAVRA “CÉSAR” NO INÍCIO DO CAMPO
<COLUNA 1>.
SELECT <COLUNA 1>, <COLUNA 2>
FROM <NOME DA TABELA>
WHERE <COLUNA 1> LIKE ‘CÉSAR%’
12. LIKE
O OPERADOR LIKE PODE SER COMBINADO DE DIVERSAS MANEIRAS,
COMO ABAIXO:
Expressão Funcionamento
LIKE ‘A%’ Busca todas as informações que começam com a letra A.
LIKE ‘%A’ Busca todas as informações que terminam com a letra A.
LIKE ‘%A%’ Busca todas as informações que possuem a letra A.
LIKE ‘A_’ Busca uma palavra (string) que possua apenas dois caracteres e comece
com a letra A.
LIKE ‘_A’ Busca uma palavra (string) que possua apenas dois caracteres e que termine
com a letra A.
LIKE ‘_A_’ Busca uma palavra (string) que possua três caracteres, porém, contendo a
letra A na segunda posição.
LIKE ‘%A_’ Busca todas as informações que contenham a letra A na penúltima posição.
LIKE ‘_A%’ Busca todas as informações que contenham a letra A na segunda posição.
13. LIKE
VALE LEMBRAR QUE OS OPERADORES ‘%’ E ‘_’ PODEM SER
COMBINADOS DE DIVERSAS MANEIRAS, ASSIM COMO,
INTERCALADOS EM UMA MESMA EXPRESSÃO DE BUSCA:
• LIKE ‘C_SAR%’
• LIKE ‘%A_GUST__’
• LIKE ‘%TESTE%’
• LIKE 'A_%_%'
14. ORDER BY
A CLÁUSULA ORDER BY, EM TRADUÇÃO LIVRE “ORDENAR POR”,
PERMITE QUE OS REGISTROS SIGAM UMA SEQUÊNCIA PRÉ-DEFINIDA
DE ORDENAÇÃO PARA SEREM APRESENTADOS.
SELECT <COLUNA 1>, <COLUNA 2>, <COLUNA 3>
FROM <NOME DA TABELA>
ORDER BY <COLUNA 1>, <COLUNA 2>
15. ORDER BY
A CLÁUSULA ORDER BY POR PADRÃO APRESENTA OS RESULTADOS
EM ORDEM ASCENDENTE (DO MENOR PARA O MAIOR). ISSO PODE
SER ALTERADO UTILIZANDO O COMPLEMENTO DESC (DESCENDENTE).
SELECT <COLUNA 1>, <COLUNA 2>, <COLUNA 3>
FROM <NOME DA TABELA>
ORDER BY <COLUNA 1> DESC, <COLUNA 2>
16. IN
O COMANDO IN FAZ A COMPARAÇÃO DE VALORES DE UMA
COLUNA COM UMA AMOSTRA DEFINIDA. GERALMENTE É UTILIZADO
PARA EVITAR O EXCESSO DE CLÁUSULAS OR EM SEQUÊNCIA.
SELECT <COLUNA 1>, <COLUNA 2>, <COLUNA 3>
FROM <NOME DA TABELA>
WHERE <COLUNA 1> IN (<VALOR DESEJADO1>, <VALOR
DESEJADO2>, <VALOR DESEJADO3>)
17. BETWEEN
O OPERADOR BETWEEN, EM TRADUÇÃO LIVRE “ENTRE”, PERMITE
DETERMINAR UM INTERVALO DE BUSCA. NO CASO DE DATAS É MUITO
UTILIZADO PARA BUSCAR PERÍODOS DE TEMPO.
SELECT <COLUNA 1>, <COLUNA 2>, <COLUNA 3>
FROM <NOME DA TABELA>
WHERE <COLUNA 1> BETWEEN <VALOR DESEJADO1> AND
<VALOR DESEJADO2>
18. JOINS
EXISTEM DIVERSOS TIPOS DE JOINS, OU LIGAÇÕES, QUE PODEM SER
APLICADAS A PESQUISA EM MÚLTIPLAS TABELAS. SEGUE UMA BREVE
DESCRIÇÃO DE CADA TIPO:
• (INNER) JOIN: É O MAIS NATURAL E COMUM, ELE REALIZAR A
LIGAÇÃO ENTRE TABELAS QUE POSSUEM O MESMO VALOR EM UMA
DETERMINADA COLUNA.
• LEFT (OUTER) JOIN: UTILIZANDO TODOS OS DADOS DA TABELA A
ESQUERDA COMO MATRIZ, BUSCA OS DADOS CORRESPONDENTES
EM OUTRA TABELA.
19. JOINS
• RIGHT (OUTER) JOIN: UTILIZANDO TODOS OS DADOS DA TABELA A
DIREITA COMO MATRIZ, BUSCA OS DADOS CORRESPONDENTES EM
OUTRA TABELA.
• FULL (OUTER) JOIN: RETORNA TODOS OS DADOS DE AMBAS AS
TABELAS QUANDO EXISTEM UMA CORRESPONDÊNCIA A DIREITA OU
A ESQUERDA.
21. UNION
O OPERADOR UNION PERMITE QUE OS RESULTADOS DE MÚLTIPLOS
SELECTS SEJAM APRESENTADOS JUNTOS. EXISTEM APENAS ALGUMAS
RESTRIÇÕES:
• TODOS OS SELECTS ENVOLVIDOS DEVEM POSSUIR O MESMO
NÚMERO DE COLUNAS.
• AS COLUNAS APRESENTADAS DEVEM POSSUIR TIPOS DE DADOS
SEMELHANTES COM SUAS UNIÕES, CONFORME A ORDEM.
• O OPERADOR UNION SOMENTE TRARÁ DADOS ÚNICOS POR
PADRÃO (DISTINCT)
22. UNION
SELECT <COLUNA 1>, <COLUNA 2>, <COLUNA 3>
FROM <NOME DA TABELA 1>
WHERE <COLUNA 1> = <VALOR DESEJADO>
UNION
SELECT <COLUNA 4>, <COLUNA 5>, <COLUNA 6>
FROM <NOME DA TABELA 2>
23. UNION ALL – SEM DISTINCT
SELECT <COLUNA 1>, <COLUNA 2>, <COLUNA 3>
FROM <NOME DA TABELA 1>
UNION ALL
SELECT <COLUNA 4>, <COLUNA 5>, <COLUNA 6>
FROM <NOME DA TABELA 2>