05 PostgreSQL Flashcards
select count (distinct rating) from film
retorna quantos tipos diferentes de rating existe na coluna rating da tabela film
select count (*) from payment
- pode ser amount
quantas linhas tem na tabela payment
SELECT x, AGG(j) FROM y WHERE z GROUP BY columnC HAVING AGG(j) ? 67 ORDER BY columnD LIMIT 666
nessa ordem
? símbolo de >,
.
=, >, >=, significam não igual a
.
AND
OR
NOT
.
select description from film
where title = ‘Outlaw Hanky’
Qual a descrição do filme Outlaw Hanky?
select colunaX
from tableY
order by colunaX ASC/DESC
organiza por ASCendente ou DESCendente
select store_id, first_name from customer
order by store_id desc, first_name asc
retorna o codigo da loja e nome do cliente organizados primeiramente por ordem descendente do id da loja e em ordem ascendente dos nomes
select customer_id from payment
order by payment_date asc
limit 10
Os 10 primeiros clientes que fizeram pagamento
BETWEEN low AND high
(inclusive, not between is exclusive)
equivale a
value >= low AND value <= high
.
select * from payment
where amount between 8 and 9
Inclui 8, 9 e o que está entre eles
select * from payment
where payment_date between ‘2007-02-01’ and ‘2007-02-15’
Tudo entre 0 hora de 01/02/2007 e 23:59:59.999999 de 14/02/2007
select * from table
where color IN (‘red’, ‘blue’)
seleciona toda a linha em que color é vermelha ou azul
select * from table
where color IN (‘red’, ‘blue’)
poderia usar NOT IN pra mostrar o contrário
seleciona toda a linha em que color é vermelha ou azul
%
WILDCARD
% (percent)
_ (underscore)
WILDCARD, matches any sequence of characters
matches any single character
LIKE
ILIKE
case sensitive
case-insensitive
% (percent)
_ (underscore)
WILDCARD, matches any sequence of characters. % pode ser nada.
matches any single character
select * from tableX
WHERE name ILIKE ‘_her%’
seleciona os nomes com uma letra antes do her e depois pode vim qualquer coisa.
cHERyl
tHEResa
sHERri
SELECT * from customer
WHERE first_name ILIKE ‘j%’ AND last_name ILIKE ‘s%’
retorna se primeiro nome começa com J/j e segundo com S/s
The main idea behind aggregate function is to take multiple inputs and return a single output
.
most commom aggregate functions are
they happen only in select or having clause
avg - média count - quantidade max - maximo min - minimo sum - soma
round ( ) para arredondar
select round ( avg (replacement_cost), 2 )
retorna a média do replacement cost, arredondada em dois dígitos decimais (décimo e centésimo), padrão seriam uns 10 dígitos decimais
GROUP BY: CATEGORY column (non continuous variable) and VALUE column
GROUP BY aparece logo após WHERE statement ou FROM statment
.
SELECT category_column, AGG data_column
FROM tableX
GROUP BY category_column
Se tiver WHERE statment, não pode se referir ao AGG
.
select customer_id, sum(amount) from payment
group by customer_id
order by sum(amount)
junta todos os pagamentos de cada cliente, soma eles e retorna na ordem crescente de valores
select customer_id, staff_id, sum(amount) from payment
group by staff_id, customer_id
order by staff_id, sum(amount)
organiza por ordem de soma de compras em cada um dos staffs
SELECT company, SUM(sales) FROM finance_table WHERE company != 'Google' GROUP BY company HAVING SUM(sales) > 1000
Retorna as companias com soma de vendas maior que 1000, exceto o google
SELECT columnX AS new_nameX
FROM tableX
AS é executado só no fim, não pode ser usado no WHERE ou HAVING
cria o alias (label) new_nameX para a columnX