Pular para o conteúdo principal

Questão de Banco de Dados — MySQL — FUNDATEC 2023

Banco de DadosMySQL
Código
qq891233
Banca
FUNDATEC
Órgão
GHC-RS
Ano
2023
Nível
Superior
Cargo
Analista de Sistemas

Para responder à questão, considere a Figura 4.


Imagem da questão

Considerando que as tabelas apresentadas na Figura 4 foram criadas no SGBD MySQL, versão 8.0, assinale a alternativa que apresenta um comando SQL para excluir a coluna TURNO_PREFERENCIAL da tabela PROFESSOR.
  1. ADROP TURNO_PREFERENCIALON TABLE PROFESSOR;
  2. BDELETE COLUMN TURNO_PREFERENCIALFROM PROFESSOR;
  3. CDELETE ON PROFESSORCOLUMN TURNO_PREFERENCIAL;
  4. DALTER PROFESSORDELETE TURNO_PREFERENCIAL;
  5. EALTER TABLE PROFESSORDROP COLUMN TURNO_PREFERENCIAL;
Revelar gabarito e comentário

GabaritoE — ALTER TABLE PROFESSOR DROP COLUMN TURNO_PREFERENCIAL;

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 DDL no MySQL: excluindo uma coluna

Gabarito: letra E. Para excluir uma coluna de uma tabela existente no MySQL, a sintaxe correta é ALTER TABLE nome_da_tabela DROP COLUMN nome_da_coluna; — o comando ALTER TABLE modifica a estrutura da tabela e a cláusula DROP COLUMN especifica a remoção da coluna. As demais alternativas apresentam erros de sintaxe ou usam comandos inadequados para essa operação.

A exclusão de uma coluna é uma operação de DDL (Data Definition Language), a sublinguagem do SQL responsável por definir e modificar a estrutura dos objetos do banco de dados (tabelas, índices, visões, etc.). Enquanto o CREATE cria objetos e o DROP remove objetos inteiros, o ALTER é o comando que modifica a estrutura de um objeto existente — como adicionar, modificar ou excluir colunas de uma tabela.

No MySQL, a sintaxe para remover uma coluna específica é:

ALTER TABLE nome_da_tabela
DROP COLUMN nome_da_coluna;

O DROP COLUMN é a cláusula que indica a remoção da coluna. É importante notar que o DROP sozinho (sem COLUMN) também é aceito em alguns SGBDs, mas a forma completa e mais clara é com DROP COLUMN. O comando ALTER TABLE é obrigatório porque é ele que sinaliza a alteração da estrutura da tabela.

A confusão mais comum neste tema é misturar os comandos de manipulação de dados (DML) com os de definição de dados (DDL). O DELETE é um comando DML que remove linhas (registros) de uma tabela, não colunas. Já o DROP e o ALTER são DDL: o primeiro remove objetos inteiros (tabela, banco, índice) e o segundo modifica a estrutura de objetos existentes. Excluir uma coluna é uma alteração estrutural, portanto exige ALTER TABLE.

Vamos analisar cada alternativa para fixar o conceito e identificar os erros específicos de cada uma.

Comandos SQL
  • 1DDL (estrutura)
    • CREATE (cria objetos)
    • ALTER (modifica estrutura)
      • DROP COLUMN (exclui coluna)
    • DROP (remove objetos inteiros)
  • 2DML (dados)
    • DELETE (remove linhas)
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

O comando DROP TURNO_PREFERENCIAL ON TABLE PROFESSOR; está incorreto. A sintaxe do DROP para remover uma coluna não é essa. O DROP sozinho é usado para remover objetos inteiros (como DROP TABLE PROFESSOR), não colunas específicas. Para excluir uma coluna, é necessário usar ALTER TABLE ... DROP COLUMN .... A cláusula ON TABLE não faz parte da sintaxe de exclusão de coluna no MySQL.

Alternativa B — ❌ Incorreta

O comando DELETE COLUMN TURNO_PREFERENCIAL FROM PROFESSOR; está incorreto. O DELETE é um comando DML usado para remover linhas de uma tabela, não colunas. A sintaxe correta do DELETE é DELETE FROM nome_da_tabela WHERE condição;. Não existe a cláusula DELETE COLUMN no SQL. Para excluir uma coluna, a operação é estrutural (DDL) e deve usar ALTER TABLE ... DROP COLUMN ....

Alternativa C — ❌ Incorreta

O comando DELETE ON PROFESSOR COLUMN TURNO_PREFERENCIAL; está incorreto. Novamente, o DELETE é para remover linhas, não colunas. Além disso, a ordem das palavras-chave está errada: não existe DELETE ON seguido de COLUMN. A sintaxe correta para exclusão de coluna é ALTER TABLE ... DROP COLUMN ....

Alternativa D — ❌ Incorreta

O comando ALTER PROFESSOR DELETE TURNO_PREFERENCIAL; está incorreto. Embora use ALTER, falta a palavra-chave TABLE (a sintaxe correta é ALTER TABLE). Além disso, a cláusula para excluir coluna é DROP COLUMN, não DELETE. O DELETE é um comando DML, não uma cláusula do ALTER.

Alternativa E — ✅ Correta ⟵ GABARITO

O comando ALTER TABLE PROFESSOR DROP COLUMN TURNO_PREFERENCIAL; está correto. Ele usa a sintaxe adequada: ALTER TABLE para modificar a estrutura da tabela PROFESSOR e DROP COLUMN para remover a coluna TURNO_PREFERENCIAL. Esta é a forma padrão no MySQL (e na maioria dos SGBDs relacionais) para excluir uma coluna de uma tabela existente.

NÃO CAIA NESSA!

Para diferenciar os comandos, lembre-se: DELETE remove linhas (DML), DROP remove objetos inteiros (DDL) e ALTER modifica a estrutura de um objeto (DDL). Excluir uma coluna é uma alteração estrutural, então use ALTER TABLE ... DROP COLUMN .... Na prova, desconfie de alternativas que usam DELETE para excluir colunas — é a pegadinha clássica.

Gabarito: letra E

Link permanente: /questoes/qq891233