Pular para o conteúdo principal

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

Banco de DadosConsultas e Comandos em SQL
Código
qa630632
Banca
INSTITUTO AOCP
Órgão
MGI
Ano
2024
Cargo
Esp ( )

Ao tentar atualizar um cadastro em uma tabela, o estagiário de um órgão público usou o seguinte comando: UPDATE funcionarios SET nome = 'João';

 

Obviamente, esse comando substitui todos os nomes de todos os servidores do órgão para “João”. Sabendo que a tabela foi criada usando o código a seguir e que a coluna a ser atualizada contém o ‘id = 4’, qual alternativa apresenta o comando correto?

 

CREATE TABLE funcionarios (

id INT PRIMARY KEY AUTO_INCREMENT,

nome VARCHAR(100) NOT NULL,

email VARCHAR(100) UNIQUE

);


  1. AUPDATE funcionarios SET nome = 'João' WHERE id = 4.
  2. BUPDATE funcionarios nome = 'João' WHERE id = 4.
  3. CUPDATE funcionarios SET nome = 'João' , id = 1.
  4. DINSERT INTO funcionarios (nome, email) VALUES ('João', 'Joã[email protected]').
  5. E INSERT INTO funcionarios SET nome = 'João' WHERE id = 4.
Revelar gabarito e comentário

GabaritoA — UPDATE funcionarios SET nome = 'João' WHERE id = 4.

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

Gabarito: letra A. O comando UPDATE exige a cláusula SET para indicar a coluna e o novo valor, e a cláusula WHERE para delimitar quais registros serão afetados — sem ela, todos os registros da tabela são alterados, exatamente o erro do estagiário. A alternativa A é a única que combina a sintaxe correta (UPDATE ... SET ... WHERE ...) com a condição que restringe a atualização ao registro de id = 4.

O comando UPDATE é uma instrução da sublinguagem DML (Data Manipulation Language) do SQL, usada para modificar dados já existentes em uma tabela. Sua sintaxe fundamental é UPDATE nome_da_tabela SET coluna = valor WHERE condição. A cláusula SET é obrigatória e define quais colunas receberão novos valores; a cláusula WHERE é opcional, mas de importância crítica: quando omitida, o banco de dados interpreta que a atualização deve ser aplicada a todas as linhas da tabela. Foi exatamente isso que aconteceu com o estagiário — ao executar UPDATE funcionarios SET nome = 'João' sem WHERE, todos os nomes foram sobrescritos.

A tabela funcionarios foi criada com a coluna id como chave primária e AUTO_INCREMENT, o que garante que cada registro tenha um identificador único e sequencial. Para atualizar apenas o registro cujo id = 4, é necessário usar essa coluna como filtro na cláusula WHERE. A condição WHERE id = 4 restringe a operação a uma única linha, preservando os demais registros.

A banca explora aqui um erro clássico de quem está começando: esquecer a cláusula WHERE no UPDATE (ou no DELETE), causando uma alteração em massa não intencional. A pegadinha está em reconhecer que a sintaxe correta exige SET após o nome da tabela e que a condição de filtro é o que separa uma atualização pontual de uma atualização global.

Guarde a estrutura completa do comando: UPDATE tabela SET coluna = valor WHERE condição. É nessa sequência que as alternativas serão julgadas — a correta respeita a sintaxe e o filtro; as demais ou omitem SET, ou usam INSERT indevidamente, ou alteram a chave primária.

Alternativa A — ✅ Correta ⟵ GABARITO

A alternativa A apresenta a sintaxe correta do comando UPDATE: UPDATE funcionarios SET nome = 'João' WHERE id = 4. Ela especifica a tabela (funcionarios), a coluna a ser alterada com o novo valor (SET nome = 'João') e a condição que restringe a atualização ao registro desejado (WHERE id = 4). É exatamente o que o estagiário deveria ter executado para corrigir o cadastro do servidor com id = 4.

Alternativa B — ❌ Incorreta

A alternativa B omite a cláusula SET, essencial no comando UPDATE. A sintaxe correta é UPDATE tabela SET coluna = valor WHERE condição; sem SET, o comando é inválido e o banco de dados retornará um erro de sintaxe. A banca troca a palavra-chave obrigatória por uma estrutura que parece plausível, mas não existe no SQL.

Alternativa C — ❌ Incorreta

A alternativa C tenta atualizar a coluna nome e também a coluna id, definindo id = 1. Isso é um erro por dois motivos: primeiro, a coluna id é a chave primária com AUTO_INCREMENT, e alterá-la manualmente pode violar a integridade referencial ou causar conflitos de unicidade; segundo, a condição WHERE está ausente, o que faria a atualização atingir todas as linhas da tabela, repetindo o erro original do estagiário. A sintaxe SET nome = 'João', id = 1 é válida, mas a falta do filtro e a alteração da chave primária tornam o comando incorreto para o objetivo proposto.

Alternativa D — ❌ Incorreta

A alternativa D usa o comando INSERT INTO, que serve para inserir novos registros em uma tabela, não para atualizar dados existentes. O enunciado pede uma atualização do cadastro do servidor com id = 4, e não a criação de um novo registro. Além disso, a sintaxe INSERT INTO funcionarios (nome, email) VALUES ('João', 'Joã[email protected]') é válida para inserção, mas não atende ao requisito da questão.

Alternativa E — ❌ Incorreta

A alternativa E mistura sintaxes de comandos diferentes: INSERT INTO com SET e WHERE. O comando INSERT não utiliza a cláusula SET para definir valores — essa cláusula é exclusiva do UPDATE. A forma correta de inserir seria INSERT INTO funcionarios (nome, email) VALUES ('João', '[email protected]'), sem SET e sem WHERE. Portanto, a alternativa é inválida sintaticamente e conceitualmente.

NÃO CAIA NESSA!

A banca explora a confusão entre os comandos UPDATE e INSERT. O UPDATE modifica registros existentes e exige SET (e idealmente WHERE); o INSERT adiciona novos registros e usa VALUES. O candidato que não domina essa distinção pode cair na alternativa D, que tem sintaxe válida, mas finalidade errada. Lembre-se: para atualizar, use UPDATE ... SET ... WHERE; para inserir, use INSERT INTO ... VALUES.

NÃO CAIA NESSA!

Na prova, ao ver um comando UPDATE, verifique imediatamente se há a cláusula WHERE. Se não houver, o comando afetará todas as linhas — um erro grave. Essa é uma pegadinha recorrente em questões de SQL. Pratique identificando a estrutura completa: UPDATE tabela SET coluna = valor WHERE condição.

Gabarito: letra A

Link permanente: /questoes/qa630632