A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Bancos de Dados SQL Server 2012 SQL – Consultas. SQL - Consultas Elementos Básicos do SQL Agrupamento e Sumarização Junção de dados de múltiplas tabelas.

Apresentações semelhantes


Apresentação em tema: "Bancos de Dados SQL Server 2012 SQL – Consultas. SQL - Consultas Elementos Básicos do SQL Agrupamento e Sumarização Junção de dados de múltiplas tabelas."— Transcrição da apresentação:

1 Bancos de Dados SQL Server 2012 SQL – Consultas

2 SQL - Consultas Elementos Básicos do SQL Agrupamento e Sumarização Junção de dados de múltiplas tabelas Subqueries

3 Elementos Básicos do SQL Selecionando dados com o comando SELECT Filtrando Dados Formatando os resultados (Result Sets)

4 Selecionando dados com o comando SELECT Usando o comando SELECT Especificando as colunas a serem retornadas Usando a cláusula WHERE para especificar as linhas a serem retornadas

5 Usando o comando SELECT A Select List especifica as colunas A cláusula WHERE especifica as linhas A cláusula FROM especifica a tabela Sintaxe Parcial SELECT [ALL | DISTINCT] FROM { } [,…n] WHERE

6 Especificando as colunas a serem retornadasemployeeidemployeeidlastnamelastnamefirstnamefirstnametitletitle 1 1 Davolio Nancy Sales Representative 2 2 Fuller Andrew Vice President, Sales 3 3 Leverling Janet Sales Representative 4 4 Peacock Margaret Sales Representative 5 5 Buchanan Steven Sales Manager 6 6 Suyama Michael Sales Representative 7 7 King Robert Sales Representative 8 8 Callahan Laura Inside Sales Coordinator 9 9 Dodsworth Anne Sales Representative USE northwind SELECT employeeid, lastname, firstname, title FROM employees GO USE northwind SELECT employeeid, lastname, firstname, title FROM employees GO

7 Usando a cláusula Where para especificar as linhas retornadas employeeidemployeeidlastnamelastnamefirstnamefirstnametitletitle 5 5 Buchanan Steven Sales Manager USE northwind SELECT employeeid, lastname, firstname, title FROM employees WHERE employeeid = 5 GO USE northwind SELECT employeeid, lastname, firstname, title FROM employees WHERE employeeid = 5 GO

8 Filtragem Usando Operadores de Comparação Comparando Strings Usando Operadores Lógicos Selecionando Faixas de Valores Usando uma Lista de Valores como critério para busca Selecionando Valores Desconhecidos (Null)

9 Usando Operadores de Comparação USE northwind SELECT lastname, city FROM employees WHERE country = 'USA GO USE northwind SELECT lastname, city FROM employees WHERE country = 'USA GOlastnamelastnamecitycity Davolio Seattle Fuller Tacoma Leverling Kirkland Peacock Redmond Callahan Seattle Exemplo 1

10 Comparando Strings USE northwind SELECT companyname FROM customers WHERE companyname LIKE '%Restaurant% GO USE northwind SELECT companyname FROM customers WHERE companyname LIKE '%Restaurant% GOcompanynamecompanyname GROSELLA-Restaurante Lonesome Pine Restaurant Tortuga Restaurante

11 Usando Operadores Lógicos USE northwind SELECT productid, productname, supplierid, unitprice FROM products WHERE (productname LIKE 'T%' OR productid = 46) AND (unitprice > 16.00) GO USE northwind SELECT productid, productname, supplierid, unitprice FROM products WHERE (productname LIKE 'T%' OR productid = 46) AND (unitprice > 16.00) GOproductidproductidproductnameproductnamesupplieridsupplieridunitpriceunitprice 14 Tofu Thüringer Rostbratwurst Tarte au sucre Exemplo 1

12 Selecionando uma Faixa de Valores USE northwind SELECT productname, unitprice FROM products WHERE unitprice BETWEEN 10 AND 20 GO USE northwind SELECT productname, unitprice FROM products WHERE unitprice BETWEEN 10 AND 20 GOproductnameproductnameunitpriceunitprice Chai 18 Chang 19 Aniseed Syrup 10 Genen Shouyu 15.5 Pavlova Sir Rodneys Scones 10 … … … … Exemplo 1

13 USE northwind SELECT companyname, country FROM suppliers WHERE country IN ('Japan', 'Italy') GO USE northwind SELECT companyname, country FROM suppliers WHERE country IN ('Japan', 'Italy') GO Usando uma Lista de Valores para buscacompanynamecompanynamecountrycountry Tokyo Traders Japan Mayumis Japan Formaggi Fortini s.r.l. Italy Pasta Buttini s.r.l. Italy Exemplo 1

14 Buscando Valores Desconhecidos USE northwind SELECT companyname, fax FROM suppliers WHERE fax IS NULL GO USE northwind SELECT companyname, fax FROM suppliers WHERE fax IS NULL GO companynamecompanynamefaxfax Exotic Liquids NULL New Orleans Cajun Delights NULL Tokyo Traders NULL Cooperativa de Quesos Las Cabras NULL … … … …

15 Formatando os Resultados Ordenando Dados (Sort) Eliminando linhas duplicadas Mudando nomes de colunas Usando Literais

16 Ordenando Dados USE northwind SELECT productid, productname, categoryid, unitprice FROM products ORDER BY categoryid, unitprice DESC GO USE northwind SELECT productid, productname, categoryid, unitprice FROM products ORDER BY categoryid, unitprice DESC GOproductidproductidproductnameproductnamecategoryidcategoryidunitpriceunitprice 38 Cote de Blaye Ipoh Coffee Chang … … … … … … … … 63 Vegie-spread Northwoods Cranberry Sauce Sirop d'érable … … … … … … … … Exemplo 1

17 Eliminando linhas duplicadas USE northwind SELECT DISTINCT country FROM suppliers ORDER BY country GO USE northwind SELECT DISTINCT country FROM suppliers ORDER BY country GOcountrycountry Australia Brazil Canada Denmark Finland France Germany Italy Japan Netherlands Norway Singapore Spain Sweden UK USA Exemplo 1

18 Mudando nomes de colunas USE northwind SELECT firstname AS First, lastname AS Last,employeeid AS 'Employee ID:' FROM employees GO USE northwind SELECT firstname AS First, lastname AS Last,employeeid AS 'Employee ID:' FROM employees GOFirstFirstLastLast Employee ID: Nancy Davolio 1 1 Andrew Fuller 2 2 Janet Leverling 3 3 Margaret Peacock 4 4 Steven Buchanan 5 5 Michael Suyama 6 6 Robert King 7 7 Laura Callahan 8 8 Anne Dodsworth 9 9

19 Usando Literais USE northwind SELECT firstname, lastname,'Identification number:', employeeid FROM employees GO USE northwind SELECT firstname, lastname,'Identification number:', employeeid FROM employees GOFirstFirstLastLast Employee ID: Nancy Davolio Identification Number: 1 Andrew Fuller Janet Leverling Margaret Peacock Steven Buchanan Michael Suyama Robert King Laura Callahan Anne Dodsworth Identification Number: 2 Identification Number: 3 Identification Number: 4 Identification Number: 5 Identification Number: 6 Identification Number: 7 Identification Number: 8 Identification Number: 9

20 Considerações de Performance Buscas envolvendo NOT podem reduzir o desempenho de consultas Algumas Buscas envolvendo LIKE podem reduzir o desempenho de consultas Buscas exatas ou por faixas podem aumentar o desempenho de consultas ORDER BY pode reduzir o desempenho de consultas

21 Agrupamento e Sumarização Selecionando os TOP n Valores Usando Funções de Agregação GROUP BY Fundamentals Usando as cláusulas COMPUTE e COMPUTE BY

22 Selecionando os TOP n Valores Lista somente as primeiras n linhas do Result Set Order By determina a faixa de valores Retorna empates se WITH TIES é usado USE northwind SELECT TOP 5 orderid, productid, quantity FROM [order details] ORDER BY quantity DESC GO USE northwind SELECT TOP 5 orderid, productid, quantity FROM [order details] ORDER BY quantity DESC GO USE northwind SELECT TOP 5 WITH TIES orderid, productid, quantity FROM [order details] ORDER BY quantity DESC GO USE northwind SELECT TOP 5 WITH TIES orderid, productid, quantity FROM [order details] ORDER BY quantity DESC GO Exemplo 1 Exemplo 2

23 Usando Funções de Agregação Aggregate function DescriptionDescription AVG Average of values in a numeric expression COUNT Number of values in an expression COUNT (*) Number of selected rows MAX Highest value in the expression MIN Lowest value in the expression SUM Total values in a numeric expression STDEV Statistical deviation of all values STDEVP Statistical deviation for the population VAR Statistical variance of all values VARP Statistical variance of all values for the population

24 Usando Funções de Agregação com valores NULL A maioria das funções de agregação ignora valores Null Função COUNT(*) também conta as linhas com valores Null USE northwind SELECT COUNT (*) FROM employees GO USE northwind SELECT COUNT (*) FROM employees GO USE northwind SELECT COUNT(reportsto) FROM employees GO USE northwind SELECT COUNT(reportsto) FROM employees GO Exemplo 1 Exemplo 2

25 Fundamentos GROUP BY Usando a cláusula GROUP BY Usando a cláusula GROUP BY com a cláusula HAVING

26 Usando a cláusula GROUP BY USE northwind SELECT productid, orderid,quantity FROM orderhist GO USE northwind SELECT productid, orderid,quantity FROM orderhist GO USE northwind SELECT productid,SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid GO USE northwind SELECT productid,SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid GOproductidproductidtotal_quantitytotal_quantity productidproductidorderidorderidquantityquantity productidproductidtotal_quantitytotal_quantity Somente linhas que satisfazem a cláusula Where são agrupadas USE northwind SELECT productid,SUM(quantity) AS total_quantity FROM orderhist WHERE productid = 2 GROUP BY productid GO USE northwind SELECT productid,SUM(quantity) AS total_quantity FROM orderhist WHERE productid = 2 GROUP BY productid GO

27 Usando a cláusula GROUP BY com a cláusula HAVING USE northwind SELECT productid, orderid,quantity FROM orderhist GO USE northwind SELECT productid, orderid,quantity FROM orderhist GO USE northwind SELECT productid, SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid HAVING SUM(quantity)>=30 GO USE northwind SELECT productid, SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid HAVING SUM(quantity)>=30 GOproductidproductidtotal_quantitytotal_quantity productidproductidorderidorderidquantityquantity

28 Usando as cláusulas COMPUTE e COMPUTE BY COMPUTE BYCOMPUTE USE northwind SELECT productid, orderid, quantity FROM orderhist ORDER BY productid, orderid COMPUTE SUM(quantity) BY productid COMPUTE SUM(quantity) GO USE northwind SELECT productid, orderid, quantity FROM orderhist ORDER BY productid, orderid COMPUTE SUM(quantity) BY productid COMPUTE SUM(quantity) GO USE northwind SELECT productid, orderid,quantity FROM orderhist ORDER BY productid, orderid COMPUTE SUM(quantity) GO USE northwind SELECT productid, orderid,quantity FROM orderhist ORDER BY productid, orderid COMPUTE SUM(quantity) GOproductidproductidorderidorderidquantityquantity sum 95 productidproductidorderidorderidquantityquantity sum sum sum 45 sum 95

29 Junção de dados de múltiplas tabelas Usando Aliases (apelidos) para Tabelas Combinando dados de múltiplas Tabelas Combinando múltiplos Result Sets Criando uma Tabela de um Result Set

30 Usando Aliases (apelidos) para Tabelas Exemplo 1 (sem alias) Exemplo 2 (com alias) USE joindb SELECT buyer_name, s.buyer_id, qty FROM buyers AS b INNER JOIN sales AS s ON b.buyer_id = s.buyer_id GO USE joindb SELECT buyer_name, s.buyer_id, qty FROM buyers AS b INNER JOIN sales AS s ON b.buyer_id = s.buyer_id GO USE joindb SELECT buyer_name, sales.buyer_id, qty FROM buyers INNER JOIN sales ON buyers.buyer_id = sales.buyer_id GO USE joindb SELECT buyer_name, sales.buyer_id, qty FROM buyers INNER JOIN sales ON buyers.buyer_id = sales.buyer_id GO

31 Combinando dados de múltiplas Tabelas Fazendo Inner Joins Fazendo Outer Joins Fazendo Cross Joins Fazendo Joins de mais de Duas Tabelas Fazendo um Join de uma tabela com ela mesma (Self-Join)

32 USE joindb SELECT buyer_name, sales.buyer_id, qty FROM buyers INNER JOIN sales ON buyers.buyer_id = sales.buyer_id GO USE joindb SELECT buyer_name, sales.buyer_id, qty FROM buyers INNER JOIN sales ON buyers.buyer_id = sales.buyer_id GO Fazendo Inner Joins salesbuyer_idbuyer_idprod_idprod_idqtyqty buyersbuyer_namebuyer_name Adam Barr Sean Chai Eva Corets Erin OMelia buyer_idbuyer_id Resultbuyer_namebuyer_name Adam Barr Erin OMelia Eva Corets buyer_idbuyer_idqtyqty Erin OMelia Exemplo 1

33 USE joindb SELECT buyer_name, sales.buyer_id, qty FROM buyers LEFT OUTER JOIN sales ON buyers.buyer_id = sales.buyer_id GO USE joindb SELECT buyer_name, sales.buyer_id, qty FROM buyers LEFT OUTER JOIN sales ON buyers.buyer_id = sales.buyer_id GO Fazendo Outer Joins salesbuyer_idbuyer_idprod_idprod_idqtyqty buyersbuyer_namebuyer_name Adam Barr Sean Chai Eva Corets Erin OMelia buyer_idbuyer_id Result buyer_namebuyer_name Adam Barr Erin OMelia Eva Corets buyer_idbuyer_idqtyqty Erin OMelia Sean Chai NULL Exemplo 1

34 Fazendo Cross Joins USE joindb SELECT buyer_name, qty FROM buyers CROSS JOIN sales GO USE joindb SELECT buyer_name, qty FROM buyers CROSS JOIN sales GO Result buyer_namebuyer_name Adam Barr qtyqty Adam Barr 1003 Sean Chai 15 Sean Chai Sean Chai 11 Sean Chai 1003 Eva Corets sales buyer_idbuyer_idprod_idprod_idqtyqty buyers buyer_idbuyer_id buyer_namebuyer_name Adam Barr Sean Chai Eva Corets Erin OMelia Exemplo 1

35 Fazendo Joins de mais de duas tabelas SELECT buyer_name, prod_name, qty FROM buyers INNER JOIN sales ON buyers.buyer_id = sales.buyer_id INNER JOIN produce ON sales.prod_id = produce.prod_id GO SELECT buyer_name, prod_name, qty FROM buyers INNER JOIN sales ON buyers.buyer_id = sales.buyer_id INNER JOIN produce ON sales.prod_id = produce.prod_id GO produceprod_idprod_idprod_nameprod_name Apples Pears Oranges Bananas 5 5 Peaches buyersbuyer_idbuyer_id buyer_namebuyer_name Adam Barr Sean Chai Eva Corets Erin OMelia salesbuyer_idbuyer_id prod_idprod_id qtyqty Result buyer_namebuyer_name Erin OMelia Adam Barr Erin OMelia Adam Barr Eva Corets prod_nameprod_name Apples Pears Oranges Peaches qtyqty Exemplo 1

36 Fazendo um Self-Join USE joindb SELECT a.buyer_id AS buyer1, a.prod_id,b.buyer_id AS buyer2 FROM sales AS a JOIN sales AS b ON a.prod_id = b.prod_id WHERE a.buyer_id > b.buyer_id GO USE joindb SELECT a.buyer_id AS buyer1, a.prod_id,b.buyer_id AS buyer2 FROM sales AS a JOIN sales AS b ON a.prod_id = b.prod_id WHERE a.buyer_id > b.buyer_id GO sales b buyer_idbuyer_idprod_idprod_idqtyqty sales a buyer_idbuyer_idprod_idprod_idqtyqty Result buyer1buyer1 4 4 prod_idprod_idbuyer2buyer Exemplo 3

37 Combinando múltiplos Result Sets Use o Operador UNION para Criar um único Result Set a partir de múltiplas consultas Cada consulta deve ter: – Tipos de dados similares – Mesmo número de colunas – Colunas na Lista do Select na mesma ordem USE northwind SELECT (firstname + ' ' + lastname) AS name,city, postalcode FROM employees UNION SELECT companyname, city, postalcode FROM customers GO USE northwind SELECT (firstname + ' ' + lastname) AS name,city, postalcode FROM employees UNION SELECT companyname, city, postalcode FROM customers GO

38 USE northwind SELECT productname AS products, unitprice AS price, (unitprice * 1.1) AS tax INTO #pricetable FROM products USE northwind SELECT productname AS products, unitprice AS price, (unitprice * 1.1) AS tax INTO #pricetable FROM products Criando uma Tabela de um Result Set Use o comando SELECT INTO – Requer um nome exclusivo para a tabela – Pode-se criar uma tabela temporária local (#) ou global (##)

39 Subqueries Introdução Usando uma Subquery como uma Tabela Derivada Usando uma Subquery como uma Expressão Usando uma Subquery para correlacionar dados Usando as cláusulas EXISTS e NOT EXISTS

40 Introdução as Subqueries Para que usar Subqueries? – Quebrar um problema complexo numa série de passos lógicos – Para executar uma consulta que depende dos dados de uma outra consulta Porque usar Joins em vez de Subqueries – SQL Server tende a executar Joins mais rápido que Subqueries Como usar Subqueries

41 Usando uma Subquery como uma Tabela Derivada É um Recordset dentro de uma consulta que funciona como uma Tabela Toma o lugar de uma tabela na cláusula FROM É otimizada normalmente junto com o resto da consulta USE northwind SELECT T.orderid, T.customerid FROM ( SELECT orderid, customerid FROM orders ) AS T GO USE northwind SELECT T.orderid, T.customerid FROM ( SELECT orderid, customerid FROM orders ) AS T GO

42 Usando uma Subquery como uma Expressão É avaliada e tratada como uma expressão É executada somente uma vez USE pubs SELECT title, price,( SELECT AVG(price) FROM titles) AS average,price-(SELECT AVG(price) FROM titles) AS difference FROM titles WHERE type='popular_comp' GO USE pubs SELECT title, price,( SELECT AVG(price) FROM titles) AS average,price-(SELECT AVG(price) FROM titles) AS difference FROM titles WHERE type='popular_comp' GO

43 Usando uma Subquery para correlacionar dados Executando a Subquery correlacionada Simulando a cláusula JOIN Simulando a cláusula HAVING

44 Executando a Subquery correlacionada Back to Step 1 USE northwind SELECT orderid, customerid FROM orders AS or1 WHERE 20 < (SELECT quantity FROM [order details] AS od WHERE or1.orderid = od.orderid AND od.productid = 23) GO USE northwind SELECT orderid, customerid FROM orders AS or1 WHERE 20 < (SELECT quantity FROM [order details] AS od WHERE or1.orderid = od.orderid AND od.productid = 23) GO Consulta de fora passa os valores para a de dentro Consulta de dentro é executada com valores passados pela de fora Consulta de dentro retorna os valores para a consulta de fora O mesmo proceso é repetido para cada uma das linhas da consulta de fora Exemplo 1

45 Simulando a cláusula JOIN Subqueries correlacionadas podem produzir o mesmo resultado que um JOIN Joins permitem que o Query Optimizer determine como correlacionar os dados mais eficientemente USE pubs SELECT DISTINCT t1.type FROM titles AS t1 WHERE t1.type IN (SELECT t2.type FROM titles AS t2 WHERE t1.pub_id <> t2.pub_id) GO USE pubs SELECT DISTINCT t1.type FROM titles AS t1 WHERE t1.type IN (SELECT t2.type FROM titles AS t2 WHERE t1.pub_id <> t2.pub_id) GO Exemplo 1

46 Simulando a cláusula HAVING Subquery com o mesmo resultado de se usar HAVING Usando a cláusula HAVING sem a Subquery USE pubs SELECT t1.type, t1.title, t1.price FROM titles AS t1 WHERE t1.price > ( SELECT AVG(t2.price) FROM titles AS t2 WHERE t1.type = t2.type ) GO USE pubs SELECT t1.type, t1.title, t1.price FROM titles AS t1 WHERE t1.price > ( SELECT AVG(t2.price) FROM titles AS t2 WHERE t1.type = t2.type ) GO USE pubs SELECT t1.type, t1.title, t1.price FROM titles AS t1 INNER JOIN titles AS t2 ON t1.type = t2.type GROUP BY t1.type, t1.title, t1.price HAVING t1.price > AVG(t2.price) GO USE pubs SELECT t1.type, t1.title, t1.price FROM titles AS t1 INNER JOIN titles AS t2 ON t1.type = t2.type GROUP BY t1.type, t1.title, t1.price HAVING t1.price > AVG(t2.price) GO Exemplo 1 Exemplo 2

47 Usando uma Subquery correlacionada na cláusula HAVING Use a Subquery correlacionada na cláusula HAVING da consulta externa (Outer Query) USE pubs SELECT t1.type FROM titles t1 GROUP BY t1.type HAVING MAX(t1.advance) >= ALL (SELECT 2 * AVG(t2.advance) FROM titles t2 WHERE t1.type = t2.type) USE pubs SELECT t1.type FROM titles t1 GROUP BY t1.type HAVING MAX(t1.advance) >= ALL (SELECT 2 * AVG(t2.advance) FROM titles t2 WHERE t1.type = t2.type)

48 Usando as cláusulas EXISTS e NOT EXISTS Use com consultas correlacionadas Determine se o dados Existe ou não numa Lista de Valores Como o SQL Server processa a consulta – Consulta externa testa se existem linhas a retornar – Consulta interna retorna TRUE ou FALSE – Nenhum dado é produzido USE northwind SELECT lastname, employeeid FROM employees AS e WHERE EXISTS (SELECT * FROM orders AS o WHERE e.employeeid = o.employeeid AND o.orderdate = '9/5/97') GO USE northwind SELECT lastname, employeeid FROM employees AS e WHERE EXISTS (SELECT * FROM orders AS o WHERE e.employeeid = o.employeeid AND o.orderdate = '9/5/97') GO Exemplo 1

49 Exercícios 1. Fazer download do script instnwnd.sql de ftp://ftp.cefetes.br/Cursos/Informatica/ELE- BancosdeDados/Scripts ftp://ftp.cefetes.br/Cursos/Informatica/ELE- BancosdeDados/Scripts 2. Abrir o SQL Server Management Studio e executar o script para criar o banco Northwind 3. Verificar se o banco Northwind foi mesmo criado 4. Criar um diagrama de todas as tabelas do banco, organizando as tabelas como no próximo slide

50 Exercícios

51 Exercícios Básicos 5. Selecione as colunas FirstName e LastName da tabela Employees organizando a saída por Lastname 6. Selecione as colunas Title, FirstName e LastName da tabela Employees organizando a saída primeiro por Title e depois Lastname 7. Selecione as colunas Title, FirstName e LastName da tabela Employees organizando a saída primeiro pela coluna 1 e depois pela coluna 3 8. Selecione as colunas Title, FirstName e LastName da tabela Employees organizando a saída primeiro por Title em ordem ascendente e depois Lastname em ordem descendente 9. Selecione as colunas Title, FirstName e LastName da tabela Employees listando apenas os funcionários que não tenham o título de Sales Representative

52 Exercícios Básicos 10. Selecione as colunas FirstName e LastName da tabela Employees listando apenas os funcionários cujo Sobrenome comece com a letra "N" 11. Selecione as colunas FirstName e LastName da tabela Employees listando apenas os funcionários cujo Sobrenome comece da letra "N" em diante (O,P,Q,R...) 12. Selecione as colunas FirstName e LastName da tabela Employees listando apenas os funcionários cujo Nome comece da letra M, e tendo como segunda letra a letra a ou i 13. Selecione as colunas FirstName, LastName e Region da tabela Employees listando apenas os funcionários em que se conhece a região em que os mesmos estão localizados

53 Exercícios Básicos 14. Selecione as colunas FirstName e LastName da tabela Employees listando apenas os funcionários cujo Sobrenome comece com as letras de J a M 15. Selecione as colunas TitleOfCourtesy, FirstName e LastName da tabela Employees listando apenas os funcionários cujo TitleOfCourtesy comece pela letra M 16. Selecione as colunas TitleOfCourtesy, FirstName e LastName da tabela Employees listando apenas os funcionários cujo TitleOfCourtesy comece pela letra M, seguida por qualquer caracter e um sinal de ponto. 17. Selecione as colunas TitleOfCourtesy, FirstName e LastName da tabela Employees listando apenas os funcionários cujo TitleOfCourtes não seja "Ms." ou "Mrs."

54 Exercícios Básicos 18. Selecione as colunas FirstName e LastName da tabela Employees listando apenas os funcionários cujo TitleOfCourtesy comece pela letra M e cujo título seja de Sales Representative 19. Selecione as colunas City, FirstName e LastName da tabela Employees listando apenas os funcionários que vivem nas cidades de Seattle ou Redmond 20. Selecione as colunas FirstName e LastName da tabela Employees listando apenas os funcionários cujo título seja de Sales Representative e vivam nas cidades de Seattle ou Redmond

55 Exercícios Avançados 1. Retorne os nomes dos produtos que começam com as letras a, d, e de m a z, ordenados por nome 2. Retorne os nomes dos fornecedores que estão sem homepage informada 3. Mostre a lista de países dos clientes da empresa (tabela Customers), sem repetições 4. Mostre os nomes dos clientes que não fizeram pedidos 5. Mostre os nomes dos clientes que fizeram pedidos, informando a data em que os mesmos foram feitos 6. Mostre os nomes de todos os clientes que fizeram ou não pedidos, informando a data em que os pedidos foram feitos ou a data com o valor NULL caso o cliente nunca tenha feito um pedido

56 Exercícios Avançados 7. Mostre o nome de todos os clientes que nunca fizeram nenhum pedido, usando JOINS para resolver o problema 8. Mostre o nome de todos os clientes que nunca fizeram nenhum pedido, usando SUBQUERIES para resolver o problema 9. Gere uma lista de nomes de funcionários contendo a data dos pedidos feitos pelos mesmos e nome dos clientes que fizeram os pedidos 10. Gere uma lista de pedidos feitos em 1996 e 1997, contendo a descrição de todos os produtos vendidos e a quantidade vendida dos mesmos por pedido 11. Liste a quantidade total de itens de cada produto, vendidos até o presente momento 12. Liste a quantidade total de itens de cada produto, vendidos em 1996

57 Exercícios Avançados 13. Liste todos os produtos e quantidade totais vendidas, desde que tenham vendido mais que 3 unidades 14. Gere uma listagem contendo nomes de clientes fictícios que consistirão da combinação de nomes e sobrenomes de cada um dos clientes existentes 15. Mostrar quantos produtos existem em cada categoria, incluindo o nome o nome de cada categoria 16. Listar o valor total em vendas realizadas por empregado no mês de Abril/ Listar o nome e a soma dos valores de pedidos feitos para cada produto no mês de Março/1998. Listar somente os 10 mais pedidos em função do valor total pedido 18. Listar os 5 fornecedores que mais foram acionados no ano de 1997, por total de vendas. Mostrar o nome do fornecedor e o total da venda de cada um deles.

58 Exercícios Avançados 19. Listar o total de vendas realizadas mês a mês. Mostrar o mês/ano e o total de vendas realizadas naquele mês/ano 20. Gerar uma listagem de funcionários contendo o nome completo dos mesmos (Nome + Sobrenome) 21. Gerar uma listagem de funcionários contendo o nome completo do mesmos e o nome completo dos seus chefes imediatos 22. Exibir um ranking dos três países que mais compraram produtos desde Exiba uma listagem contendo o valor de comissão pago a cada vendedor, mês a mês, durante o ano de Supor que a comissão paga seja de 1% das vendas


Carregar ppt "Bancos de Dados SQL Server 2012 SQL – Consultas. SQL - Consultas Elementos Básicos do SQL Agrupamento e Sumarização Junção de dados de múltiplas tabelas."

Apresentações semelhantes


Anúncios Google