Com relação ao código SQL acima, no SGBD MySQL, julgue o item a seguir.
Para que seja atualizado o e‑mail do autor João Silva, deve‑se executar o comando a seguir. UPDATE Autores SET Email = = ‘[email protected]’ WHERE Nome = ‘João Silva’;
CCerto
EErrado
Revelar gabarito e comentário▾
GabaritoE — Errado
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 no MySQL: sintaxe e operador de atribuição
Gabarito: ERRADO (letra E). O comando apresentado contém um erro de sintaxe: SET Email = = '[email protected]' — há um operador de atribuição duplicado (= =), o que torna o comando inválido no MySQL. A forma correta seria SET Email = '[email protected]', com um único sinal de igual. Além disso, a comparação na cláusula WHERE (Nome = 'João Silva') é case-sensitive no MySQL, dependendo do collation da coluna, o que pode não encontrar o registro se houver diferença de maiúsculas/minúsculas ou acentuação.
O comando UPDATE é uma instrução da sublinguagem DML (Data Manipulation Language), utilizada para modificar dados existentes em uma tabela. Sua sintaxe básica é UPDATE nome_da_tabela SET coluna1 = valor1, coluna2 = valor2 WHERE condição;. O operador de atribuição em SQL é o sinal de igual (=), e ele deve aparecer uma única vez entre a coluna e o valor. No comando do enunciado, Email = = '[email protected]' apresenta dois sinais de igual consecutivos, o que é um erro de sintaxe — o MySQL interpretaria isso como uma tentativa de comparação ou simplesmente rejeitaria o comando.
Na prática, para atualizar o e-mail do autor João Silva, o comando correto seria:
UPDATE Autores
SET Email = '[email protected]'
WHERE Nome = 'João Silva';
É importante notar que a cláusula WHERE é fundamental para atualizar apenas o registro desejado. Sem ela, o comando atualizaria todos os registros da tabela, o que seria um erro grave. Além disso, a comparação de strings no MySQL pode ser case-sensitive ou case-insensitive dependendo do collation da coluna. Se a coluna Nome tiver um collation case-insensitive (como utf8mb4_unicode_ci), a comparação Nome = 'João Silva' encontraria o registro mesmo se o nome estivesse armazenado como 'joão silva'. No entanto, se o collation for case-sensitive (como utf8mb4_bin), a comparação seria exata e poderia não encontrar o registro se houvesse diferença de maiúsculas/minúsculas ou acentuação.
Outro ponto relevante é que o comando UPDATE faz parte da DML, enquanto comandos como CREATE TABLE e ALTER TABLE fazem parte da DDL (Data Definition Language). Essa distinção é frequentemente cobrada em provas de banco de dados. A banca Quadrix, nesta questão, explora justamente a atenção aos detalhes da sintaxe SQL — um erro aparentemente simples, como um operador duplicado, é suficiente para tornar o comando inválido.
NÃO CAIA NESSA!
A banca insere um erro sutil de sintaxe: = = em vez de =. O candidato desatento pode ler o comando e achar que está correto, focando apenas na lógica do UPDATE e ignorando o operador duplicado. Além disso, a comparação Nome = 'João Silva' pode não funcionar se o collation da coluna for case-sensitive e o nome armazenado tiver diferenças de acentuação ou capitalização. Fique atento a esses detalhes — eles são a essência da pegadinha.
1UPDATE tabela
2SET coluna = valor
3WHERE condição
LEVEL · soulevel.com.br
Alternativa C — ❌ Incorreta (não é o gabarito)
A alternativa C afirma que o comando está Certo, mas isso é falso. O comando contém um erro de sintaxe claro: SET Email = = '[email protected]'. O operador de atribuição = aparece duas vezes, o que é inválido no MySQL. Mesmo que a lógica do UPDATE esteja correta (atualizar o e-mail do autor com nome 'João Silva'), a sintaxe inválida torna o comando inexecutável. Portanto, a alternativa C está incorreta.
Alternativa E — ✅ Correta ⟵ GABARITO
A alternativa E afirma que o comando está Errado, e isso está correto. O erro está no operador de atribuição duplicado (= =), que torna o comando inválido. A forma correta seria SET Email = '[email protected]'. Além disso, a comparação na cláusula WHERE pode não encontrar o registro se o collation da coluna Nome for case-sensitive e houver diferenças de capitalização ou acentuação. Portanto, o comando, como apresentado, não executaria corretamente, e a alternativa E é o gabarito.