Pular para o conteúdo principal

Questão de Banco de Dados — MySQL — CESPE / CEBRASPE 2024

Banco de DadosMySQL
Código
ce190752
Banca
CESPE / CEBRASPE
Órgão
TSE
Ano
2024
Nível
Médio
Cargo
Técnico Judiciário – Área: Apoio Especializado – Especialidade: Programação de Sistemas
Em determinada faculdade, para controlar os dados das monitorias prestadas por alunos a seus colegas, foram criadas as tabelas Aluno, Disciplina e Monitoria por meio dos scripts SQL a seguir.Captura_de tela 2024-12-17 090918.png 501×574A partir dessas informações, julgue o próximo item.Se as referidas tabelas forem criadas em um banco de dados MySQL, para que seja feita uma mudança no nome do campo dia_da_semana para nome_do_dia na tabela Monitoria, será necessário executar o comando a seguir.ALTER TABLE Monitoria MODIFY COLUMN dia_da_semana TO nome_do_dia
  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 DDL no MySQL: renomeando colunas

Gabarito: Errado (E). O comando apresentado está sintaticamente incorreto: no MySQL, a sintaxe para renomear uma coluna é ALTER TABLE Monitoria CHANGE COLUMN dia_da_semana nome_do_dia ... (ou RENAME COLUMN em versões mais recentes), e não MODIFY COLUMN ... TO .... O MODIFY COLUMN é usado para alterar o tipo ou as propriedades de uma coluna existente, mantendo o nome — ele não aceita a cláusula TO para renomear.

O comando ALTER TABLE é um comando da sublinguagem DDL (Data Definition Language) do SQL, responsável por modificar a estrutura de tabelas existentes. No MySQL, existem duas formas principais de renomear uma coluna: a cláusula CHANGE (que permite renomear e/ou alterar o tipo) e a cláusula RENAME COLUMN (disponível a partir do MySQL 8.0, que apenas renomeia). A sintaxe correta seria, por exemplo:

ALTER TABLE Monitoria CHANGE COLUMN dia_da_semana nome_do_dia VARCHAR(20);

ou, no MySQL 8.0+:

ALTER TABLE Monitoria RENAME COLUMN dia_da_semana TO nome_do_dia;

Já o MODIFY COLUMN é utilizado para alterar a definição da coluna (tipo, nulidade, default etc.) sem renomeá-la. Por exemplo:

ALTER TABLE Monitoria MODIFY COLUMN dia_da_semana VARCHAR(30) NOT NULL;

A pegadinha da banca está em misturar a sintaxe de MODIFY (que não aceita TO) com a ideia de renomeação, induzindo o candidato a acreditar que MODIFY COLUMN ... TO ... é válido. Na verdade, TO só é usado com RENAME COLUMN (ou em outros SGBDs, como PostgreSQL, onde RENAME COLUMN ... TO ... é a sintaxe padrão).

NÃO CAIA NESSA!

A banca troca a sintaxe de renomeação de coluna no MySQL: ela usa MODIFY COLUMN ... TO ..., que não existe. O candidato que confunde MODIFY (alterar tipo) com RENAME (mudar nome) cai na armadilha. Lembre-se: no MySQL, MODIFY não aceita TO; para renomear, use CHANGE ou RENAME COLUMN.

  1. 1CHANGE COLUMN (renomeia e altera tipo)
  2. 2RENAME COLUMN (só renomeia, 8.0+)
  3. 3MODIFY COLUMN (não renomeia)
LEVEL · soulevel.com.br

Item — ❌ Errado

O comando ALTER TABLE Monitoria MODIFY COLUMN dia_da_semana TO nome_do_dia está incorreto porque:

  • MODIFY COLUMN no MySQL não aceita a cláusula TO — ele serve apenas para alterar o tipo ou as propriedades da coluna, mantendo o nome.

  • Para renomear uma coluna, a sintaxe correta é ALTER TABLE ... CHANGE COLUMN nome_antigo nome_novo tipo (que também permite alterar o tipo) ou ALTER TABLE ... RENAME COLUMN nome_antigo TO nome_novo (MySQL 8.0+).

Portanto, a afirmativa está errada.

Gabarito: Errado (E).

Link permanente: /questoes/ce190752