Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FUNDATEC 2023

Banco de DadosSQL
Código
qq893502
Banca
FUNDATEC
Órgão
IF Farroupilha - RS
Ano
2023
Nível
Médio
Cargo
Técnico de Tecnologia da Informação

Para responder à questão, considere a Figura 2 abaixo:



Imagem da questão

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)
  1. A0
  2. B2
  3. C3
  4. D5
  5. 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.

3 registros(IDs2,4e8)\boxed{3\ \text{registros} (\text{IDs} 2, 4 \text{e} 8)}
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.

2 registros(IDs5e7)\boxed{2\ \text{registros} (\text{IDs} 5 \text{e} 7)}
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.

total=3+2total = 3 + 2

De onde vem cada valor: 33 = passo 1 · 22 = passo 2

total=3+2=5 registrostotal = 3 + 2 = \boxed{5\ \text{registros}}
NÃO CAIA NESSA!

Contar os 8 registros da tabela inteira, ignorando o filtro WHERE.

Resposta: 5 registros — alternativa D

Link permanente: /questoes/qq893502