Pular para o conteúdo principal

Questão de Banco de Dados — Geral — Avança SP 2024

Banco de DadosGeral
Código
qa630801
Banca
Avança SP
Órgão
Pref Caçapava SP
Ano
2024
Cargo
Ana (Pref Caçapava (SP))
Um usuário do MySQL, em caráter de teste e aprendizado, decide criar um banco de dados chamado “TestDatabase”. Em seguida ele cria uma tabela nomeada “TestClientes” que contém os campos “id”, “cpf”, “endereco” e “produto”. Ao inserir dados na tabela, o usuário constatou que a linha correspondente ao ID 09 na tabela clientes está incompleta e, então, decide exclui-la. Qual das alternativas abaixo contém o comando que melhor corresponde a ação requerida pelo usuário?
  1. ADROP DATABASE TestDatabase WHERE id = ‘09’
  2. BEXCLUDE INTO TestClientes ‘id = 09’
  3. CINSERT INTO TestDatabase.TestClientes DELETE WHERE id = ‘09’
  4. DDROP FROM TestClientes WHERE id = ‘09’
  5. EDELETE FROM TestClientes WHERE id = '09'
Revelar gabarito e comentário

GabaritoE — DELETE FROM TestClientes WHERE id = '09'

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 SQL: DELETE para exclusão de registros

Gabarito: letra E. Para excluir uma linha específica de uma tabela no MySQL, o comando correto é DELETE FROM TestClientes WHERE id = '09' — o DELETE é o comando da DML (Data Manipulation Language) destinado à exclusão de registros, e a cláusula WHERE filtra exatamente qual linha deve ser removida. As demais alternativas usam comandos de outras categorias (DDL) ou sintaxes inexistentes no SQL.

A linguagem SQL organiza seus comandos em categorias conforme a finalidade. A exclusão de dados (linhas de uma tabela) é uma operação de manipulação, portanto pertence à DML — que reúne INSERT, UPDATE, DELETE e MERGE. Já a DDL (Data Definition Language) trata da estrutura dos objetos do banco, com comandos como CREATE, ALTER, DROP e TRUNCATE. Essa distinção é a chave da questão: apagar uma linha específica é manipular dado, não definir estrutura.

O comando DELETE tem a sintaxe DELETE FROM nome_da_tabela WHERE condição;. A cláusula WHERE é o que diferencia a exclusão de um registro específico da exclusão de todos os registros — sem ela, o comando apagaria todas as linhas da tabela. No caso do enunciado, o usuário quer remover apenas a linha com id = 09, então o filtro é indispensável.

Vale contrastar com o DROP, que é da DDL e remove a estrutura inteira (tabela ou banco), e com o TRUNCATE, que apaga todos os dados de uma tabela mas mantém a estrutura. Nenhum dos dois aceita cláusula WHERE — eles operam sobre o objeto inteiro, não sobre linhas selecionadas. É exatamente essa fronteira — manipular dado (DML) versus definir estrutura (DDL) — que separa a alternativa correta das demais.

Alternativa A — ❌ Incorreta

DROP DATABASE TestDatabase WHERE id = '09' — o comando DROP DATABASE é da DDL e serve para excluir o banco de dados inteiro, não uma linha de uma tabela. Além disso, a sintaxe DROP DATABASE não aceita cláusula WHERE; ela remove o objeto completo. O erro aqui é duplo: categoria errada (DDL em vez de DML) e sintaxe inválida.

Alternativa B — ❌ Incorreta

EXCLUDE INTO TestClientes 'id = 09' — não existe comando EXCLUDE no SQL. O comando correto para exclusão é DELETE. Além disso, a sintaxe INTO é usada em comandos de inserção (INSERT INTO) ou criação de tabela a partir de consulta (CREATE TABLE ... AS SELECT), não em exclusão. A alternativa mistura palavras de comandos diferentes, resultando em uma instrução inexistente.

Alternativa C — ❌ Incorreta

INSERT INTO TestDatabase.TestClientes DELETE WHERE id = '09' — o comando INSERT INTO é da DML e serve para inserir dados, não para excluir. A alternativa tenta combinar INSERT com DELETE, o que não é uma sintaxe válida no SQL. Cada comando tem sua própria estrutura; não é possível aninhar DELETE dentro de INSERT dessa forma.

Alternativa D — ❌ Incorreta

DROP FROM TestClientes WHERE id = '09' — o comando DROP é da DDL e não aceita cláusula WHERE. A sintaxe correta para excluir uma tabela é DROP TABLE TestClientes, que remove a tabela inteira, não uma linha específica. Para excluir uma linha, o comando é DELETE FROM. A alternativa mistura o comando de estrutura (DROP) com a cláusula de filtro (WHERE), o que é inválido.

Alternativa E — ✅ Correta ⟵ GABARITO

DELETE FROM TestClientes WHERE id = '09' — esta é a sintaxe correta do comando DELETE da DML. O DELETE FROM especifica a tabela, e a cláusula WHERE filtra a linha com id = '09', removendo apenas esse registro. Sem o WHERE, o comando apagaria todas as linhas da tabela, o que não é o que o usuário deseja. A alternativa atende exatamente à ação requerida: excluir a linha incompleta correspondente ao ID 09.

PEGA ESSA DICA!

Para questões de SQL, identifique primeiro a categoria do comando: DML (INSERT, UPDATE, DELETE) manipula dados; DDL (CREATE, DROP, ALTER, TRUNCATE) define estrutura. Exclusão de linha específica é sempre DELETE FROM ... WHERE .... Lembre-se: DROP e TRUNCATE não aceitam WHERE — eles operam sobre o objeto inteiro.

Gabarito: letra E

Link permanente: /questoes/qa630801