Questão de Banco de Dados — SQL — FCC 2017
- Código
- fc040543
- Banca
- FCC
- Órgão
- TST
- Ano
- 2017
- Nível
- Médio
- Cargo
- Técnico Judiciário – Programação
- Ajoin distinct
- Bjoin all
- Clike distinct
- Dunion
- Eunion all
GabaritoD — union
Gabarito: letra D. O operador UNION combina os resultados de duas consultas eliminando duplicatas, atendendo ao requisito de "valores distintos" exigido pelo enunciado. O UNION ALL manteria duplicatas, e as demais opções (JOIN, LIKE) não são operadores de combinação de resultados de consultas independentes. A lacuna I deve ser preenchida com UNION.
A questão testa o conhecimento dos operadores de conjunto em SQL, especialmente a diferença entre UNION e UNION ALL. Enquanto UNION realiza uma união com eliminação de duplicatas, UNION ALL retorna todas as linhas, incluindo repetições. As outras opções (JOIN DISTINCT, JOIN ALL, LIKE DISTINCT) são sintaxes inválidas ou inadequadas para combinar resultados de duas consultas.
Operador SQL | Função | Remove duplicatas? | Atende ao requisito "valores distintos"? |
|---|---|---|---|
| Combina resultados de duas consultas | Sim | ✅ Sim |
| Combina resultados de duas consultas | Não | ❌ Não |
| Sintaxe inválida | — | ❌ Não |
| Sintaxe inválida | — | ❌ Não |
| Sintaxe inválida (busca de padrão + eliminação de duplicatas, não combina consultas) | — | ❌ Não |
JOIN DISTINCT não é um comando SQL válido. JOIN é usado para combinar colunas de duas tabelas com base em uma condição, não para unir resultados de consultas independentes. Além disso, a palavra DISTINCT após JOIN não é reconhecida.
JOIN ALL também não é uma sintaxe SQL válida. A cláusula ALL é usada em UNION ALL ou em subconsultas, mas não em JOIN. Não atende ao propósito de combinar linhas de duas consultas.
LIKE DISTINCT não faz sentido nesse contexto. LIKE é usado para correspondência de padrões em strings, e DISTINCT elimina duplicatas em uma única consulta. Não é um operador de combinação entre consultas.
UNION é o operador correto. Ele combina o resultado das duas consultas SELECT cidade, pais FROM cidadao WHERE pais='Brasil' e SELECT cidade, pais FROM tribunal WHERE pais='Brasil', removendo automaticamente as linhas duplicadas, conforme exigido pelo enunciado ("lista completa dos valores distintos").
UNION ALL combina os resultados mas não remove duplicatas. O resultado conteria todas as linhas de ambas as consultas, inclusive repetições, contrariando a exigência de "valores distintos".
Para lembrar: UNION = Unique (remove duplicatas); UNION ALL = All (mantém todas). Em questões que pedem valores distintos, use UNION.
Gabarito: letra D.
Link permanente: /questoes/fc040543