Questão de Banco de Dados — Consultas e Comandos em SQL — Quadrix 2025
- Código
- qa699070
- Banca
- Quadrix
- Órgão
- CAU MA
- Ano
- 2025
- Cargo
- Ass TI ( )
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: ERRADO (letra E). O comando UPDATE clientes SET email = NULL WHERE nome = 'Carlos Santos'; atribui ao campo email o valor especial NULL (ausência de valor), e não uma string vazia (''). NULL e string vazia são conceitos distintos em SQL: NULL representa a ausência de informação, enquanto '' é um valor de texto de comprimento zero. A afirmação do item está incorreta ao confundir esses dois conceitos.
O comando UPDATE é um comando da sublinguagem DML (Data Manipulation Language), utilizado para modificar valores de registros existentes em uma tabela. Sua sintaxe básica é UPDATE nome_da_tabela SET coluna = valor WHERE condição;. No comando em questão, a cláusula SET email = NULL define o valor da coluna email como NULL para todos os registros que atendem à condição WHERE nome = 'Carlos Santos'. Isso significa que o campo email ficará sem valor, ou seja, com valor desconhecido/indefinido, e não com uma string vazia.
A distinção entre NULL e string vazia é fundamental em SQL e frequentemente cobrada em provas. NULL é um marcador especial que indica que o dado é desconhecido ou não existe; ele não é igual a zero, a um espaço em branco ou a uma string vazia. Operações com NULL geralmente resultam em NULL (por exemplo, NULL + 1 é NULL), e comparações com NULL usando = retornam desconhecido, não verdadeiro ou falso. Para verificar NULL, usa-se IS NULL ou IS NOT NULL. Já a string vazia ('') é um valor de texto válido, que pode ser comparado com = '' e armazenado em colunas do tipo caractere.
Na prática, se o objetivo fosse definir o e-mail como uma string vazia, o comando correto seria UPDATE clientes SET email = '' WHERE nome = 'Carlos Santos';. A diferença é sutil, mas crucial: NULL indica ausência de dado, enquanto '' indica um dado presente, porém vazio. Essa distinção afeta consultas, integridade referencial e lógica de aplicação.
A banca explora exatamente essa confusão conceitual: o candidato pode achar que NULL é equivalente a vazio ou a zero, mas em SQL são coisas diferentes. Guarde a regra: NULL ≠ string vazia ≠ 0. Essa é a pegadinha clássica em questões de SQL.
A afirmação diz que o comando UPDATE clientes SET email = NULL WHERE nome = 'Carlos Santos'; irá alterar o e-mail para uma string vazia. Isso está errado, pois NULL é um valor especial que representa ausência de dado, não uma string vazia. O comando atribui NULL ao campo email, indicando que o valor é desconhecido ou inexistente. Para atribuir uma string vazia, seria necessário usar SET email = ''. Portanto, o item está incorreto.
Gabarito: letra E (ERRADO).
Link permanente: /questoes/qa699070