Observe as seguintes tabelas feitas no Mysql Workbench 8.0:O...

Próximas questões
Com base no mesmo assunto
Q2542337 Banco de Dados

Observe as seguintes tabelas feitas no Mysql Workbench 8.0:


Imagem associada para resolução da questão


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?


Imagem associada para resolução da questão

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Apenas para ajudar nos estudos, este é um ótimo link com uma explicação rápida sobre os tipos de junção: https://pt.stackoverflow.com/questions/6441/qual-%C3%A9-a-diferen%C3%A7a-entre-inner-join-e-outer-join

Gabarito D

## Análise do Comando SQL e da Tabela

**O comando SQL está **correto** e retorna o resultado esperado, ou seja, uma lista de todos os cargos (inclusive os sem funcionários) e seus respectivos funcionários.

**Explicação detalhada:**

* **`RIGHT OUTER JOIN`:** Essa cláusula garante que todas as linhas da tabela `cargo` sejam incluídas no resultado, mesmo que não existam correspondências na tabela `funcionario`. Isso significa que todos os cargos serão listados, independentemente de terem funcionários associados ou não.

* **Condição de junção:** A condição `ON (c.codCargo = f.codCargo)` estabelece a relação entre as duas tabelas, unindo as linhas que possuem o mesmo código de cargo.

* **Seleção de colunas:** As colunas `nomeFuncionario` (da tabela `funcionario`) e `nomeCargo` (da tabela `cargo`) são selecionadas para exibir o nome do funcionário e o nome do cargo correspondente.

**Por que o `RIGHT OUTER JOIN` é a escolha correta?**

* **Objetivo:** O objetivo é listar todos os cargos, incluindo aqueles sem funcionários.

* **Funcionamento:** O `RIGHT OUTER JOIN` preserva todas as linhas da tabela à direita (neste caso, a tabela `cargo`) e adiciona as colunas da tabela à esquerda (tabela `funcionario`) quando houver correspondência. Se não houver correspondência, os valores da tabela à esquerda serão preenchidos com NULL.

**Visualizando o resultado:**

A consulta retornaria um resultado semelhante a este:

| nomeFuncionario | nomeCargo |

|-----------------|------------|

| João      | Caixa   |

| Maria     | Vendedor  |

| Carlos     | Caixa   |

| NULL      | Gerente  |

| NULL      | Vendedor  |

**Observações:**

* O cargo "Gerente" e o segundo cargo "Vendedor" aparecem sem um funcionário associado, pois não há correspondência na tabela `funcionario` para esses códigos de cargo.

* O funcionário "Carlos" está associado ao cargo "Caixa", mas o valor de `codCargo` é NULL na tabela `funcionario`, o que indica uma inconsistência nos dados e pode precisar de investigação.

**Em resumo:**

O comando SQL utiliza corretamente o `RIGHT OUTER JOIN` para obter a lista completa de cargos, incluindo aqueles sem funcionários, e apresenta o resultado de forma clara e concisa.

Fonte: Gemini

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo