Pular para o conteúdo principal

Questão de Banco de Dados — SQL — Quadrix 2025

Banco de DadosSQL
Código
qg600093
Banca
Quadrix
Órgão
CRO-SP
Ano
2025
Nível
Superior
Cargo
Analista de Suporte de Tecnologia de Informação
Uma clínica odontológica de médio porte decidiu modernizar o seu sistema de prontuário eletrônico e agendamento de consultas, visando melhorar a gestão de atendimentos, reduzir retrabalho e integrar as informações clínicas dos pacientes em uma base relacional centralizada. A equipe de TI contratada adotará uma metodologia ágil para o desenvolvimento do novo sistema, cujo banco de dados será compatível com MySQL, SQL Server e PostgreSQL.Com base nessa situação hipotética, julgue o item seguinte.O comando DELETE FROM pacientes; em SQL remove permanentemente a tabela pacientes e os seus dados do banco de dados.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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: DELETE vs DROP

Gabarito: ERRADO (letra E). O comando DELETE FROM pacientes; remove todas as linhas (registros) da tabela pacientes, mas mantém a estrutura da tabela (colunas, tipos, constraints) no banco de dados. Para remover permanentemente a tabela e seus dados, o comando correto é DROP TABLE pacientes;. A afirmação confunde o comando DML DELETE com o comando DDL DROP.

O SQL é dividido em sublinguagens, cada uma com uma função específica. A DML (Data Manipulation Language) é responsável por manipular os dados armazenados nas tabelas — inserir, atualizar, excluir e consultar registros. Já a DDL (Data Definition Language) é responsável por definir e modificar a estrutura dos objetos do banco — criar, alterar e excluir tabelas, índices, views, etc. Essa distinção é fundamental para entender o que cada comando faz.

O comando DELETE é um comando DML. Ele exclui linhas de uma tabela, podendo ser usado com uma cláusula WHERE para filtrar quais registros serão removidos. Se usado sem WHERE, como no enunciado (DELETE FROM pacientes;), ele remove todas as linhas da tabela, mas a tabela em si continua existindo, com sua estrutura intacta. É possível, inclusive, desfazer a operação com ROLLBACK se estiver dentro de uma transação (dependendo do SGBD e da configuração).

O comando DROP é um comando DDL. Ele remove completamente um objeto do banco de dados, incluindo a tabela e todos os seus dados, de forma irreversível (na maioria dos SGBDs, não é possível desfazer com ROLLBACK). A sintaxe é DROP TABLE pacientes;.

Existe ainda o comando TRUNCATE, que também é DDL (em alguns SGBDs) e remove todas as linhas de uma tabela de forma mais rápida que DELETE, mas também mantém a estrutura da tabela. A diferença prática entre DELETE e TRUNCATE é que o DELETE pode ser filtrado com WHERE e pode ser desfeito com ROLLBACK (se em transação), enquanto o TRUNCATE remove tudo de uma vez e não pode ser desfeito.

A pegadinha da banca é justamente confundir o efeito do DELETE (remove dados, mantém estrutura) com o do DROP (remove estrutura e dados). O candidato que não domina a diferença entre DML e DDL tende a marcar "Certo", achando que DELETE FROM apaga a tabela inteira.

Guarde a fronteira: DML manipula dados; DDL manipula estrutura. É exatamente nessa fronteira que a questão se decide.

Critério

DELETE

TRUNCATE

DROP

Categoria

DML

DDL (na maioria dos SGBDs)

DDL

O que remove

Linhas (dados)

Todas as linhas

Tabela inteira (estrutura + dados)

Estrutura da tabela

Mantém

Mantém

Remove

Filtro WHERE

[+] Permite

[-] Não permite

[-] Não permite

ROLLBACK

[+] Possível (em transação)

[-] Não possível (na maioria)

[-] Não possível

Item — ❌ ERRADO

A afirmação diz que DELETE FROM pacientes; remove permanentemente a tabela pacientes e seus dados. Isso está errado porque:

  • O comando DELETE é um comando DML (Data Manipulation Language), que atua sobre os dados (linhas) da tabela.

  • DELETE FROM pacientes; sem cláusula WHERE remove todas as linhas da tabela, mas a estrutura da tabela (colunas, tipos, constraints) permanece intacta.

  • Para remover a tabela e seus dados permanentemente, o comando correto é DROP TABLE pacientes;, que é um comando DDL (Data Definition Language).

Portanto, a afirmação está incorreta, pois confunde o efeito do DELETE com o do DROP.

PEGA ESSA DICA!

Para não errar mais, decore a tríade: DELETE = remove linhas (DML), TRUNCATE = remove todas as linhas rapidamente (DDL em muitos SGBDs), DROP = remove a tabela inteira (DDL). Na prova, quando a questão falar em "remover a tabela", o comando é DROP; quando falar em "remover registros", é DELETE ou TRUNCATE.

Gabarito: ERRADO (letra E).

Link permanente: /questoes/qg600093