Buscar

Atividade A4

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1. A criação de consultas em um banco de dados através do comando SELECT 
pode utilizar diversos recursos, ordenação, agrupamentos, filtros e outros. Um 
destes recursos, que permite consultas mais avançadas, é o uso de 
subconsultas em que um comando de SELECT pode conter um outro comando 
SELECT em alguma de suas outras cláusulas. 
Em um sistema de uma loja, imagine que existe uma tabela de COMPRAS com 
os seguintes dados. 
 
 
NOME DATA 
Renato Nogueira 12/03/2019 
Renato Nogueira 21/03/2019 
Renato Nogueira 25/04/2019 
Rodrigo Gonçalves 14/03/2019 
Rodrigo Gonçalves 04/04/2019 
Vanessa Aquino 16/03/2019 
Vanessa Aquino 10/04/2019 
 
 
 Fonte: Elaborado pelo Autor (2019) 
 
Para avaliar o volume de vendas dos clientes, o setor de marketing solicitou uma 
listagem com os clientes e o seu volume total de compras e ordenados pelo volume de 
compras em ordem decrescente. A consulta que reflete esta necessidade do setor de 
marketing é: 
Resposta correta. A alternativa está correta. Perceba que a subconsulta 
realiza a totalização de vendas e abrevia o somatório SUM(VLR_COMPRA) 
como TOTAL. Este campo é o empregado na ordenação com a palavra 
DESC, em ordem decrescente, os maiores primeiro. 
SELECT * 
 FROM (SELECT NOME, SUM(VLR_COMPRA) as TOTAL 
 FROM COMPRAS) AS 
VOLUME_COMPRAS ORDER BY VLR_COMPRA ASC 
SELECT * 
 FROM (SELECT NOME, SUM(VLR_COMPRA) as TOTAL 
 FROM COMPRAS) AS 
VOLUME_COMPRAS ORDER BY VLR_COMPRA DESC 
SELECT * 
 FROM (SELECT NOME, AVG(VLR_COMPRA) as TOTAL 
 FROM COMPRAS) AS 
VOLUME_COMPRAS ORDER BY TOTAL DESC 
SELECT * 
 FROM (SELECT NOME, AVG(VLR_COMPRA) as TOTAL 
 FROM COMPRAS) AS 
VOLUME_COMPRAS ORDER BY VLR_COMPRA DESC 
• SELECT * 
 FROM (SELECT NOME, SUM(VLR_COMPRA) as TOTAL 
 FROM COMPRAS) AS 
VOLUME_COMPRAS ORDER BY TOTAL DESC 
 PRÓXIMA QUESTÃO 
2. Uma cláusula “group by”, parte do comando SELECT, permite criar 
agrupamentos, isto é, vários registros com os mesmos valores são combinados 
em uma linha e os valores dos outros campos podem ser resumidos através de 
funções de agregação, gerando cálculo de totais, contagens, médias e outros. 
Em um sistema de livraria, existe uma tabela LIVRO que contém os seguintes 
campos: 
 
LIVRO (COD_LIVRO, TITULO, AUTOR, VALOR) 
 
 
Para recuperar a lista dos autores com o total de títulos de sua autoria 
presentes na livraria e o valor médio dos valores de seus títulos, a consulta 
deve ser: 
Resposta correta. A alternativa está correta pois o agrupamento (group by) 
ocorre por AUTOR que é o campo junto ao SELECT e é requisitado 
contagem e média por autor tratadas com as funções de contagem 
(COUNT(*) ) e a média (AVG(VALOR) ) aplicadas corretamente. 
SELECT AUTOR, COUNT(*), MEDIA(VALOR) FROM LIVRO GROUP BY 
AUTOR 
• SELECT AUTOR, COUNT(*), AVG(VALOR) FROM LIVRO GROUP BY 
AUTOR 
SELECT TITULO, SUM(*), AVG(VALOR) FROM LIVRO 
GROUP BY TITULO 
SELECT AUTOR, SUM(*), MEDIA(VALOR) FROM LIVRO GROUP BY 
AUTOR 
SELECT TITULO, COUNT(*), AVG(VALOR) FROM LIVRO GROUP BY 
TITULO 
 PRÓXIMA QUESTÃO 
3. Os bancos de dados permitem que dados básicos, provenientes dos processos 
operacionais de um negócio, possam ser processados e sumarizados para se 
obter informações de nível gerencial e estratégico. Por exemplo, a quantidade 
de carros locados por semana em uma locadora, a quantidade de alunos 
matriculados em uma escola, além de outras situações ilustram o que pode ser 
processado facilmente com consultas via SELECT. 
Uma determinada Fintech realiza empréstimos para pessoas de uma 
comunidade e a tabela EMPRESTIMO mostrada a seguir apresenta os 
registros de empréstimos realizados: 
CPF Data 
02311220012 10/04/2019 
91311770028 13/04/2019 
84911560025 21/04/2019 
73923560458 23/04/2019 
64821569228 02/05/2019 
 
 
A consulta que calcula o total de empréstimo em reais realizado pela Fintech é: 
Resposta correta. A alternativa está correta pois basta que seja usada a 
função SUM associada ao campo VALOR totalizando toda a tabela (sem 
group by). 
SELECT AVG(valor) from EMPRESTIMO 
SELECT SUM(valor) from EMPRESTIMO GROUP BY SEXO 
• SELECT SUM(valor) from EMPRESTIMO 
SELECT count(valor) from EMPRESTIMO 
SELECT count(valor) from EMPRESTIMO GROUP BY SEXO 
 PRÓXIMA QUESTÃO 
4. Dados em tabelas diferentes podem compor um conjunto de resultados em um 
comando de SELECT através das junções. Alguns tipos de junções são as 
junções internas e as junções externas, estas últimas podem ser pela esquerda 
ou pela direita. 
Em um sistema de uma universidade existe o cadastro de Alunos e o de 
Cursos, onde em aluno pode conter apenas um curso e em curso pode conter 
vários cursos. Em uma consulta foi feita uma junção (join) entre as tabelas 
Alunos e Cursos e na consulta SELECT, Alunos e Cursos estão escritas nesta 
ordem (Alunos primeiro, antes de Cursos). O resultado da consulta está 
expresso na tabela a seguir: 
Matrícula Nome C 
322871 Joana Vieira 2 
322609 Márcio Nogueira 2 
212320 Cristiano Azevedo 1 
212201 Lúcia Vergamini 1 
NULL NULL 4 
 
Quadro - Resultado de consulta com junção entre Alunos e Cursos 
Fonte: Elaborado pelo autor (2019). 
Qual foi a junção realizada nesta consulta? 
Resposta correta. A resposta está correta pois perceba que na última linha 
existe o curso Gestão Ambiental que não possui aluno correspondente, e o 
curso está a direita na escrita do SELECT porque aparece depois de aluno 
(está à esquerda). E se o campo de aluno ficou NULL é por que os valores 
direita prevaleceram (right outer join). 
Join 
Left Outer Join 
Full Join 
• Right Outer Join 
Inner Join 
 PRÓXIMA QUESTÃO 
5. O uso de agrupamentos é um recurso utilizado ao criar consultas com SELECT 
para sumarizar dados e realizar contabilizações ou totalizações, e a cláusula 
usada é o GROUP BY. Uma demanda comum é, ao realizar agrupamentos, 
realizar algum filtro sobre os campos calculados. Por exemplo, ao avaliar os 
clientes e o total de compras calculado via uma função SUM, pode-se querer 
filtrar apenas os clientes com este volume de compras acima de R$500,00. 
A palavra chave usada na cláusula que permite realizar este tipo de filtro sobre 
campos calculados por funções de agregação é a: 
 Resposta correta. A alternativa está correta. A cláusula HAVING é a 
alternativa que se tem para realizar filtro sobre um campo calculado. Por 
exemplo, para o caso do exemplo, uma cláusula having seria “HAVING 
SUM(VLR_COMPRA) >= 500”. 
ORDER 
• HAVING 
WHERE 
INNER 
FROM 
 PRÓXIMA QUESTÃO 
6. O comando SELECT é bastante versátil e por meio das suas cláusulas de 
WHERE, ORDER BY, GROUP BY, JOIN permite especificar filtros, 
ordenações, agrupamentos e junções respectivamente. Estes e outros 
recursos oferecem suporte ao usuário para escrever suas consultas. 
Em relação a algumas das cláusulas, comandos e palavras chave para escrita 
dos comandos, realize a associação entre os itens a seguir e as afirmações na 
sequência: 
 
I. HAVING 
II. DESC 
III. AVG 
IV. LEFT 
 
Associe as funções de agregação com as afirmações sobre estes comandos: 
 
( ) Permite especificar qual o tipo de junção deve ser executada 
( ) Estabelece ordem decrescente na cláusula ORDER BY 
( ) Função de agregação que pode ser usada com GROUP BY 
( ) Permite editar filtros em consultas com GROUP BY 
 
Assinale a alternativa que apresenta a sequência correta: 
Resposta correta. A alternativa está correta. Comentando na sequência. O 
item IV, LEFT é usado junto comOUTER JOIN (LEFT OUTER JOIN) para 
especificar um certo tipo de junção. O item II (DESC) é usado com os 
campos na cláusula ORDER BY para especificar o ordenação decrescente. 
Caso a ordenação seja crescente, a palavra seria ASC. Item III (AVG) é de 
fato uma função de agregação para cálculo de média. E o item I (HAVING) 
permite filtrar valores provenientes de cálculo de função agregada em 
consultas que possuem o group by. 
I, III, II, IVI 
I, IV, II, III 
• IV, II, III, I 
II, III, I, IV 
III, I, IV, II 
 PRÓXIMA QUESTÃO 
7. O comando de SELECT é um dos comandos de DML (Data Manipulation 
Language) responsável por recuperar os registros de tabelas e ele possui 
vários recursos como filtros, ordenação, subconsultas e junções, além de 
outros e isso permite que este comando atenda às mais variadas necessidade 
de informação de seus usuários. 
Em um sistema de Locadora, um determinado gerente solicitou à equipe de 
Tecnologia de Informação uma listagem com o volume de locações de carros 
organizadas por modelo de carro. A listagem apresenta cada modelo e para 
cada modelo apresenta a quantidade de locações. 
A cláusula do comando SELECT que atende esta demanda de avaliar a 
quantidade de locações por modelo de carro é o: 
Resposta correta. A alternativa está correta, a cláusula de GROUP BY no 
comando de SELECT processa os agrupamentos em que os registros com 
o mesmo valor de modelo são agrupados e com a contabilização (COUNT) 
associado a algum outro campo. Portanto, para cada modelo serão 
contabilizadas as locações como requer o enunciado. 
RIGHT OUTER JOIN 
ORDER BY 
• GROUP BY 
FROM 
LIKE 
 PRÓXIMA QUESTÃO 
8. Uma visão (view) é um dos componentes que pode ser criado em um banco de 
dados junto com as tabelas, stored procedures, usuários e outros. Uma view, 
por ser um componente que ajuda a estruturar a forma como os dados são 
consultados, é definido por comandos de DDL e existe uma forma e comando 
específico para esta criação. 
Sobre o comando para criação de Views, analise as sentenças a seguir e 
assinale (V) para a(s) verdadeira(s) e (F) para a(s) falsa(s). 
 
I. ( ) O comando para a criação de uma view é o “ADD VIEW” 
II. ( ) Campos das views precisam ter os mesmos nomes da consulta usada 
para defini-la 
III. ( ) Ao ser criada, os dados da view são copiados para uma estrutura própria 
IV. ( ) Uma view pode ser criada com base em outra view 
 
A partir das associações feitas anteriormente, assinale a alternativa que 
apresenta a sequência correta: 
Resposta correta. A alternativa é a correta. Na sequência dos itens, o item I 
é falso, o comando para criação de view é “CREATE VIEW”, análogo à 
criação de tabela. O item II é falso, os campos das views podem ter nomes 
mais intuitivos, diferentes dos campos de tabelas que muitas vezes são 
“codificados”. O item III é falso, as views não possuem dados, elas 
simplesmente usam os dados das tabelas como se fosse uma “tabela 
virtual”. O item IV é verdadeiro, de fato uma view pode conter outra view em 
sua definição. 
F, V, V, V. 
V, F, F, V. 
F, F, F, F. 
• F, F, F, V. 
V, F, F, F. 
 PRÓXIMA QUESTÃO 
9. O comando SELECT pode conter várias cláusulas, por exemplo, para indicar 
as tabelas fonte dos dados (FROM), para estabelecer os filtros (WHERE), para 
ordenação dos dados (ORDER BY). Estas cláusulas e o emprego de diversos 
tipos de recursos torna este comando bastante útil para expressar as 
necessidades de informações de usuários de um banco de dados. 
 
A respeito dos recursos para construção de consultas avançadas com o 
SELECT, analise as sentenças a seguir e assinale (V) para a(s) verdadeira(s) e 
(F) para a(s) falsa(s): 
 
I. ( ) Subconsultas permitem que um comando de SELECT contenha outro 
comando de SELECT interno. Um exemplo, é usar subconsultas com um 
operador IN. 
II.( ) Os agrupamentos permitem resumir os dados agrupando registros, por 
exemplo, podemos agrupar os clientes por bairro e os bairros serão os 
agrupamentos 
III. ( ) Funções de agregação permite que os dados sejam consultados de 
forma mais simples, com um mecanismo análogo a uma tabela virtual 
IV. ( ) As junções são cálculos que permitem realizar por exemplo 
contabilizações, cálculo de média, maior valor e outros 
 
A partir das associações feitas anteriormente, assinale a alternativa que 
apresenta a sequência correta: 
Resposta correta. A alternativa está correta. O item I é verdadeiro pois 
subconsultas permite aninhar comandos SELECT, um comando SELECT 
pode conter outro mais interno e uma das formas usadas é de fato com o 
operador IN. O item II é verdadeiro pois agrupamentos resumem dados 
juntando registros com valores iguais nos campos do agrupamento e 
aplicando funções de agregação nos outros campos. O Item III é falso pois 
o mecanismo semelhante a uma tabela virtual que facilita o uso de 
consultas é uma VIEW e não as funções agregadas que servem para 
cálculos como totalização e contabilização. O item IV é falso pois as 
junções servem para combinar tabelas através das chaves estrangeiras. O 
recurso que realiza contabilizações são as funções de agregação. 
• V, V, F, F. 
F, F, V, V. 
F, F, V, F. 
V, V, F, V. 
F, F, F,F. 
 PRÓXIMA QUESTÃO 
10. A modelagem de um banco de dados permite compreender como as tabelas 
estão relacionadas entre si, permite identificar chaves primárias e as chaves 
estrangeiras envolvidas nos relacionamentos e assim serve de suporte para 
construção de consultas, especificamente para saber quais campos usar em 
junções. 
 
Em um banco de dados, a parte referente ao cadastro de produtos associado 
ao itens de compras (tabela PRODUTO_COMPRA) está mostrado a seguir. 
 
 Fonte: Elaborado pelo Autor (2019) 
 
Em certo setor da empresa, houve a necessidade de recuperar todos os 
produtos (com sua descrição e a descrição da sua categoria) que possuem 
compra e apenas aqueles que de fato possuem compras associadas e que 
possuem a categoria cadastrada. A cláusula de junção após a palavra chave 
FROM na consulta deve ser: 
Resposta correta. A alternativa está correta pois pela especificação da 
consulta, que envolve recuperar todos os produtos e apenas os produtos 
que possuem compras associadas e com as categorias cadastradas deve 
ser expressa como INNER JOIN tanto entre as tabelas CATEGORIA e 
PRODUTO quanto também com PRODUTO_COMPRA e que está sendo 
feita nesta resposta. 
FROM (CATEGORIA as C RIGHT OUTER JOIN PRODUTO as P 
.ON C.COD_CATEGORIA = P.COD_CATEGORIA) 
RIGHT OUTER JOIN PODUTO_COMPRA AS PC ON P.COD_PRODUTO = 
PC.COD_PRODUTO) 
FROM (CATEGORIA as C LEFT OUTER JOIN PRODUTO as P 
.ON C.COD_CATEGORIA = P.COD_CATEGORIA) 
INNER JOIN PODUTO_COMPRA AS PC ON P.COD_PRODUTO = 
PC.COD_PRODUTO) 
FROM (CATEGORIA as C INNER JOIN PRODUTO as P 
.ON C.COD_CATEGORIA = P.COD_CATEGORIA) 
LEFT OUTER JOIN PODUTO_COMPRA AS PC ON P.COD_PRODUTO = 
PC.COD_PRODUTO) 
FROM (CATEGORIA as C RIGHT OUTER JOIN PRODUTO as P 
.ON C.COD_CATEGORIA = P.COD_CATEGORIA) 
INNER JOIN PODUTO_COMPRA AS PC ON P.COD_PRODUTO = 
PC.COD_PRODUTO) 
• FROM (CATEGORIA as C INNER JOIN PRODUTO as P 
.ON C.COD_CATEGORIA = P.COD_CATEGORIA) 
INNER JOIN PODUTO_COMPRA AS PC ON P.COD_PRODUTO = 
PC.COD_PRODUTO)

Continue navegando