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
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?

  1. AUPDATE funcionarios SET salario = salario * 1.10 WHERE departamento = 'TI';
  2. BALTER TABLE funcionarios SET salario = salario * 1.10 WHERE departamento = 'TI';
  3. CINSERT INTO funcionarios (salario) VALUES (salario * 1.10) WHERE departamento = 'TI';
  4. DSET salario = salario * 1.10 FROM funcionarios WHERE departamento = 'TI';
  5. 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.

Gabarito: letra A

Link permanente: /questoes/qa630641