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
- 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';
- 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";
- 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';
- 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';
- 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