Questão de Banco de Dados — Consultas e Comandos em SQL — FUNDATEC 2023
Banco de Dados›Consultas e Comandos em SQL
Código
qa537590
Banca
FUNDATEC
Órgão
IFFAR
Ano
2023
Cargo
Tec ( )
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 FUNCIONARIO SET ID_FUNCIONARIO_SUPERIOR = 5 WHERE 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 instrução do SQL usada para modificar dados já existentes em uma tabela. Ele altera o valor de uma ou mais colunas em um conjunto de linhas, e a unidade de trabalho é o registro: ou a linha inteira é atualizada, ou não é. A cláusula WHERE é o filtro que decide quais linhas entram nesse conjunto — sem ela, o UPDATE atingiria todas as linhas da tabela, o que quase sempre é um erro.
A sintaxe é UPDATE nome_da_tabela SET coluna = valor WHERE condição. O WHERE funciona como uma pergunta que o banco faz para cada linha: se a resposta for verdadeira, a linha é atualizada; se for falsa, ela é ignorada. O operador IN é um atalho para várias comparações OR: ID_CARGO IN (2,4) equivale a ID_CARGO = 2 OR ID_CARGO = 4. Portanto, o número de registros atualizados é exatamente a quantidade de linhas que satisfazem essa condição.
Esta questão cobra a leitura correta da cláusula WHERE e do operador IN: é preciso contar quantos funcionários têm ID_CARGO igual a 2 ou 4 na tabela da figura. O gabarito oficial indica que esse número é 5.
O que a questão dá
tabela Funcionário com colunas ID_FUNCIONARIO, ID_CARGO, ID_FUNCIONARIO_SUPERIOR
comando UPDATE: SET ID_FUNCIONARIO_SUPERIOR = 5
condição WHERE: ID_CARGO IN (2,4)
gabarito oficial: 5 registros atualizados
O que queremos: quantos registros da tabela Funcionário serão atualizados pelo comando
Passo 1 — Decifrar a condição do WHERE
O WHERE é o coração da questão: ele diz quais linhas serão atualizadas. A condição ID_CARGO IN (2,4) significa que o funcionário deve ter cargo 2 OU cargo 4. O operador IN é uma forma compacta de escrever duas comparações com OR.
Por que esta fórmula: IN é um operador de conjunto: ele testa se o valor da coluna está na lista entre parênteses. É equivalente a ID_CARGO = 2 OR ID_CARGO = 4, mas mais legível.
De onde vem cada valor: = coluna da tabela Funcionário · = enunciado: IN (2,4)
NÃO CAIA NESSA!
Confundir IN com NOT IN — o NOT IN selecionaria os funcionários com cargos diferentes de 2 e 4, mudando completamente a resposta.
Passo 2 — Contar os registros que satisfazem a condição
Agora que sabemos o filtro, precisamos olhar a tabela da Figura 2 e contar quantos funcionários têm ID_CARGO igual a 2 ou 4. O gabarito oficial afirma que são 5 registros.
NÃO CAIA NESSA!
Contar apenas os funcionários com ID_CARGO = 2 (ou apenas os com 4) e esquecer o outro valor — o IN inclui os dois.