Para responder à questão, considere a Figura 2 abaixo:
Figura 2 – Tabelas “Cargo” e “Funcionário”
Considerando a tabela “Funcionário”, apresentada na Figura 2, quantos registros serão atualizados pelo comando SQL abaixo?UPDATE FUNCIONARIOSET ID_FUNCIONARIO_SUPERIOR = 5WHERE ID_CARGO IN (2,4)
A0
B2
C3
D5
E8
Revelar gabarito e comentário▾
GabaritoD — 5
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”.
Resolução
Gabarito: letra D — a conta chega a 5 registros — alternativa D.
A ideia por trás
O comando UPDATE é a ferramenta do SQL para modificar dados já existentes em uma tabela. Ele funciona em duas partes: primeiro define o que será alterado (SET coluna = novo valor) e depois decide quais linhas sofrerão essa alteração (WHERE condição). A quantidade de registros afetados é exatamente o número de linhas que satisfazem a condição do WHERE.
A cláusula WHERE é o filtro que seleciona as linhas. O operador IN (2,4) é uma forma compacta de dizer 'ID_CARGO igual a 2 OU igual a 4'. Ou seja, qualquer linha cujo ID_CARGO seja 2 ou 4 será atualizada. Se o WHERE fosse omitido, todas as linhas seriam alteradas — um erro perigoso. A contagem de linhas afetadas é feita olhando a tabela e verificando quais registros têm ID_CARGO 2 ou 4.
Esta questão cobra a leitura correta da tabela e a interpretação do operador IN. O passo crucial é contar as linhas que atendem à condição, não os valores distintos do filtro.
O que a questão dá
tabela Funcionário com 8 registros
comando: UPDATE FUNCIONARIO SET ID_FUNCIONARIO_SUPERIOR = 5 WHERE ID_CARGO IN (2,4)
O que queremos: quantos registros serão atualizados pelo comando
Passo 1 — Listar os registros com ID_CARGO igual a 2
A condição WHERE ID_CARGO IN (2,4) significa que queremos as linhas onde ID_CARGO é 2 ou 4. Vamos primeiro identificar as linhas com cargo 2, porque elas fazem parte do conjunto que será atualizado.
NÃO CAIA NESSA!
Contar apenas os valores distintos de ID_CARGO (que são 2 e 4) em vez de contar as linhas.
Passo 2 — Listar os registros com ID_CARGO igual a 4
Agora precisamos das linhas com cargo 4, pois elas também atendem à condição IN (2,4). Somar essas com as anteriores dará o total de linhas afetadas.
NÃO CAIA NESSA!
Esquecer que o IN inclui os dois valores e contar apenas um deles.
Passo 3 — Somar os registros encontrados
O comando UPDATE afetará todas as linhas que passaram no filtro. Como o filtro é uma união (OR) dos dois casos, o total é a soma das contagens de cada caso.
Por que esta fórmula: Total = (linhas com cargo 2) + (linhas com cargo 4). Não há sobreposição, pois um funcionário tem um único ID_CARGO.
De onde vem cada valor: = passo 1 · = passo 2
NÃO CAIA NESSA!
Contar os 8 registros da tabela inteira, ignorando o filtro WHERE.