FC ConcursosFC Concursos

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?

  1. SELECT f.nomeFuncionario, c.nomeCargo from funcionario as f join cargo as c ON (c.codCargo = f.codCargo);
  2. SELECT f.nomeFuncionario, c.nomeCargo from funcionario as f left join cargo as c ON (c.codCargo = f.codCargo);
  3. SELECT f.nomeFuncionario, c.nomeCargo from funcionario as f cross join cargo as c ON (c.codCargo = f.codCargo);
  4. 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

Continue aprendendo