Questão de Banco de Dados — Banco de Dados Relacionais — CESPE / CEBRASPE 2025
- Código
- ce208445
- Banca
- CESPE / CEBRASPE
- Órgão
- MPE-CE
- Ano
- 2025
- Nível
- Superior
- Cargo
- Analista Ministerial - Especialidade: Ciências da Computação


- CCerto
- EErrado


GabaritoC — Certo
Gabarito: Certo. A afirmação está correta porque a consulta SQL descrita utiliza um LEFT JOIN (junção externa à esquerda), que preserva todas as linhas da tabela à esquerda (Processos), mesmo aquelas que não possuem correspondência na tabela à direita (Partes). Para essas linhas sem correspondência, os campos da tabela à direita (nome da pessoa e papel) serão preenchidos com NULL. O LEFT JOIN é exatamente o mecanismo que garante a listagem de todos os processos, inclusive os que ainda não têm partes associadas.
O LEFT JOIN é um dos três tipos de junção externa (externa à esquerda, à direita e completa) e é o mais cobrado em provas. Ele é a resposta para o requisito "listar todos os registros de uma tabela, mesmo aqueles sem correspondência na outra". A lógica é simples: a tabela à esquerda do comando FROM é a tabela "preservada" — todas as suas linhas aparecem no resultado. Se houver uma linha na tabela da esquerda sem nenhuma linha correspondente na tabela da direita, os campos da tabela da direita aparecem como NULL no resultado.
Para entender a diferença, compare com o INNER JOIN (junção interna), que é o tipo mais comum: ele retorna apenas as linhas que têm correspondência em ambas as tabelas. Se um processo não tiver partes associadas, ele simplesmente não apareceria no resultado de um INNER JOIN. É exatamente essa a distinção crucial: o INNER JOIN descarta as linhas sem par, enquanto o LEFT JOIN as preserva.
Vamos a um exemplo concreto. Suponha que a tabela Processos tenha os processos P1, P2 e P3, e a tabela Partes relacione apenas P1 (com o autor João) e P2 (com o réu Maria). O processo P3 não tem nenhuma parte associada.
Com um INNER JOIN, o resultado traria apenas P1 e P2, pois P3 não tem correspondência em Partes.
Com um LEFT JOIN (Processos à esquerda), o resultado traria P1, P2 e P3. Para P3, os campos nome e papel (provenientes de Partes) seriam NULL.
É exatamente isso que o enunciado descreve: "listará todos os processos, inclusive aqueles que ainda não têm partes associadas". A pegadinha da banca, se houvesse, seria trocar o LEFT JOIN por um INNER JOIN, o que faria a afirmação ser falsa. Mas, como a consulta usa LEFT JOIN, a afirmação está correta.
A distinção entre os tipos de junção é o critério decisivo para esta questão. Guarde a regra: LEFT JOIN preserva a tabela da esquerda; INNER JOIN preserva apenas as interseções. É nessa fronteira que a banca costuma armar a pegadinha.
A afirmação está correta. A consulta SQL descrita utiliza LEFT JOIN, que é a junção externa à esquerda. Esse tipo de junção retorna todas as linhas da tabela à esquerda (no caso, Processos), mesmo aquelas que não possuem correspondência na tabela à direita (Partes). Para os processos sem partes associadas, os campos da tabela Partes (nome da pessoa e papel) serão preenchidos com NULL. Isso atende exatamente ao que o enunciado pede: listar todos os processos, inclusive os que ainda não têm partes associadas, exibindo o nome das pessoas e seus papéis quando existirem.
Para identificar rapidamente o tipo de junção em uma questão, procure pela palavra-chave LEFT, RIGHT ou FULL antes de JOIN. Se a consulta usar apenas JOIN ou INNER JOIN, ela retorna somente as linhas com correspondência em ambas as tabelas. Se usar LEFT JOIN, a tabela à esquerda do comando é totalmente preservada. Essa é a diferença que decide se um relatório perde ou não registros sem correspondência.
Gabarito: letra C (Certo).
Link permanente: /questoes/ce208445