Pular para o conteúdo principal

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

Banco de DadosSQL
Código
qq890174
Banca
FUNDATEC
Órgão
BRDE
Ano
2023
Nível
Superior
Cargo
Analista de Sistemas - Desenvolvimento de Sistemas
29.png (453×182)
Figura 1 – Tabela AREA
Considerando a tabela apresentada na Figura 1, quantos registros serão atualizados pelo comando SQL abaixo?UPDATE AREA SET ID_AREA_SUPERIOR = 5 WHERE ID_AREA_SUPERIOR BETWEEN 0 AND 3;
  1. A0
  2. B1
  3. C2
  4. D5
  5. E6
Revelar gabarito e comentário

GabaritoC — 2

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 C — a conta chega a 2 registros — alternativa C.

A ideia por trás

O comando UPDATE é a instrução do SQL que modifica dados já existentes em uma tabela. Ele funciona em duas partes: primeiro define o novo valor com SET, depois decide quais linhas serão afetadas com WHERE. A cláusula WHERE é o filtro que seleciona as linhas — só as que passam no filtro são alteradas; as outras ficam intactas.

O operador BETWEEN é inclusivo: BETWEEN 0 AND 3 significa valores maiores ou iguais a 0 e menores ou iguais a 3, ou seja, 0, 1, 2 e 3. É equivalente a escrever ID_AREA_SUPERIOR >= 0 AND ID_AREA_SUPERIOR <= 3. O WHERE é avaliado sobre os valores atuais da tabela, antes de qualquer mudança — o SET só é aplicado depois, nas linhas que passaram no filtro.

Esta questão cobra exatamente a leitura da condição do WHERE: é preciso contar quantas linhas da tabela têm ID_AREA_SUPERIOR dentro do intervalo fechado de 0 a 3, sem se confundir com o novo valor 5 do SET.

O que a questão dá

  • tabela AREA com 6 registros

  • valores de ID_AREA_SUPERIOR: 0, 3, 5, 5, 5, 5

  • comando: UPDATE AREA SET ID_AREA_SUPERIOR = 5 WHERE ID_AREA_SUPERIOR BETWEEN 0 AND 3

O que queremos: quantos registros serão atualizados pelo comando

Passo 1 — Listar os valores atuais da coluna

O WHERE compara o valor atual de cada linha com o intervalo. Para saber quantas linhas serão atualizadas, precisamos primeiro ver quais valores existem na coluna ID_AREA_SUPERIOR antes de qualquer mudança.

0 ,3,5,5,5,5\boxed{0\ , 3, 5, 5, 5, 5}
NÃO CAIA NESSA!

Esquecer de olhar a tabela e tentar adivinhar os valores — a contagem depende dos dados reais.

Passo 2 — Aplicar o filtro BETWEEN 0 AND 3

Agora que temos os valores, precisamos decidir quais satisfazem a condição. O BETWEEN é inclusivo, então entram os valores 0, 1, 2 e 3 — mas só os que existem na tabela contam.

Por que esta fórmula: BETWEEN 0 AND 3 é a condição do WHERE; ela seleciona linhas com valor entre 0 e 3, incluindo os extremos.

0ID_AREA_SUPERIOR30 \le ID\_AREA\_SUPERIOR \le 3

De onde vem cada valor: 00 = enunciado: limite inferior do BETWEEN · 33 = enunciado: limite superior do BETWEEN

003 (sim),033 (sim),053 (na˜o)=linhascomvalores0e30 \le 0 \le 3 \text{ (sim)}, 0 \le 3 \le 3 \text{ (sim)}, 0 \le 5 \le 3 \text{ (não)} = \boxed{\text{linhas} \text{com} \text{valores} 0 \text{e} 3}
NÃO CAIA NESSA!

Achar que BETWEEN é exclusivo e excluir os extremos — aí contaria só 0 ou só 3, errando a resposta.

Passo 3 — Contar as linhas selecionadas

Cada linha que passou no filtro será atualizada. Contar quantas são dá o número de registros afetados pelo UPDATE.

2 registros\boxed{2\ \text{registros}}
NÃO CAIA NESSA!

Contar também as linhas com valor 5, achando que o SET altera a seleção — o WHERE é avaliado antes, sobre os valores originais.

Resposta: 2 registros — alternativa C

Link permanente: /questoes/qq890174