Questão FC90510
Julgue o item seguinte, relativos à linguagem de definição de dados SQL, à linguagem de manipulação de dados SQL, à linguagem de controle de dados SQL e à linguagem de consulta de
Linguagem SQL
CEBRASPE (CESPE) · 2024
Julgue o item seguinte, relativos à linguagem de definição de dados SQL, à linguagem de manipulação de dados SQL, à linguagem de controle de dados SQL e à linguagem de consulta de dados SQL.
No exemplo de comando UPDATE a seguir, é utilizada a construção case, em que as atualizações nas tuplas são realizadas com um único comando, evitando-se problemas com a ordem das atualizações.
UPDATE tabela
SET coluna = case
When predicado1 then resultado1
When predicado2 then resultado2
...
When predicado3 then resultadoN
else resultadoN
End;
Mostrar resposta e comentário
Gabarito
Certo
Comentário do professor
Comentário: A assertiva está correta. O uso da estrutura CASE dentro de um comando UPDATE permite atualizar os valores de uma coluna de forma condicional em um único comando, evitando múltiplas execuções e garantindo que as atualizações sigam uma ordem lógica definida pelos predicados.
UPDATE com CASE:O comando apresentado segue o seguinte formato:
UPDATE tabela
SET coluna = CASE
WHEN predicado1 THEN resultado1
WHEN predicado2 THEN resultado2
...
WHEN predicadoN THEN resultadoN
ELSE resultadoN
END;
SET coluna = CASE
WHEN predicado1 THEN resultado1
WHEN predicado2 THEN resultado2
...
WHEN predicadoN THEN resultadoN
ELSE resultadoN
END;
- Cada
WHENrepresenta uma condição específica. Se a condição for verdadeira, a coluna recebe o valor correspondente. - O
ELSEé opcional, mas quando presente, define o valor padrão caso nenhuma das condições seja atendida. - Essa abordagem evita múltiplos
UPDATEsseparados, tornando a execução mais eficiente.
UPDATE funcionarios
SET salario = CASE
WHEN cargo = 'Estagiário' THEN 2000
WHEN cargo = 'Analista' THEN 5000
WHEN cargo = 'Gerente' THEN 10000
ELSE salario
END;
SET salario = CASE
WHEN cargo = 'Estagiário' THEN 2000
WHEN cargo = 'Analista' THEN 5000
WHEN cargo = 'Gerente' THEN 10000
ELSE salario
END;
Esse comando atualiza os salários dos funcionários de acordo com o cargo, evitando que a tabela seja modificada múltiplas vezes.
Conteúdo do catálogo FC Concursos · Atualizado em