SQL Server 2012 SQL – Consultas

Slides:



Advertisements
Apresentações semelhantes
SQL Avançado Continuação
Advertisements

Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone: 9531 – 7555.
Sequences Marilde Santos. O que são Sequences? Valores sequenciais podem ser gerados automaticamente pelo Oracle com o uso de sequences. A sequence gera.
SQL Exercícios de Revisão Profa. Sandra de Amo Programa de Pós-graduação em Ciência da Computação – UFU
1 SQL: Aula 3. 2 Roteiro cláusulas order by e group by Outer Joins e valores null Criação de esquemas Modificação da base de dados Definição de Visões.
SQL – Consultas Básicas
MC542 Organização de Computadores Teoria e Prática
While While Condição // comandos End While. Exemplos While Var contador As Integer contador = 0 While (contador < 10) contador += 1 console.ConsoleWrite(contador)
Listas Encadeadas Circulares Listas Duplamente Encadeadas
SQL – Noções Gerais Por Márcia Jacyntha N. Rodrigues Lucena
Prof. José Fernando Rodrigues Júnior Pacotes Material original: Profa. Elaine Parros Machado de Sousa SCC Bancos de Dados e Suas Aplicações.
Procedimentos e Funções
SCC Bancos de Dados e Suas Aplicações
FORTRAN 90 Denise Yumi Takamura.
SQL Procedural Junho/2006.
SQL procedural – parte 2.
Elaboração de Consultas 3 de abril de Recuperação de Informação Cd_cliente CLIENTECONTATO Cd_cliente C1 C1 : Listar os clientes que tem contatos.
Subconsultas em SQL. Subconsulta Estrutura geral SELECT.... FROM.... WHERE [at] OPERADOR ( SELECT... FROM... [WHERE... ]) Declaração SELECT localizada.
Funções de Linha 17/04/06. Funções de Linha Gerar ou construir novo valor não existente na tabela inicial. Valor construído a partir de dados de uma ou.
Introdução à Consulta 24/3/06. Categorias de comandos DDL : estruturação de objetos de BD Ex. create table, drop index, alter table... DML: manipulação.
Funções de Linha 24/04/06. Funções de Linha Gerar ou construir novo valor não existente na tabela inicial. Valor construído a partir de dados de uma ou.
SQL-3. Novo contexto e necessidade de : Manipular imagens Outros tipos de dados além de texto e números Recuperação de dados mais complexos Níveis distintos.
Sql-3 ( final ).
Treinamento GP3 USP – GEFIM Abril de 2004 Alcides Pietro, PMP.
1. Equivalência entre portas 2. Derivação de expressões booleanas 3
Teste Funcional de Software
Mais sobre classes Baseada no Livro: Deitel&Deitel - C++ How To program Cap. 7 Prentice Hall 1994 SCE 213 Programação Orientada a Objetos, ICMC - USP 2.
Banco de Dados I Profa. Jiani Cardoso 2/2005
O Fluxo de Testes © Alexandre Vasconcelos
Formação de Administradores de Redes Linux LPI – level 1 SENAC TI Fernando Costa SQL (Structure Query Language)
UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias1 Bancos de Dados Mestrado em Engenharia de Computação área de concentração Geomática.
Tecnologia para Web JavaScript Enrique Pimentel Leite de Oliveira
Marco Antonio Montebello Júnior
Introdução à Probabilidade
The Data Warehouse Toolkit
Frações Professor: Graciano Pianezzer Beletti.
LINGUAGENS DE PROGRAMAÇÃO
Stored Procedure, Function and Trigger
Banco de dados Profª Kelly Medeiros.
Microsoft SQL Server 2008 SPARSE. Ambiente de teste Uma tabela é criada com 3 campos: CREATE TABLE [dbo].[Cliente_com_campos_basicos] ( [IdCliente] int.
Equipe de monitoria Aula prática 2. Apresentação do caso de estudo Conceitual Lógico Algumas informações iniciais Consultas e exercícios Surpresa... =)
Tópicos Especiais em Aprendizagem Reinaldo Bianchi Centro Universitário da FEI 2012.
Prof. Eduardo Mantovani Prof. Fábio de P. Santos AES 2007.
Exercícios de revisão.
Monitoria GDI Aula Prática
Monitoria GDI Aula Prática
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 30 (1) Empacotamento de Dados em MPI Tópicos: Buffer de Mensagem Empacotamento/Desempacotamento.
Bancos de Dados SQL Server 2012 SQL DML - Data Manipulation Language)
SQL Álvaro Vinícius de Souza Coêlho
Cronograma Formato do Comando SELECT – 1ª Seção Uso de Funções (DATE_FORMAT, DAY, MONTH, NOW, CONCAT, FORMAT, COUNT, AVG, MAX, MIN e FORMAT) AS DISTINCT.
SEGUNDA FASE / S2B MIC PERNAMBUCO SEGUNDA FASE / S2B MIC PERNAMBUCO
SEGUNDA FASE / S2B MIC PERNAMBUCO Banco de Dados Turma: Manhã / FIR Recife-PE
Funções ou procedures Professor Esp. Diego André Sant’Ana
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Cursor Professor Esp. Diego André Sant’Ana
Monitoria GDI Aula Prática
Desenvolvendo um script SQL
Treinamento sobre SQL.
RELATÓRIO CEMEC 06 COMPARAÇÕES INTERNACIONAIS Novembro 2013.
Baseado no material do Professor Raul Paradeda
Treinamento SQL Server
SEGUNDA FASE / S2B MIC PERNAMBUCO Banco de Dados Turma: Manhã / FIR Recife-PE
SELECT Professor: Virgílio Fries Müller www. vfm.com.br
Programação para Internet Aula 12 SQL (Comandos de Consulta ao BD)
Banco de Dados José Antônio da Cunha CEFET – RN.
BANCO DE DADOS Araújo Lima Set / 2018 Araújo.
MS-SQL Server Structure Query Language
SQL – COMANDOS DML Profª Rosana Traversa.
Módulo III Capítulo 3: Linguagem SQL
Transcrição da apresentação:

SQL Server 2012 SQL – Consultas 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 Subqueries

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

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

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] <select_list> FROM {<table_source>} [,…n] WHERE <search_condition>

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

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

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)

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

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

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

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

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

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

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

Ordenando Dados USE northwind Exemplo 1 USE northwind SELECT productid, productname, categoryid, unitprice FROM products ORDER BY categoryid, unitprice DESC GO productid productname categoryid unitprice 38 Cote de Blaye 1 263.5000 43 Ipoh Coffee 46.0000 2 Chang 19.0000 … 63 Vegie-spread 43.9000 8 Northwoods Cranberry Sauce 40.0000 61 Sirop d'érable 28.5000

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

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

Usando Literais USE northwind SELECT firstname, lastname ,'Identification number:', employeeid FROM employees GO First Last 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

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

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

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 SELECT TOP 5 WITH TIES orderid, productid, quantity Exemplo 1 Exemplo 2

Usando Funções de Agregação Aggregate function Description 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

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 Exemplo 1 USE northwind SELECT COUNT (*) FROM employees GO Exemplo 2 USE northwind SELECT COUNT(reportsto) FROM employees GO

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

Usando a cláusula GROUP BY USE northwind SELECT productid, orderid ,quantity FROM orderhist GO USE northwind SELECT productid ,SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid GO productid orderid quantity 1 5 10 2 25 3 15 30 productid total_quantity 1 15 2 35 3 45 Somente linhas que satisfazem a cláusula Where são agrupadas productid total_quantity 2 35 USE northwind SELECT productid ,SUM(quantity) AS total_quantity FROM orderhist WHERE productid = 2 GROUP BY productid GO

Usando a cláusula GROUP BY com a cláusula HAVING USE northwind SELECT productid, orderid ,quantity FROM orderhist GO SELECT productid, SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid HAVING SUM(quantity)>=30 GO productid total_quantity 2 35 3 45 orderid quantity 1 5 10 25 15 30

Usando as cláusulas COMPUTE e COMPUTE BY 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) BY productid COMPUTE SUM(quantity) GO productid orderid quantity 1 5 2 10 sum 15 25 35 3 30 45 95 productid orderid quantity 1 5 2 10 25 3 15 30 sum 95

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

Usando Aliases (apelidos) para Tabelas Exemplo 1 (sem alias) Exemplo 2 (com alias) 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, s.buyer_id, qty FROM buyers AS b INNER JOIN sales AS s ON b.buyer_id = s.buyer_id GO

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)

Fazendo Inner Joins Exemplo 1 sales buyers Result USE joindb SELECT buyer_name, sales.buyer_id, qty FROM buyers INNER JOIN sales ON buyers.buyer_id = sales.buyer_id GO Exemplo 1 sales buyer_id prod_id qty 1 4 3 2 5 15 37 11 1003 buyers buyer_name Adam Barr Sean Chai Eva Corets Erin O’Melia Result buyer_name Adam Barr Erin O’Melia Eva Corets buyer_id qty 1 4 3 15 5 37 11 1003

Fazendo Outer Joins Exemplo 1 sales buyers Result USE joindb SELECT buyer_name, sales.buyer_id, qty FROM buyers LEFT OUTER JOIN sales ON buyers.buyer_id = sales.buyer_id GO Exemplo 1 sales buyer_id prod_id qty 1 4 3 2 5 15 37 11 1003 buyers buyer_name Adam Barr Sean Chai Eva Corets Erin O’Melia Result NULL

Fazendo Cross Joins Result sales buyers Exemplo 1 USE joindb SELECT buyer_name, qty FROM buyers CROSS JOIN sales GO Result buyer_name Adam Barr qty 15 5 37 11 1003 Sean Chai Eva Corets ... sales buyer_id prod_id 1 4 3 2 buyers Erin O’Melia Exemplo 1

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 Exemplo 1 produce prod_id prod_name 1 2 3 4 Apples Pears Oranges Bananas 5 Peaches buyers buyer_id buyer_name Adam Barr Sean Chai Eva Corets Erin O’Melia sales qty 15 37 11 1003 Result

Fazendo um Self-Join sales b sales a Result Exemplo 3 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_id prod_id qty 1 4 3 2 5 15 37 11 1003 sales a Result buyer1 buyer2 Exemplo 3

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

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 (##) USE northwind SELECT productname AS products, unitprice AS price, (unitprice * 1.1) AS tax INTO #pricetable FROM products

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

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

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

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

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

Executando a Subquery correlacionada Consulta de fora passa os valores para a de dentro Consulta de dentro é executada com valores passados pela de fora 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 Exemplo 1 Consulta de dentro retorna os valores para a consulta de fora O mesmo proceso é repetido para cada uma das linhas da consulta de fora Back to Step 1

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 Exemplo 1 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

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 Exemplo 1 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 2

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)

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 Exemplo 1 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

Exercícios 1. Fazer download do script instnwnd.sql de 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

Exercícios

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’

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

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."

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

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

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

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/1997 17. 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.

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 1997 23. Exiba uma listagem contendo o valor de comissão pago a cada vendedor, mês a mês, durante o ano de 1997. Supor que a comissão paga seja de 1% das vendas