Baixe o app para aproveitar ainda mais
Prévia do material em texto
21/06/2022 01:14 Softblue https://www.softblue.com.br/course/submittest 1/4 ÁREA DO ALUNO Início Meus cursos Minhas trilhas Meus pedidos Meus dados Atendimento Sair SQL Completo Avaliação 1) Sobre visões é correto afirmar: * Marque todas as alternativas que respondem o enunciado da questão São comandos SELECT pré-programados para ficarem disponíveis no banco de dados. (alternativa correta) É 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) Visões ocupam muito espaço em disco, por isso devem ser utilizada com moderação. (alternativa incorreta) 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. 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? 4 (alternativa incorreta) 5 (alternativa correta) 3 (alternativa incorreta) Nenhuma das alternativas. (alternativa incorreta) 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 INSTRUTORES.ID = CURSOS.INS; 21/06/2022 01:14 Softblue https://www.softblue.com.br/course/submittest 2/4 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) Com base nas duas tabelas apresentadas abaixo, quantas linhas terá a tabela resultado da expressão SQL RIGHT JOIN existente logo após as tabelas? 2 (alternativa incorreta) 4 (alternativa incorreta) Nenhuma das alternativas. (alternativa incorreta) 5 (alternativa correta) 3 (alternativa incorreta) Resposta correta! Ao todo 5 linhas serão retornadas na tabela resultado, pois para cada um dos registros da tabela CURSOS (tabela que está no lado direito da expressão SQL) existirá um registro na tabela resultado, independente dos registros terem correspondente na tabela INSTRUTORES. A instrução RIGHT JOIN apresenta TODOS os registros da tabela a direita (RIGHT) apresentada no comando, incluindo aqueles cujo campo de relacionamento com a outra tabela esteja nulo. Observe que o registro do instrutor André aparece duas vezes na tabela resultado, pois dois registros correspondentes existem para seu ID na tabela CURSOS, e que no caso do registro do curso PHP, que apresenta o valor NULL na coluna INS, também aparece na tabela resultado, mas não apareceria se a tabela CURSOS estivesse no lado esquerdo da instrução RIGHT JOIN. 4) 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 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 RIGHT JOIN CURSOS ON INSTRUTORES.ID = CURSOS.INS; 21/06/2022 01:14 Softblue https://www.softblue.com.br/course/submittest 3/4 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 RIGHT JOIN JOIN USUARIOS ON LIVROS.EMPRESTOU_ID = USUARIOS.ID (alternativa incorreta) Nenhuma das alternativas. (alternativa incorreta) SELECT * FROM LIVROS FULL JOIN USUARIOS ON LIVROS.EMPRESTOU_ID = USUARIOS.ID (alternativa correta) SELECT * FROM LIVROS LEFT JOIN USUARIOS ON LIVROS.EMPRESTOU_ID = USUARIOS.ID (alternativa incorreta) SELECT * FROM LIVROS INNER JOIN USUARIOS ON LIVROS.EMPRESTOU_ID = USUARIOS.ID (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. 5) 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? 6 (alternativa correta) 3 (alternativa incorreta) 4 (alternativa incorreta) Nenhuma das alternativas. (alternativa incorreta) 5 (alternativa incorreta) Resposta incorreta! Ao todo 6 linhas serão retornadas na tabela resultado, pois para cada um dos registros da tabela CURSOS (tabela que está no lado direito da expressão SQL) existirá um registro na tabela resultado, independente dos registros terem correspondente na tabela INSTRUTORES contabilizando cinco linhas, e mais uma do registro do instrutor Fábio que não possui correspondente na tabela CURSOS. Retornar para a página do curso (/course/home/id/3) 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 FULL JOIN CURSOS ON INSTRUTORES.ID = CURSOS.INS; https://www.softblue.com.br/course/home/id/3 21/06/2022 01:14 Softblue https://www.softblue.com.br/course/submittest 4/4 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) (https://www.facebook.com/softbluecursos) (https://www.instagram.com/softbluecursos) (https://www.youtube.com/softbluecursos) CNPJ 06.860.085/0001-64 Política de Privacidade (/site/politicaprivacidade) © Softblue https://www.softblue.com.br/site/quemsomos https://www.softblue.com.br/blog https://www.softblue.com.br/site/certificados https://www.softblue.com.br/site/perguntasfrequentes https://www.softblue.com.br/site/formaspagamento https://www.softblue.com.br/site/planosempresariais https://www.softblue.com.br/site/contato https://www.softblue.com.br/site/certificadoshttps://www.softblue.com.br/site/garantia https://www.facebook.com/softbluecursos https://www.instagram.com/softbluecursos https://www.youtube.com/softbluecursos https://www.softblue.com.br/site/politicaprivacidade
Compartilhar