Questão de Banco de Dados — Consultas e Comandos em SQL — VUNESP 2025
Banco de Dados›Consultas e Comandos em SQL
Código
vu222880
Banca
VUNESP
Órgão
TJM SP
Ano
2025
Cargo
Ana BDJ ( )
Considere a linguagem SQL no que se refere a comandos para manipulação de dados (DML).
Suponha uma tabela de um banco de dados relacional, denominada Tab1, que contenha os campos Cod e Nome.
Assinale a alternativa que indica o comando para atualizar o campo Cod para o valor 25, apenas para valores do campo Nome diferentes da string Teste:
AUPDATE Tab1 Cod = 25 HAVING Nome <> ‘Teste’;
BUPDATE Tab1 MAKE Cod = 25 FOR Nome <> ‘Teste’;
CUPDATE Tab1 SET Cod = 25 WHERE Nome <> ‘Teste’;
DUPDATE Tab1 SET Cod = 25 IN CASE Nome <> ‘Teste’;
EUPDATE Tab1 USE Cod = 25 AT Nome <> ‘Teste’;
Revelar gabarito e comentário▾
GabaritoC — UPDATE Tab1
SET Cod = 25
WHERE Nome <> ‘Teste’;
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 SQL: sintaxe e cláusula WHERE
Gabarito: letra C. O comando para atualizar dados em SQL é o UPDATE, que exige a cláusula SET para indicar a coluna e o novo valor, e a cláusula WHERE para filtrar quais registros serão alterados — exatamente o que a alternativa C apresenta: UPDATE Tab1 SET Cod = 25 WHERE Nome <> 'Teste';. As demais alternativas usam palavras-chave inexistentes na sintaxe SQL (HAVING, MAKE, IN CASE, USE, AT), o que as torna inválidas.
O comando UPDATE é um dos quatro comandos da sublinguagem DML (Data Manipulation Language), responsável por manipular os dados armazenados nas tabelas. Enquanto o SELECT consulta, o INSERT insere e o DELETE remove, o UPDATE altera valores de registros existentes. Sua sintaxe básica é:
UPDATE nome_da_tabela
SET coluna1 = valor1, coluna2 = valor2, ...
WHERE condição;
A cláusula SET é obrigatória e define quais colunas serão modificadas e para quais valores. A cláusula WHERE é opcional, mas essencial quando se deseja atualizar apenas um subconjunto de registros: sem ela, todos os registros da tabela seriam alterados. No enunciado, o filtro é Nome <> 'Teste', ou seja, apenas os registros cujo campo Nome seja diferente da string 'Teste' terão o campo Cod atualizado para 25.
A pegadinha da questão está em reconhecer que HAVING, MAKE, IN CASE, USE e AT não são cláusulas válidas do comando UPDATE. O HAVING, por exemplo, é usado no SELECT para filtrar grupos após o GROUP BY, não para filtrar linhas em um UPDATE. Já IN CASE lembra a expressão CASE do SQL, mas não é uma cláusula de filtro. O candidato que conhece a sintaxe correta elimina as alternativas erradas rapidamente.
NÃO CAIA NESSA!
A banca mistura palavras-chave de outras partes do SQL (HAVING, CASE) e termos inventados (MAKE, USE, AT) para confundir quem não domina a sintaxe do UPDATE. O HAVING é usado no SELECT para filtrar grupos, não linhas; CASE é uma expressão condicional, não um filtro. Lembre-se: para atualizar com condição, a cláusula é sempre WHERE.
UPDATE (DML): Sintaxe correta (UPDATE tabela, SET coluna = valor, WHERE condição (filtro)); Cláusulas inválidas (HAVING (filtra grupos no SELECT), MAKE / USE / AT (inexistentes), IN CASE (expressão condicional, não filtro)); Sem WHERE (Altera todos os registros)
Alternativa A — ❌ Incorreta
Usa HAVING para filtrar as linhas. HAVING é uma cláusula do SELECT que filtra grupos após o GROUP BY, não registros individuais em um UPDATE. Além disso, falta a cláusula SET, obrigatória para indicar a coluna e o novo valor.
Alternativa B — ❌ Incorreta
Usa MAKE, que não é uma palavra-chave do SQL para atualização. O comando correto é UPDATE ... SET, não UPDATE ... MAKE. A cláusula FOR também não é usada para filtrar registros em um UPDATE.
Alternativa C — ✅ Correta ⟵ GABARITO
Apresenta a sintaxe correta: UPDATE Tab1 SET Cod = 25 WHERE Nome <> 'Teste';. A cláusula SET define a coluna Cod com o valor 25, e a cláusula WHERE restringe a atualização aos registros onde Nome é diferente de 'Teste'.
Alternativa D — ❌ Incorreta
Usa IN CASE, que não é uma cláusula válida do SQL. A expressão CASE existe, mas é usada para lógica condicional dentro de uma consulta, não como filtro de linhas em um UPDATE. A sintaxe correta exige WHERE.
Alternativa E — ❌ Incorreta
Usa USE e AT, que não são cláusulas do comando UPDATE. USE é usado para selecionar um banco de dados em alguns SGBDs, e AT não faz parte da sintaxe de atualização. A forma correta é UPDATE ... SET ... WHERE.