Questão de Banco de Dados — Consultas e Comandos em SQL — Quadrix 2024
- Código
- qa630670
- Banca
- Quadrix
- Órgão
- NOVACAP
- Ano
- 2024
- Cargo
- Ana Sis ( )

- CCerto
- EErrado

GabaritoC — Certo
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.
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.
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