FC ConcursosFC Concursos

Questão FC372796

Para responder a questão, considere as instruções a seguir. Considere a existência das tabelas abaixo. Tabela departamento: idDep VARCHAR(10) primary key nomeDep VARCHAR(70) telefo

Linguagem SQL

FCC · 2023

Para responder a questão, considere as instruções a seguir.

 

Considere a existência das tabelas abaixo.

 

Tabela departamento:
idDep VARCHAR(10) primary key
nomeDep VARCHAR(70)
telefoneDep VARCHAR(15)

 

Tabela funcionario
emailFun VARCHAR(45) primary key
nome Fun VARCHAR (70)
telefoneFun VARCHAR(15)
cargoFun VARCHAR(45)
salarioFun DOUBLE
idDep VARCHAR(10) foreign key

 

Tabela usuario:
emailFun VARCHAR(45) primary key e foreign key
senhausu VARCHAR(50)

 

A relação de departamento para funcionario é 1:n e de funcionario para usuario, 1:1.

 

Em um banco de dados Oracle 19c aberto e em condições ideais, o comando usado no SQL Plus para exibir o nome do funcionário, telefone e o nome do departamento associados à senha do usuário "senha4" é o

  1. SELECT F.nomeFun AS Nome_Funcionario, F.telefoneFun AS Telefone, D.nomeDep AS Nome_Departamento FROM usuario U OUTER JOIN funcionario F ON U.emailFun = F.emailFun OUTER JOIN departamento D ON F.idDep = D.idDep WHERE U.senhausu = 'senha4';
  2. SELECT F.nomeFun AS "Nome do Funcionario", F.telefoneFun AS Telefone, D. nomeDep AS "Nome do Departamento" FROM usuario U JOIN funcionario F IN U.emailFun = F.emailFun JOIN departamento D IN F.idDep = D.idDep WHERE U.senhaUsu = 'senha4";
  3. SELECT F.nomeFun AS Nome_Funcionario, F.telefoneFun AS Telefone, D.nomeDep AS Nome_Departamento FROM usuario U JOIN funcionario F WHERE U.emailFun = F.emailFun JOIN departamento D WHERE F.idDep = D.idDep WHERE U.senhaUsu = 'senha4';
  4. SELECT F.nomeFun AS Nome_Funcionario, F.telefoneFun AS Telefone, D.nomeDep AS Nome_Departamento FROM usuario U INNER JOIN funcionario F ON U.emailFun = F.emailFun INNER JOIN departamento D ON F.idDep = D.idDep WHERE U.senhaUsu = 'senha4';
  5. SELECT (SELECT nomeFun FROM funcionario WHERE emailFun = (SELECT emailFun FROM usuario WHERE senhaUsu = 'senha4')) AS Nome do Funcionario, (SELECT telefoneFun FROM funcionario WHERE emailFun = (SELECT emailFun FROM usuario WHERE senhaUsu = 'senha4')) AS Telefone, (SELECT nomeDep FROM departamento WHERE idDep = (SELECT idDep FROM funcionario WHERE emailFun = (SELECT emailFun FROM usuario WHERE senhaUsu = 'senha4'))) AS Nome_Departamento FROM dual;
Mostrar resposta e comentário

Gabarito

D

Comentário do professor

A consulta apresentada recupera, de forma clara e direta, os três campos solicitados: nomeFun, telefoneFun e nomeDep, usando apelidos para exibição com AS.

O trecho FROM usuario U INNER JOIN funcionario F ON U.emailFun = F.emailFun realiza a junção entre usuario e funcionario pela chave comum emailFun, respeitando a relação 1:1 entre as tabelas.

Em seguida, INNER JOIN departamento D ON F.idDep = D.idDep liga cada funcionário ao seu departamento, utilizando a chave estrangeira idDep (relação 1:n).

Por fim, a cláusula WHERE U.senhaUsu = 'senha4' filtra apenas o usuário cuja senha é senha4, garantindo que somente os registros correspondentes sejam retornados.

O uso de INNER JOIN implica que apenas combinações existentes em todas as tabelas serão exibidas, o que corresponde ao objetivo da consulta.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo