Buscar

MySQL - Consulta Básica parte 02

Prévia do material em texto

1 
Banco de Dados II – Prof Tavares 
Banco de Dados II 
 
SQL Básica 
 
Módulo 02 
Banco de Dados I – Prof Tavares 
Requisitos 
de Dados 
Projeto Conceitual 
Projeto Lógico 
Projeto Físico 
Coleta/Especificação 
de Requisitos 
Requisitos 
Funcionais 
Análise Funcional 
Projeto Funcional 
Programação 
Programa de 
aplicação de BD SGBD 
Programa de 
aplicação de BD 
Programa de 
aplicação 
dados 
e 
regras 
Mundo 
Real 
3 
Banco de Dados II – Prof Tavares 
4 
Banco de Dados II – Prof Tavares 
SQL / COMANDO SELECT 
A cláusula DISTINCT elimina repetições de valores em 
relação a uma coluna. 
Consulta: Quais os países dos clientes? 
select country 
 from customers; 
... compare com.. 
select distinct country 
 from customers; 
Utilizando a Cláusula DISTINCT 
5 
Banco de Dados II – Prof Tavares 
SQL / COMANDO SELECT 
• A cláusula GROUP BY organiza os dados em grupos. 
• A cláusula HAVING realiza as restrições das linhas resultantes da 
mesma forma que a cláusula WHERE o faz em um SELECT. 
• Podemos igualmente continuar com a cláusula WHERE 
selecionando as condições da seleção. 
 SELECT <nome da(s) coluna(s)> 
 FROM <tabela> 
 WHERE condição(ões)> 
GROUP BY <nome da(s) coluna(s)>; 
 HAVING <condição(ões)>; 
6 
Banco de Dados II – Prof Tavares 
SQL / COMANDO SELECT 
Consulta: Quais os países dos clientes? 
 select country 
 from customers 
group by country 
7 
Banco de Dados II – Prof Tavares 
SQL / COMANDO SELECT 
Consulta: Listar as cidades, estados e países onde estão 
localizados os escritórios (OFFICES). 
 select city, state, country 
 from offices 
group by city, state, country 
8 
Banco de Dados II – Prof Tavares 
SQL / COMANDO SELECT 
Consulta: Listar as cidades e estados onde estão localizados os 
escritórios (OFFICES). 
 
 select * 
 from products 
 group by productline (???????) 
Mostra o 1º registro de cada grupo 
9 
Banco de Dados II – Prof Tavares 
SQL / COMANDO SELECT 
Consulta: Listar as cidades, estados e países onde estão 
localizados os escritórios (OFFICES). Considerar somente as 
cidades com estados cadastrados. 
 select city, state, country 
 from offices 
 where state is not null 
group by city, state, country 
10 
Banco de Dados II – Prof Tavares 
SQL / COMANDO SELECT 
• As funções de agregação resultam sempre em uma nova 
coluna no resultado da pesquisa. 
• Buscando Máximos e Mínimos (MAX, MIN), 
• Consulta: Mostrar o menor e o maior preço da tabela produto 
(PRODUCT). 
select MIN(buyPrice), MAX(buyPrice) 
 from products 
Utilizando Funções de Agregação sobre Conjuntos 
11 
Banco de Dados II – Prof Tavares 
SQL / COMANDO SELECT 
• Totalizando dos valores de Colunas (SUM) 
• Consulta: Mostrar o somatório total dos pagamentos 
(PAYMENTS). 
 
select sum(amount) 
 from payments 
Utilizando Funções de Agregação sobre Conjuntos 
12 
Banco de Dados II – Prof Tavares 
SQL / COMANDO SELECT 
Calculando Médias (AVG) 
Consulta: Listar a média dos pagamentos. 
 
 select format(avg(amount),2) 
 from payments 
Utilizando Funções de Agregação sobre Conjuntos 
13 
Banco de Dados II – Prof Tavares 
SQL / COMANDO SELECT 
Contando os Registros (COUNT) 
Consulta: Quantos empregados estão cadastrados? 
 
select count(*) 
 from employees 
Utilizando Funções de Agregação sobre Conjuntos 
14 
Banco de Dados II – Prof Tavares 
SQL / COMANDO SELECT 
Contando os Registros (COUNT) 
Consulta: Quantos empregados representantes de vendas 
(Sales Rep) estão cadastrados? 
 
select count(jobtitle) 
 from employees 
where jobtitle in (‘Sales Rep') 
Utilizando Funções de Agregação sobre Conjuntos 
15 
Banco de Dados II – Prof Tavares 
SQL / COMANDO SELECT 
• Contando os Registros (COUNT). 
• Consulta: Determinar a quantidade de clientes e a quantidade 
de estados cadastrados. 
select COUNT(customerNumber) as Qte_Clientes, 
 COUNT(state) as Qte_Estados 
 from CUSTOMERS 
Utilizando Funções de Agregação sobre Conjuntos 
16 
Banco de Dados II – Prof Tavares 
SQL / COMANDO SELECT 
Contando os Registros (COUNT) 
Consulta: Determinar quantos países possuem clientes. 
 
select count(distinct country) as Qte_Paises 
 from customers; 
Utilizando Funções de Agregação sobre Conjuntos 
17 
Banco de Dados II – Prof Tavares 
Consulta: Valores diversos relativos aos produtos. 
 
select MAX(buyPrice), MIN(buyPrice), 
 AVG(buyPrice), SUM(quantityInStock) 
 from products 
SQL / COMANDO SELECT 
18 
Banco de Dados II – Prof Tavares 
SQL / COMANDO SELECT 
Consulta: Listar a quantidade de clientes por país. 
 
 select country as PAIS, count(*) as QTE_CLIENTES 
 from customers 
group by country 
GROUP BY com funções de agregação 
19 
Banco de Dados II – Prof Tavares 
SQL / COMANDO SELECT 
Consulta: Listar o total pago por cada cliente, cujo total é acima 
de U$ 200.000,00. 
 
 select customerNumber as CLIENTE, 
 sum(amount) as TOTAL_VENDAS 
 from payments 
group by customerNumber 
 having sum(amount) > 200000 
20 
Banco de Dados II – Prof Tavares 
SQL / COMANDO SELECT 
Consulta: Listar os principais valores – máximo preço, mínimo 
preço, média de preço e soma de estoque - por linha de 
produtos (productLine). Restrição: valor médio acima de $40. 
 
 select productLine, MAX(buyPrice),MIN(buyPrice), 
 AVG(buyPrice) AS Valor_medio, 
 SUM(quantityInStock) as Quantidade_Estoque 
 from products 
group by productLine 
 having Valor_medio > 40 
21 
Banco de Dados II – Prof Tavares 
SQL / COMANDO SELECT 
select now(), curdate(), curtime(); 
select YEAR(NOW()), MONTH(NOW()), 
 DAY(NOW()), HOUR(NOW()), 
 MINUTE(NOW()), SECOND(NOW()); 
select DATE_ADD('2012-01-31', INTERVAL 5 DAY); 
select DATE_SUB('2012-01-31', INTERVAL 2 MONTH); 
Utilizando Funções de Date/Time 
22 
Banco de Dados II – Prof Tavares 
SQL / COMANDO SELECT 
 Consulta: Listar somente os pedidos emitidos entre 15 Set 2003 e a 
data atual. 
 SELECT * FROM orders 
 WHERE orderDate BETWEEN '2003-09-15' AND CURDATE() 
ORDER BY orderDate 
23 
Banco de Dados II – Prof Tavares 
SQL / COMANDO SELECT 
 Consulta: Listar somente os pedidos emitidos em 2004. 
 SELECT * FROM orders 
 WHERE YEAR(orderDate) = 2004 
ORDER BY orderDate 
24 
Banco de Dados II – Prof Tavares 
SQL / COMANDO SELECT 
 Consulta: Listar somente os pedidos emitidos no dia e mês atual. 
 SELECT * 
 FROM orders 
 WHERE MONTH(orderDate) = MONTH(CURDATE()) 
 AND DAY(orderDate) = DAY(CURDATE()) 
25 
Banco de Dados II – Prof Tavares 
SQL / COMANDO SELECT 
 Consulta: Listar os dias entre o registro do pedido e o envio do 
mesmo. 
 SELECT orderNumber, orderDate, 
 TIMESTAMPDIFF(DAY, orderDate, shippedDate) 
 AS Dias_Processando 
 FROM orders 
 WHERE shippedDate is not null 
ORDER BY orderDate 
26 
Banco de Dados II – Prof Tavares 
Fim

Continue navegando