Pular para o conteúdo principal

Questão de Banco de Dados — Consultas e Comandos em SQL — Quadrix 2024

Banco de DadosConsultas e Comandos em SQL
Código
qa630670
Banca
Quadrix
Órgão
NOVACAP
Ano
2024
Cargo
Ana Sis ( )
Com relação à tabela SERVIÇO acima, implementada em um banco de dados relacional, e à linguagem SQL, julgue o item a seguir.   O comando a seguir tem a finalidade de alterar o veículo para VAN 177, em que o responsável pelo serviço é J. JORGE.   UPDATE SERVIÇO   SET VEICULO = 'VAN 177'   WHERE RESPONSAVEL = 'J.JORGE';Imagem associada para resolução da questão
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

Esta resolução diverge do gabarito oficial. A banca deu Certo; a resolução abaixo sustenta o contrário e explica por quê — ela não foi reescrita para concordar. Acontece nos dois sentidos: há gabarito que cai em recurso e há resolução que erra. Confira na fonte antes de fixar o entendimento.
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 em SQL

Gabarito: ERRADO (letra E). O comando UPDATE apresentado está sintaticamente correto, mas a finalidade descrita no enunciado — alterar o veículo para 'VAN 177' onde o responsável é 'J. JORGE' — não é alcançada porque a condição WHERE RESPONSAVEL = 'J.JORGE' não corresponde ao valor real armazenado na tabela, que é 'J. JORGE' (com espaço entre o ponto e o sobrenome). A comparação de strings em SQL é sensível a maiúsculas, minúsculas e espaços, portanto a condição não encontrará nenhum registro e nenhuma linha será atualizada.

O comando UPDATE é um dos comandos da DML (Data Manipulation Language), utilizado para modificar dados existentes em uma tabela. Sua sintaxe básica é UPDATE nome_da_tabela SET coluna = valor WHERE condição;. A cláusula WHERE é opcional, mas essencial para especificar quais registros devem ser alterados; sem ela, todos os registros da tabela seriam atualizados. No comando em questão, a sintaxe está correta: UPDATE SERVIÇO SET VEICULO = 'VAN 177' WHERE RESPONSAVEL = 'J.JORGE';. O problema está na comparação de strings.

Em SQL, a comparação de strings é, por padrão, sensível a maiúsculas e minúsculas (case-sensitive) e também a espaços em branco. Isso significa que 'J.JORGE' é diferente de 'J. JORGE'. A tabela SERVIÇO, conforme a imagem, armazena o valor 'J. JORGE' (com espaço). Portanto, a condição WHERE RESPONSAVEL = 'J.JORGE' não encontrará nenhuma linha correspondente, e o comando UPDATE não alterará nenhum registro. O resultado será uma atualização de zero linhas, sem erro, mas sem efeito.

Para que o comando funcionasse como descrito, a condição deveria ser WHERE RESPONSAVEL = 'J. JORGE' (com espaço). Alternativamente, se a intenção fosse ignorar espaços, seria necessário usar funções como TRIM ou REPLACE, dependendo do SGBD. A pegadinha da banca está exatamente nessa diferença sutil de espaçamento, que faz com que o comando não atinja o objetivo declarado.

A distinção importante aqui é entre a sintaxe do comando (que está correta) e a semântica da condição (que está incorreta para o dado real). O candidato pode ser induzido a marcar 'Certo' por reconhecer a estrutura válida do UPDATE, mas a banca explora a comparação exata de strings. Guarde essa lição: em SQL, a igualdade de strings é literal, incluindo espaços e maiúsculas/minúsculas, a menos que o SGBD ou a configuração indique o contrário.

  1. 1Sintaxe correta
  2. 2WHERE não corresponde
  3. 3Nenhuma linha alterada
LEVEL · soulevel.com.br

Alternativa C — ❌ Incorreta

A alternativa afirma que o comando tem a finalidade de alterar o veículo para 'VAN 177' onde o responsável é 'J. JORGE'. Embora a intenção declarada seja essa, o comando não a cumpre porque a condição WHERE RESPONSAVEL = 'J.JORGE' não corresponde ao valor real 'J. JORGE' (com espaço). A comparação de strings em SQL é exata, então nenhuma linha será atualizada. O comando está sintaticamente correto, mas semanticamente ineficaz para o objetivo proposto.

Alternativa E — ✅ Correta ⟵ GABARITO

A alternativa está correta ao afirmar que o comando não atinge a finalidade descrita. A condição WHERE RESPONSAVEL = 'J.JORGE' não encontra nenhum registro porque o valor armazenado é 'J. JORGE' (com espaço). Portanto, o comando UPDATE não altera nenhum veículo. A resposta correta é 'Errado'.

Gabarito: letra E

Link permanente: /questoes/qa630670