Questão FC374666
O administrador do banco de dados fez uma lista de todos os cargos e seus respectivos funcionários, incluindo os cargos sem funcionários. Qual comando ele utilizou para gerar a tab
Linguagem SQL
Instituto Consulplan · 2024
Observe as seguintes tabelas feitas no Mysql Workbench 8.0:
Tabela Cargo

Tabela Funcionário

O administrador do banco de dados fez uma lista de todos os cargos e seus respectivos funcionários, incluindo os cargos sem funcionários. Qual comando ele utilizou para gerar a tabela a seguir?

- SELECT f.nomeFuncionario, c.nomeCargo from funcionario as f join cargo as c ON (c.codCargo = f.codCargo);
- SELECT f.nomeFuncionario, c.nomeCargo from funcionario as f left join cargo as c ON (c.codCargo = f.codCargo);
- SELECT f.nomeFuncionario, c.nomeCargo from funcionario as f cross join cargo as c ON (c.codCargo = f.codCargo);
- SELECT f.nomeFuncionario, c.nomeCargo from funcionario as f right outer join cargo as c ON (c.codCargo = f.codCargo);
Mostrar resposta e comentário
Gabarito
D
Comentário do professor
A consulta usa aliases (f para funcionario e c para cargo) para tornar a escrita mais clara: SELECT f.nomeFuncionario, c.nomeCargo.
O elemento central é o RIGHT OUTER JOIN. Em um RIGHT OUTER JOIN, todas as linhas da tabela à direita (aqui, cargo) são mantidas no resultado, mesmo que não haja correspondência na tabela à esquerda.
A cláusula ON (c.codCargo = f.codCargo) define a condição de junção: relaciona a chave do cargo com a chave estrangeira no funcionário.
Quando não existe funcionário para um cargo, os campos vindos de funcionario aparecem como NULL, mas o nome do cargo continua presente. Assim obtém-se a lista de todos os cargos e seus funcionários, incluindo cargos sem funcionários.
Conteúdo do catálogo FC Concursos · Atualizado em