0% acharam este documento útil (0 voto)
954 visualizações4 páginas

Área Do Aluno: Avaliação

Este documento contém cinco questões sobre SQL envolvendo operações de junção entre tabelas. As questões abordam conceitos como FULL JOIN, LEFT JOIN, RIGHT JOIN e como esses operadores afetam os resultados das consultas.

Enviado por

Pablo
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
954 visualizações4 páginas

Área Do Aluno: Avaliação

Este documento contém cinco questões sobre SQL envolvendo operações de junção entre tabelas. As questões abordam conceitos como FULL JOIN, LEFT JOIN, RIGHT JOIN e como esses operadores afetam os resultados das consultas.

Enviado por

Pablo
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

ÁREA DO ALUNO

Início Meus cursos Minhas trilhas Meus pedidos Meus dados Atendimento Sair

SQL Completo

Avaliação
1) Com base nas duas tabelas apresentadas abaixo, quantas linhas terá a tabela resultado da
expressão SQL FULL JOIN existente logo após as tabelas?
01 Tabela INSTRUTORES: Tabela CURSOS:
02 ------------------- ------------------
03 ID | NOME ID | INS | TITULO
04 1 | André 1 | NULL | Java
05 2 | NULL 2 | NULL | PHP
06 3 | Samuel 3 | 1 | MySQL
07 4 | Fábio 4 | NULL | SQL
08 5 | 2 | C++
09
10 SELECT * FROM INSTRUTORES FULL JOIN CURSOS USING (INS);

Nenhuma das alternativas. (alternativa correta)


2 (alternativa incorreta)
3 (alternativa incorreta)
4 (alternativa incorreta)
1 (alternativa incorreta)

Resposta incorreta!
O código em questão não executa pois o critério de união das tabelas USING indica
que o campo INS é um campo em comum entre as tabelas e deve ser utilizado, o
que não é verdade pois não existe o campo INS na tabela INSTRUTORES.

2) Com base nas duas tabelas apresentadas abaixo, quantas linhas terá a tabela resultado da
expressão SQL LEFT JOIN existente logo após as tabelas?
01 Tabela INSTRUTORES: Tabela CURSOS:
02 ------------------- ------------------
03 ID | NOME ID | INS | TITULO
04 1 | André 1 | 1 | Java
05 2 | Carlos 2 | NULL | PHP
06 3 | Samuel 3 | 1 | MySQL
07 4 | Fábio 4 | 3 | SQL
08 5 | 2 | C++
09
10 SELECT * FROM INSTRUTORES LEFT JOIN CURSOS ON [Link] = [Link];

Nenhuma das alternativas. (alternativa incorreta)


5 (alternativa correta)
4 (alternativa incorreta)
3 (alternativa incorreta)
2 (alternativa incorreta)

Resposta correta!
Ao todo 5 linhas serão retornadas na tabela resultado, pois para cada um dos
registros da tabela INSTRUTORES (tabela que está no lado esquerdo da expressão
SQL) existirá um registro na tabela resultado, independente dos registros terem
correspondente na tabela CURSOS. Isso quer dizer que o registro do instrutor Fábio aparece na
tabela resposta, mesmo sem cursos correspondentes. A instrução LEFT JOIN apresenta
TODOS os registros da tabela a esquerda (LEFT) apresentada no comando, incluindo aqueles
que tenham mais de um relacionamento com a outra tabela. Observe que o registro do
instrutor André aparece duas vezes na tabela resultado, pois dois registros correspondentes
existem para seu ID na tabela CURSOS. O registro do curso de PHP não aparece nesta tabela
resultado, mas apareceria se a instrução fosse RIGHT JOIN, que neste caso traria todos os
registros da tabela a direita, independente de haver relacionamentos com a outra tabela.

3) Suponha uma tabela LIVROS e a tabela USUARIOS, e suponha o relacionamento entre elas onde
o campo EMPRESTOU_ID da tabela LIVROS representa o valor do campo ID da tabela USUARIOS,
armazenando o ID do usuário que emprestou o livro da biblioteca, ou então o valor NULL no caso
do livro estar disponível na biblioteca. Qual a melhor forma de construir um SELECT de união
entre estas tabelas, visando trazer os dados de todos os livros e de todos os usuários,
independente se os livros estão locados ou não?
SELECT * FROM LIVROS FULL JOIN USUARIOS ON LIVROS.EMPRESTOU_ID =
[Link] (alternativa correta)
SELECT * FROM LIVROS RIGHT JOIN JOIN USUARIOS ON LIVROS.EMPRESTOU_ID =
[Link] (alternativa incorreta)
SELECT * FROM LIVROS INNER JOIN USUARIOS ON LIVROS.EMPRESTOU_ID =
[Link] (alternativa incorreta)
Nenhuma das alternativas. (alternativa incorreta)
SELECT * FROM LIVROS LEFT JOIN USUARIOS ON LIVROS.EMPRESTOU_ID =
[Link] (alternativa incorreta)

Resposta correta!
Para que os registros de ambas as tabelas constem no resultado, é necessário que
um FULL JOIN seja utilizado garantindo que todos os registros, mesmo os sem
relacionamento entre as tabelas devido ao campo EMPRESTOU_ID sejam
apresentados.

4) Sobre visões é correto afirmar:


* Marque todas as alternativas que respondem o enunciado da questão
Visões ocupam muito espaço em disco, por isso devem ser utilizada com moderação.
(alternativa incorreta)
É possível construir visões de relacionamento entre tabelas (JOINS). (alternativa correta)
Ao realizar um comando DELETE em uma visão, ele é propagado para deletar os dados das
tabelas que compõem a visão. (alternativa incorreta)
Não armazenam dados. (alternativa correta)
São comandos SELECT pré-programados para ficarem disponíveis no banco de dados.
(alternativa correta)

Resposta incorreta!
Visões não armazenam dados, por isso não ocupam espaço em disco. São
comandos SELECT pré-programados, podendo utilizar JOINS para a montagem de
visões. Um comando DELETE em uma visão não é executado, e não é propagado
para as tabelas que compõem a visão, pois uma visão não é uma tabela, mas sim, uma
expressão SELECT apenas.

5) Suponha uma tabela LIVROS e a tabela USUARIOS, e suponha o relacionamento entre elas onde
o campo EMPRESTOU_ID da tabela LIVROS representa o valor do campo ID da tabela USUARIOS,
armazenando o ID do usuário que emprestou o livro da biblioteca, ou então o valor NULL no caso
do livro estar disponível na biblioteca. Qual a melhor forma de construir um SELECT de união
entre estas tabelas, visando trazer os dados de todos os livros, independente de estarem locados
ou não?
SELECT * FROM LIVROS INNER JOIN USUARIOS ON LIVROS.EMPRESTOU_ID =
[Link] (alternativa incorreta)
Nenhuma das alternativas. (alternativa incorreta)
SELECT * FROM LIVROS LEFT JOIN USUARIOS ON LIVROS.EMPRESTOU_ID =
[Link] (alternativa correta)
SELECT * FROM LIVROS FULL JOIN USUARIOS ON LIVROS.EMPRESTOU_ID =
[Link] (alternativa incorreta)
SELECT * FROM LIVROS RIGHT JOIN JOIN USUARIOS ON LIVROS.EMPRESTOU_ID =
[Link] (alternativa incorreta)

Resposta correta!
Para que todos os livros constem no resultado, independente de estarem
relacionados por meio de locação com algumregistro da tabela USUARIOS, o
comando LEFT JOIN deve ser utilizado, com a tabela LIVROSem seu lado
esquerdo (antes do parâmetro LEFT JOIN). Se desejar utilizar o RIGHT JOIN, é necessárioque
a tabela LIVROS permaneça do lado direito do parâmetro para obter o mesmo resultado.

Retornar para a página do curso (/course/home/id/3)

Sobre Nós (/site/quemsomos)


Blog (Fire in the Code) (/blog)
Certificado (/site/certificados)
Dúvidas Frequentes (/site/perguntasfrequentes)
Formas de Pagamento (/site/formaspagamento)
Planos Empresariais (/site/planosempresariais)
Contato (/site/contato)
(/site/certificados) (/site/garantia)

([Link]
([Link] ([Link]

CNPJ 06.860.085/0001-64
Política de Privacidade (/site/politicaprivacidade)
© Softblue

Você também pode gostar