Questão de Banco de Dados — Consultas e Comandos em SQL — INSTITUTO AOCP 2024
Banco de Dados›Consultas 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
);
AUPDATE funcionarios SET nome = 'João' WHERE id = 4.
BUPDATE funcionarios nome = 'João' WHERE id = 4.
CUPDATE funcionarios SET nome = 'João' , id = 1.
DINSERT INTO funcionarios (nome, email) VALUES ('João', 'Joã[email protected]').
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.