-
Notifications
You must be signed in to change notification settings - Fork 9.1k
Description
Instruções
Instruções de Entrega
Para a submissão dos exercícios, deverá ser entregue um único ficheiro com a extensão .sql.
Dentro do ficheiro, cada exercício deve ser resolvido seguindo o formato abaixo:
A pergunta ou o número do exercício deve ser incluído como um comentário SQL (iniciado com --).
Imediatamente abaixo do comentário, deve ser escrita a consulta SQL que resolve o exercício.
Exemplo de Formato:
-- Pergunta 1: [Enunciado da Pergunta 1 aqui]
SELECT ... ;
-- Pergunta 2: [Enunciado da Pergunta 2 aqui]
SELECT ... ;
-- E assim por diante para todas as questões.
Parte 1: Consultas Básicas (SELECT, WHERE, ORDER BY, TOP)
-
Listagem Simples: Selecione o nome do contato (C: ContactName) e o telefone (C: Phone) de todos os clientes (T: Customers) que moram em Londres.
-
Ordenação: Mostre todos os produtos (T: Products) que estão com o estoque (C: UnitsInStock) zerado, ordenados pelo nome do produto em ordem alfabética (C: ProductName).
-
Filtro com Datas: Liste todos os pedidos (T: Orders) que foram feitos no mês de maio de 1997. Ordene os resultados pela data do pedido (C: OrderDate), do mais recente para o mais antigo.
-
Uso do TOP: Identifique os 5 produtos mais caros da loja. A consulta deve retornar o nome do produto (C: ProductName) e o seu preço (C: UnitPrice).
-
Múltiplos Critérios: Encontre todos os funcionários (T: Employees) que foram contratados (C: HireDate) antes do ano de 1993 e que moram nos EUA (C: Country = 'USA').
Parte 2: Agregação e Agrupamento (Aggregate Functions, GROUP BY, HAVING)
6. Contagem Simples (COUNT): Quantos produtos ao todo são fornecidos pelo fornecedor (T: Supplier) de ID = 1?
-
Média de Preços (AVG): Qual é o preço médio de todos os produtos cadastrados na tabela T: Products? Dê um nome (alias) para a coluna de resultado como PrecoMedio.
-
Agrupamento (GROUP BY): Crie uma consulta que mostre a quantidade de clientes existentes em cada país (C: Country).
-
Soma (SUM) com Agrupamento: Calcule o valor total de itens em estoque (C: UnitsInStock) para cada categoria de produto (C: CategoryID). A consulta deve mostrar o C: CategoryID e a soma total.
-
Filtro de Grupos (HAVING): Liste todos os países que possuem mais de 7 clientes. A consulta deve mostrar o país e a contagem de clientes.
-
Consulta Complexa com Agregação: Mostre o C: ProductID e o valor total vendido (calculado como C: UnitPrice * C: Quantity) para cada produto na tabela T: Order Details. Liste apenas os produtos cujo valor total vendido ultrapasse $50.000 e ordene do maior para o menor valor.
Parte 3: Subconsultas e Cláusulas Adicionais
12. Uso de DISTINCT: Crie uma consulta que retorne todas as cidades (C: City) únicas para as quais já foram enviados pedidos (T: Orders).
-
Subconsulta com IN: Liste o nome de todos os produtos (T: Products) que são da categoria 'Beverages'. (Dica: primeiro, use uma subconsulta para encontrar o C: CategoryID de 'Beverages' na tabela T: Categories).
-
Subconsulta com Agregação: Mostre todos os produtos cujo preço unitário (C: UnitPrice) é maior que o preço médio de todos os produtos.
Parte 4: Manipulação de Dados (INSERT, UPDATE, DELETE)
15. Inserção (INSERT): Insira uma nova transportadora (T: Shipper) na sua tabela T: Shippers_Copia. O nome da empresa (C: CompanyName) deve ser "Loggi" e o telefone (C: Phone) "(11) 99999-9999".
-
Atualização (UPDATE): O telefone da "Loggi" mudou. Atualize o registro na tabela T: Shippers_Copia para o novo telefone "(11) 88888-8888".
-
Exclusão (DELETE): Exclua a transportadora chamada "Speedy Express" da sua tabela T: Shippers_Copia.
Parte 5: Criação e Alteração de Estruturas (DDL e Constraints)
18. Criação de Tabela (CREATE TABLE): Crie uma nova tabela chamada T: Auditoria com as seguintes colunas: C: LogID, C: NomeTabela, C: DataModificacao.
-
Adição de Constraints: Recrie a tabela T: Auditoria adicionando as restrições: PRIMARY KEY, NOT NULL e DEFAULT.
-
Alteração de Tabela (ALTER TABLE): Adicione uma nova coluna na tabela T: Auditoria chamada C: Usuario do tipo VARCHAR(50). Em seguida, remova esta mesma coluna da tabela.