Pular para o conteúdo principal

Questão de Banco de Dados — Consultas e Comandos em SQL — FUNDATEC 2025

Banco de DadosConsultas e Comandos em SQL
Código
qa699087
Banca
FUNDATEC
Órgão
GHC
Ano
2025
Cargo
Prog ( )

Para responder à questão, considere o modelo Entidade-Relacionamento (ER) apresentado pela Figura 1 abaixo, bem como o dicionário de dados apresentado logo em seguida:

Imagem associada para resolução da questão

Figura 1 – Modelo Entidade-Relacionamento (ER)

Dicionário de dados

Imagem associada para resolução da questão

Considerando que a tabela funcionario permite incluir registros com valores nulos (NULL) no campo fun_nome, qual alternativa apresenta a expressão SQL correta para substituir apenas os valores nulos, do campo fun_nome, por “Nome não informado”?

Imagem associada para resolução da questão

  1. Aselect fun_id, coalesce(fun_nome, 'Nome não informado') nome from funcionario
  2. Bselect fun_id, coalece(fun_nome, 'Nome não informado') nome from funcionario
  3. Cselect fun_id, coalesce('Nome não informado', fun_nome) nome from funcionario
  4. Dselect fun_id, coalese('Nome não informado', fun_nome) nome from funcionario
  5. Eselect fun_id, coalece('Nome não informado', fun_nome) nome from funcionario
Revelar gabarito e comentário

GabaritoA — select fun_id, coalesce(fun_nome, 'Nome não informado') nome from funcionario

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Função COALESCE no SQL

Gabarito: letra A. A função COALESCE retorna o primeiro argumento não nulo da lista; como o objetivo é substituir apenas os valores nulos de fun_nome por 'Nome não informado', a ordem correta é coalesce(fun_nome, 'Nome não informado') — se fun_nome for nulo, retorna o texto; caso contrário, retorna o próprio nome. As demais alternativas contêm erros de grafia na função (coalece, coalese) ou invertem a ordem dos argumentos.

A função COALESCE é uma função padrão do SQL (presente em SGBDs como PostgreSQL, MySQL, Oracle, SQL Server) que recebe uma lista de expressões e retorna a primeira que não for NULL. Ela é amplamente utilizada para tratar valores nulos em consultas, substituindo-os por um valor padrão. A sintaxe é COALESCE(expr1, expr2, ..., exprn), e o resultado é o primeiro valor não nulo encontrado, avaliando as expressões da esquerda para a direita.

No contexto da questão, a tabela funcionario permite valores nulos no campo fun_nome. O objetivo é exibir o fun_id e, quando fun_nome for nulo, mostrar 'Nome não informado'. Para isso, a função deve receber fun_nome como primeiro argumento e o texto substituto como segundo: coalesce(fun_nome, 'Nome não informado'). Se a ordem fosse invertida, coalesce('Nome não informado', fun_nome), o resultado seria sempre 'Nome não informado', pois o texto nunca é nulo — o que tornaria a consulta inútil para o propósito.

A pegadinha da banca está em duas frentes: (1) a grafia correta da função, que é COALESCE (com 's' e 'c' no final), e (2) a ordem dos argumentos. As alternativas B e E escrevem coalece (faltando o 's'), a alternativa D escreve coalese (trocando a posição do 's' e 'c'), e as alternativas C, D e E invertem a ordem dos argumentos. Apenas a alternativa A apresenta a grafia e a ordem corretas.

PEGA ESSA DICA!

Para memorizar a grafia, lembre-se de que COALESCE vem do inglês "coalesce", que significa "unir-se, fundir-se" — a palavra tem 's' antes do 'c' final. Na prova, desconfie de qualquer variação como coalece ou coalese, pois são erros comuns de digitação que a banca usa como distrator.

Alternativa A — ✅ Correta ⟵ GABARITO

A alternativa apresenta a sintaxe correta da função COALESCE, com a grafia certa e a ordem adequada dos argumentos: coalesce(fun_nome, 'Nome não informado'). Isso garante que, quando fun_nome for nulo, o texto substituto seja exibido; caso contrário, o próprio nome é retornado. A consulta seleciona fun_id e o resultado da função com o alias nome, atendendo exatamente ao que o enunciado pede.

Alternativa B — ❌ Incorreta

A alternativa B escreve coalece, com erro de grafia — falta a letra 's' no final da função. A função correta é COALESCE. Esse é um distrator clássico de banca, que explora a semelhança visual entre as palavras.

Alternativa C — ❌ Incorreta

A alternativa C inverte a ordem dos argumentos: coalesce('Nome não informado', fun_nome). Como o primeiro argumento é um texto literal (nunca nulo), a função sempre retornará 'Nome não informado', independentemente do valor de fun_nome. Isso não atende ao requisito de substituir apenas os valores nulos.

Alternativa D — ❌ Incorreta

A alternativa D apresenta dois erros: a grafia coalese (incorreta, pois o correto é coalesce) e a inversão da ordem dos argumentos ('Nome não informado' primeiro). Ambos os erros tornam a consulta inválida ou com comportamento incorreto.

Alternativa E — ❌ Incorreta

A alternativa E combina o erro de grafia coalece com a inversão da ordem dos argumentos. Assim como na alternativa C, a função retornaria sempre 'Nome não informado', e a grafia incorreta invalida a sintaxe.

Gabarito: letra A

Link permanente: /questoes/qa699087