Baixe o app para aproveitar ainda mais
Prévia do material em texto
29/03/2021 Estácio: Alunos https://simulado.estacio.br/alunos/?p0=147240018&user_cod=2726843&matr_integracao=202003279714 1/4 Considere o banco de dados relacional de uma escola no qual as chaves primárias e estrangeiras estão sublinhadas. PROFESSOR (ID_PROF, CPF, NOME) DISCIPLINA (ID_DISC, CARGA_HOR, NOME, ID_PROF) Dentre os comandos abaixo, selecione aquele que mostra os nomes de todos os professores e as disciplinas às quais estão relacionados. Se o professor não estiver relacionado a nenhuma disciplina seu nome deve aparecer na relação. Disciplinas sem professores relacionados não deve ser listada. Nenhuma outra informação além do nome do professor e da disciplina deve ser listada. Considere o banco de dados relacional de uma escola no qual as chaves primárias e estrangeiras estão sublinhadas. PROFESSOR (ID_PROF, CPF, NOME) DISCIPLINA (ID_DISC, CARGA_HOR, NOME, ID_PROF) Dentre os comandos abaixo, selecione aquele que mostra somente o nome do professor e o nome da disciplina ao qual o professor está relacionado. Nomes dos professores sem relação com disciplinas e nomes de disciplinas sem relação com professor não devem aparecer. FUNDAMENTOS DE BANCO DE DADOS Lupa Calc. CCT0814_A9_202003279714_V1 Aluno: FLÁVIO REIS DA FONSECA Matr.: 202003279714 Disc.: FUND.BANCO DADOS 2021.1 - F (GT) / EX Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. SELECT P.NOME, D.NOME FROM DISCIPLINA D INNER JOIN PROFESSOR P ON P.ID_PROF = D.ID_PROF SELECT P.NOME, D.NOME FROM PROFESSOR P LEFT JOIN DISCIPLINA D ON P.ID_PROF = D.ID_PROF SELECT P.NOME, D.NOME FROM PROFESSOR P INNER JOIN DISCIPLINA D ON P.ID_PROF = D.ID_PROF SELECT * FROM PROFESSOR P, DISCIPLINA D SELECT P.NOME, D.NOME FROM DISCIPLINA D LEFT JOIN PROFESSOR P ON P.ID_PROF = D.ID_PROF Explicação: Para retornar todos os professores é necessário fazer left join com a tabela professores à esquerda. 2. javascript:voltar(); javascript:voltar(); javascript:diminui(); javascript:aumenta(); javascript:calculadora_on(); 29/03/2021 Estácio: Alunos https://simulado.estacio.br/alunos/?p0=147240018&user_cod=2726843&matr_integracao=202003279714 2/4 Baseado no modelo de banco de dados mostrado a seguir: FILIAL(idfilial(PK), nome, cidade,endereço,telefone) FUNCIONARIO(idfuncionario(PK),nome,endereço,telefone,salario,idfilial) CLIENTE(idcliente(PK),nome,cpf,endereço,telefone,cidade) CLIENTE_ESPECIAL(idcliente(PK),Km,desconto) CARRO(idcarro(PK),placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) ALUGUEL(NF(PK),idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario) O nome dos clientes que mesmo cadastrados no banco de dados da Locadora NÃO fizeram nenhum aluguel? Abaixo segue parte do esquema do banco de dados Shark, sabendo-se que os atributos em negrito e sublinhados são chaves primárias e os atributos em itálico são chaves estrangeiras: ESPECIE (IDESPECIE, NOME_CIENTIFICO, DENTICAO, STATUS_EXTINCAO, HABITAT, TIPOREPRODUCAO) CAPTURA (NUMCAPTURA, IDEMB, IDTUBARAO, CODLOCAL, LATITUDE, LONGITUDE, DATA, TEMPAGUA) TUBARAO (IDTUBARAO, IDESPECIE, COMPRIMENTO, SEXO) Assinale a alternativa abaixo que representa uma consulta que exibe o nome científico e o sexo dos tubarões correlacionados corretamente. SELECT * FROM PROFESSOR P, DISCIPLINA D SELECT * FROM PROFESSOR P, DISCIPLINA D WHERE P.ID_PROF = D.ID_PROF SELECT P.NOME, D.NOME FROM PROFESSOR P, DISCIPLINA D WHERE P.ID_PROF = D.ID_PROF SELECT P.NOME, D.NOME FROM PROFESSOR P, DISCIPLINA D SELECT P.NOME, D.NOME FROM PROFESSOR P, DISCIPLINA D HAVING P.ID_PROF = D.ID_PROF Explicação: A sintaxe tradicional de inner join tem o seguinte formato: SELECT FROM tabela1, tabela2 WHERE ; 3. SELECT c.nome cliente FROM aluguel a INNER JOIN cliente c ON a.idcliente=c.idcliente where a.idcliente IS NULL SELECT c.nome cliente FROM aluguel a, cliente c where a.idcliente=c.idcliente SELECT c.nome cliente FROM aluguel a RIGHT JOIN cliente c ON a.idcliente=c.idcliente where a.idcliente IS NULL SELECT c.nome cliente FROM aluguel a LEFT JOIN cliente c ON a.idcliente=c.idcliente where a.idcliente IS NULL SELECT c.nome cliente FROM aluguel a, cliente c ON a.idcliente=c.idcliente Explicação: Como precisamos obter os não relacionados necessitamos fazer uma junção exterior 4. SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE E CROSS JOIN TUBARAO T ON E.IDESPECIE = T.IDESPECIE; SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE JOIN TUBARAO; SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE E INNER JOIN TUBARAO T ON E.IDESPECIE = T.IDESPECIE; SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE E NATURAL JOIN TUBARAO T ON E.IDESPECIE = T.IDESPECIE; SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE E, TUBARAO T; Explicação: A consulta deseja recuperar os seguintes campos: 29/03/2021 Estácio: Alunos https://simulado.estacio.br/alunos/?p0=147240018&user_cod=2726843&matr_integracao=202003279714 3/4 Baseado no modelo de banco de dados mostrado a seguir: FILIAL(idfilial(PK), nome, cidade,endereço,telefone) FUNCIONARIO(idfuncionario(PK),nome,endereço,telefone,salario,idfilial) CLIENTE(idcliente(PK),nome,cpf,endereço,telefone,cidade) CLIENTE_ESPECIAL(idcliente(PK),Km,desconto) CARRO(idcarro(PK),placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) ALUGUEL(NF(PK),idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario) O nome dos clientes que são cadastrados como especiais? Qual o tipo de junção que retorna apenas as linhas relacionadas em duas tabelas? - nome científico: encontra-se na tabela Espécie - sexo: encontra-se na tabela Tubarão. Sendo assim temos que realizar uma junção interior. 5. SELECT c.nome cliente FROM cliente c RIGHT JOIN cliente_especial ce ON c.idcliente=ce.idcliente SELECT c.nome cliente FROM cliente c INNER JOIN cliente_especial ce ON c.idcliente=ce.idcliente SELECT c.nome cliente FROM cliente c LEFT JOIN cliente_especial ce ON c.idcliente=ce.idcliente SELECT c.nome cliente FROM cliente c, cliente_especial ce ON c.idcliente=ce.idcliente SELECT c.nome cliente FROM cliente c INNER JOIN cliente_especial ce Explicação: Para sabermos o nome dos clientes especiais temos que fazer uma junção interior entre a tabela de clientes especiais e a de cliente. 6. Cruzada Exterior Direita Esquerda Interior Explicação: Existem 3 tipos de junção: Cruzada: Retorna o produto cartesiano das duas tabelas, ou seja, a combinação de todas as linhas de uma tabela com todas as linhas de outra. Interior: Retorna as linhas que estão relacionadas nas duas tabelas. Exterior: Retorna as linhas relacionadas e as não relacionadas de uma ou das duas tabelas. Não Respondida Não Gravada Gravada javascript:abre_colabore('35836','220398486','4443905341'); 29/03/2021 Estácio: Alunos https://simulado.estacio.br/alunos/?p0=147240018&user_cod=2726843&matr_integracao=202003279714 4/4 Exercício inciado em 29/03/2021 16:16:30.
Compartilhar