Pular para o conteúdo principal

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

Banco de DadosSQL
Código
qq891237
Banca
FUNDATEC
Órgão
GHC-RS
Ano
2023
Nível
Superior
Cargo
Analista de Sistemas
Avalie o comando abaixo, escrito em linguagem SQL.UPDATE TB_VENDEDOR SET IND_ATIVO = 'S';Considerando que a estrutura do campo IND_ATIVO da tabela TB_VENDEDOR não contém nenhuma restrição, quantos registros da tabela serão atualizados?
  1. ANenhum registro.
  2. BTodos os registros.
  3. CApenas os registros cujo campo IND_ATIVO seja igual a 'N'.
  4. DApenas os registros cujo campo IND_ATIVO seja igual a 'S'.
  5. EApenas os registros cujo campo IND_ATIVO seja diferente de NULL.
Revelar gabarito e comentário

GabaritoB — Todos os registros.

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”.

Comando UPDATE sem cláusula WHERE em SQL

Gabarito: letra B. O comando UPDATE TB_VENDEDOR SET IND_ATIVO = 'S'; não possui cláusula WHERE, portanto a atualização atinge todas as linhas da tabela, independentemente do valor atual do campo IND_ATIVO. Isso é comportamento padrão da linguagem SQL: sem filtro, o UPDATE opera sobre o conjunto completo de registros.

A questão testa o entendimento básico do comando UPDATE e a ausência de restrições (como NOT NULL, CHECK ou PRIMARY KEY) no campo IND_ATIVO não interfere na abrangência da operação. Até mesmo valores NULL seriam substituídos por 'S', já que não há condição restritiva.

Alternativa A — ✅ Incorreta

Afirma que nenhum registro seria atualizado. Isso só ocorreria se houvesse uma restrição que impedisse a atribuição do valor 'S' (ex.: CHECK (IND_ATIVO IN ('N','NULL'))), mas o enunciado diz expressamente que não há nenhuma restrição no campo. Portanto, todos os registros são afetados.

Alternativa B — ✅ Correta ⟵ GABARITO

O comando sem WHERE atualiza todos os registros da tabela. A sintaxe é válida e o valor 'S' será atribuído a cada linha, independentemente do conteúdo anterior do campo IND_ATIVO. É o comportamento esperado do UPDATE sem filtro.

Alternativa C — ❌ Incorreta

Afirma que apenas registros com IND_ATIVO = 'N' seriam atualizados. Não há cláusula WHERE que restrinja a atualização a esse valor. A condição não existe, logo a afirmação é falsa.

Alternativa D — ❌ Incorreta

Afirma que apenas registros com IND_ATIVO = 'S' seriam atualizados. Sem WHERE, o comando atinge todas as linhas, inclusive aquelas com valor diferente de 'S'. A atualização de um campo para 'S' não depende do valor atual ser 'S'.

Alternativa E — ❌ Incorreta

Afirma que apenas registros com IND_ATIVO diferente de NULL seriam atualizados. Em SQL, a ausência de WHERE faz com que a atualização se aplique a todas as linhas, incluindo aquelas com NULL no campo. O comando SET IND_ATIVO = 'S' substitui qualquer valor, inclusive NULL, sem restrição.

NÃO CAIA NESSA!

Lembre-se do mantra: sem WHERE, o UPDATE atualiza a tabela inteira. Sempre que uma questão de SQL omitir a cláusula WHERE em UPDATE ou DELETE, o efeito é sobre todos os registros. É uma pegadinha clássica em provas de banco de dados.

Gabarito: letra B — todos os registros serão atualizados.

Link permanente: /questoes/qq891237