SQL Flashcards
Cláusulas
Select
From
Where
Group by
Having
Ordem by
Cláusula Select
Sintaxe básica da cláusula select
SELECT coluna1, coluna2…
FROM tabela1
…
WHERE condições
…
… = pode ter outras
Cláusula Grup by
1 a cláusula do group by só pode agrupar registros repetidos, por exemplo, não poso agrupar id.
2 para ter group by precisa ter consultas que tenham agregação (média, contar, máximo, mínimo, soma)
3 SELECT cidades, AVG(valor)
FROM vendas
GRUPO BY cidades;
O resultado vai mostrar duas colunas, uma coluna é a representação do agrupamento das cidades da tabela, a outra coluna é a média dos valores de vendas para aqueles registros em que as cidades se repetem.
Cláusula HAVING e ON
Having: faz um filtro em cima do que foi grupado –> após o group by (a cláusula having só poder ser usada com o group by).
1 posso usar o having junto com o where
2
Cláusula ORDER BY
1 pode ser feito a ordenação em várias colunas ao mesmo tempo.
Sintaxe: ORDER BY coluna1 ASC, coluna2 ASC, coluna3 DESC…
2 no order by pode, ao invés de selecionar as colunas pelo nome, posso selecionar pela posição da esquerda (1) para a direita (n).
3 se nada estiver descrito na ordenação (asc ou desc), o default é o asc e ele que é aplicado.
4 posso usar expressões para ordenar.
4.1 order by right(cpf_cliente,3) –> isso quer dizer que existe uma coluna só de cpfs de clientes e quero que a consulta ordene esses cpfs pelos últimos 3 dígitos de forma ascendente (o right indica á direta, ou seja, os números mais a direitas, ou seja, os números do fim)
4,2 order by left(cpf_cliente,3) –> isso quer dizer que existe uma coluna só de cpfs de clientes e quero que a consulta ordene esses cpfs pelos primeiros 3 dígitos de forma ascendente (o left indica á esquerda, ou seja, os números mais á esquerda ou seja, os números do começo)
Para fazer correlações entre relações (operadores de conjuntos)
Union
Union all
Intersect
Except
Para aplicar esses operadores, todas as colunas que estão na tabela A devem também estar na tabela B e na mesma ordem e ter o mesmo tipo de dados.
Todas as tabelas devem ter o mesmo número de colunas.
Union
1 Junta todos os registros ou algumas que estão na tabela A com os da tabela B.
2 Os registros que forem repetidos nas tabelas, não serão mostrados 2 ou mais vezes, será apenas 1 vez.
Union all
É igual ao union, só que ao invés de juntar e não repetir os repetidos como no union, no union all há a repetição dos registros repetidos.
Intersect
A intersecção junta duas tabelas e o resultado é somente o que as duas tabelas têm em comum.
O que não é em comum não aparece na tabela resultado.
Except
O except entre duas tabelas A e B produz uma tabela resultado que mostra o que tem na tabela A e não tem em B
Funções de agregação e detalhe
COUNT
AVG
SUM
MIM
MAX
HAVING
As funções de agregação são usadas no select, exceto o having, que é usada depois do GRUP BY
Função COUNT
1 Conta a quantidade de valores, independente de se repetirem ou não.
2 o COUNT não conta os valores nuloa
3 se for COUNT * irá contar todas as linhas da tabela
4 se for COUNT(nome da coluna) irá contar todos os valores não nulos daquela coluna
4 se for COUNT(nome da coluna1), COUNT(NOME DA COLUNA2)… Irá contar todos os valores das colunas 1, 2…
5 posso usar o select com count e group by. Basicamente eu vou fazer a contagem e depois vou agrupar essa contagem em cada valor do group by.
5,1 usando um exemplo, posso fazer o count dos produtos vendidos e agrupar essa contagem por estados
Função AVG
Faz a média dos valores da coluna
Função MAX
Retorna o valor máximo