Questão de Banco de Dados — Consultas e Comandos em SQL — INSTITUTO AOCP 2024
Banco de Dados›Consultas e Comandos em SQL
Código
qa630641
Banca
INSTITUTO AOCP
Órgão
MGI
Ano
2024
Cargo
Esp ( )
Você exerce o cargo de especialista em desenvolvimento de software pelo Ministério da Gestão e da Inovação e foi designado para apoiar e monitorar o desenvolvimento de um sistema de banco de dados para gerenciar informações sobre projetos e recursos humanos. Durante a fase de manipulação de dados, um dos desenvolvedores precisa atualizar os salários de todos os funcionários em 10%, mas somente para aqueles que pertencem ao departamento de TI. Ele está utilizando a Linguagem de Manipulação de Dados (DML – Data Manipulation Language) em SQL para realizar essa tarefa.
Com base nos conceitos de DML em SQL, qual das seguintes alternativas apresenta corretamente o comando SQL que o desenvolvedor deve usar para realizar essa atualização?
AUPDATE funcionarios SET salario = salario * 1.10 WHERE departamento = 'TI';
BALTER TABLE funcionarios SET salario = salario * 1.10 WHERE departamento = 'TI';
CINSERT INTO funcionarios (salario) VALUES (salario * 1.10) WHERE departamento = 'TI';
DSET salario = salario * 1.10 FROM funcionarios WHERE departamento = 'TI';
ESELECT salario = salario * 1.10 FROM funcionarios WHERE departamento = 'TI';
Revelar gabarito e comentário▾
GabaritoA — UPDATE funcionarios SET salario = salario * 1.10 WHERE departamento = 'TI';
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”.
Comandos DML em SQL: UPDATE para atualização de dados
Gabarito: letra A. O comando UPDATE é o único, entre as alternativas, que pertence à DML e possui a sintaxe correta para modificar dados existentes em uma tabela, permitindo atualizar o salário de todos os funcionários do departamento de TI com a expressão salario = salario * 1.10 e o filtro WHERE departamento = 'TI'. As demais alternativas ou usam comandos de outra sublinguagem (DDL, DCL, DQL) ou apresentam sintaxe inválida para a operação de atualização.
A Linguagem de Manipulação de Dados (DML – Data Manipulation Language) é a sublinguagem do SQL responsável por manipular os dados armazenados nas tabelas, ou seja, realizar operações de inserção, consulta, atualização e exclusão de registros. Os comandos clássicos da DML são INSERT, SELECT, UPDATE e DELETE. É importante diferenciá-la da DDL (Data Definition Language), que lida com a estrutura do banco (criar, alterar, excluir tabelas), e da DCL (Data Control Language), que gerencia permissões de acesso.
O comando UPDATE é utilizado para modificar um ou mais registros existentes em uma tabela. Sua sintaxe básica é:
UPDATE nome_da_tabela
SET coluna1 = valor1, coluna2 = valor2, ...
WHERE condição;
A cláusula WHERE é opcional, mas essencial quando se deseja atualizar apenas um subconjunto de registros. Sem ela, todos os registros da tabela seriam atualizados. No caso do enunciado, a condição departamento = 'TI' garante que apenas os funcionários do departamento de TI tenham seus salários reajustados em 10%.
A expressão salario = salario * 1.10 é uma forma válida de aplicar o aumento percentual: ela multiplica o valor atual do salário por 1,10 (que representa 100% + 10%), atribuindo o resultado de volta à coluna salario. Essa é uma técnica comum e correta em SQL para atualizações aritméticas.
A banca explora a confusão entre as sublinguagens do SQL e a sintaxe correta de cada comando. O candidato que não domina a diferença entre DML e DDL, ou que decora comandos sem entender a estrutura, tende a cair em alternativas que usam ALTER TABLE (DDL) ou SET isolado (sintaxe incorreta).
NÃO CAIA NESSA!
A banca mistura comandos de sublinguagens diferentes e sintaxes inválidas. O ALTER TABLE é da DDL (altera a estrutura da tabela, não os dados), o INSERT serve para inserir novos registros, o SELECT é para consulta, e SET sozinho não é um comando SQL válido. O único comando que atualiza dados é o UPDATE, com a sintaxe UPDATE tabela SET coluna = valor WHERE condição. Fique atento: a pegadinha clássica é trocar UPDATE por ALTER TABLE ou usar SET sem o UPDATE.
Alternativa A — ✅ Correta ⟵ GABARITO
UPDATE funcionarios SET salario = salario * 1.10 WHERE departamento = 'TI';
Esta é a sintaxe correta do comando UPDATE. Ela especifica a tabela (funcionarios), a coluna a ser atualizada (salario) com a nova expressão (salario * 1.10), e a condição que restringe a atualização apenas aos registros do departamento de TI (WHERE departamento = 'TI'). O comando pertence à DML e realiza exatamente o que o enunciado pede.
Alternativa B — ❌ Incorreta
ALTER TABLE funcionarios SET salario = salario * 1.10 WHERE departamento = 'TI';
O comando ALTER TABLE é da DDL (Data Definition Language) e serve para modificar a estrutura da tabela (adicionar, remover ou alterar colunas, restrições, etc.), não para atualizar dados. Além disso, a sintaxe SET não é utilizada com ALTER TABLE para modificar valores de registros. Para atualizar dados, o comando correto é UPDATE.
Alternativa C — ❌ Incorreta
INSERT INTO funcionarios (salario) VALUES (salario * 1.10) WHERE departamento = 'TI';
O comando INSERT INTO é da DML, mas serve para inserir novos registros em uma tabela, não para atualizar os existentes. Além disso, a cláusula WHERE não é permitida na sintaxe do INSERT (a menos que seja usado com INSERT ... SELECT, mas não é o caso). A operação descrita no enunciado é uma atualização, portanto o comando correto é UPDATE.
Alternativa D — ❌ Incorreta
SET salario = salario * 1.10 FROM funcionarios WHERE departamento = 'TI';
A palavra-chave SET não é um comando SQL autônomo; ela faz parte da sintaxe do UPDATE. A forma correta seria UPDATE funcionarios SET salario = .... A alternativa apresenta uma sintaxe inválida, pois SET não pode iniciar um comando sem o UPDATE.
Alternativa E — ❌ Incorreta
SELECT salario = salario * 1.10 FROM funcionarios WHERE departamento = 'TI';
O comando SELECT é da DML (ou DQL, dependendo da classificação), mas é utilizado para consultar dados, não para atualizá-los. A sintaxe SELECT coluna = expressão não é válida para atribuição de valores; ela seria interpretada como um alias, mas não altera os dados no banco. Para atualizar, o comando é UPDATE.