Baixe o app para aproveitar ainda mais
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
Compartilhar