Questão de Banco de Dados — PostgreSQL — Quadrix 2024
- Código
- qa630730
- Banca
- Quadrix
- Órgão
- IBICT
- Ano
- 2024
- Cargo
- Tecno ( )
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: ERRADO (letra E). No PostgreSQL, o comando para renomear uma tabela é ALTER TABLE <nome_tabela> RENAME TO <novo_nome_tabela>, e não CHANGE TABLE ... TO .... A sintaxe apresentada no enunciado não existe no PostgreSQL — ela mistura o comando ALTER TABLE com a palavra CHANGE, que é típica do MySQL, mas mesmo no MySQL o comando correto seria RENAME TABLE ou ALTER TABLE ... RENAME TO. Portanto, a afirmação está incorreta.
O comando ALTER TABLE é a instrução padrão da linguagem SQL para modificar a estrutura de uma tabela existente, e é classificado como um comando DDL (Data Definition Language). No PostgreSQL, a sintaxe para renomear uma tabela é:
ALTER TABLE nome_tabela RENAME TO novo_nome;Essa é a forma correta e amplamente documentada. O comando CHANGE TABLE não existe em nenhum SGBD relacional conhecido — o que existe é ALTER TABLE ... CHANGE no MySQL, mas essa sintaxe é usada para alterar a definição de uma coluna (nome, tipo, etc.), não para renomear a tabela em si. Para renomear uma tabela no MySQL, o comando é RENAME TABLE nome_tabela TO novo_nome; ou ALTER TABLE nome_tabela RENAME TO novo_nome;.
A banca explora aqui a confusão entre os comandos de diferentes SGBDs. O candidato que conhece apenas o MySQL pode achar que CHANGE TABLE é válido, mas no PostgreSQL a palavra-chave CHANGE não é utilizada. Além disso, a estrutura TO é usada no PostgreSQL, mas sempre precedida de RENAME TO, nunca diretamente após o nome da tabela.
Para fixar: no PostgreSQL, a renomeação de tabela é feita com ALTER TABLE ... RENAME TO. Esse é um comando DDL, assim como CREATE, DROP e TRUNCATE. A confusão com o MySQL é comum, mas a banca cobra exatamente essa distinção.
A afirmação está incorreta porque o comando CHANGE TABLE <nome_tabela> TO <novo_nome_tabela> não é uma sintaxe válida no PostgreSQL. O comando correto para renomear uma tabela nesse SGBD é ALTER TABLE <nome_tabela> RENAME TO <novo_nome_tabela>. A palavra CHANGE não faz parte do vocabulário de comandos do PostgreSQL para essa finalidade; ela é usada no MySQL, mas apenas para alterar colunas, não tabelas. Portanto, a assertiva está errada.
A banca mistura comandos de SGBDs diferentes. No MySQL, ALTER TABLE ... CHANGE existe, mas serve para alterar uma coluna, não para renomear a tabela. No PostgreSQL, a renomeação de tabela é sempre com ALTER TABLE ... RENAME TO. Guarde essa diferença para não cair na pegadinha.
Gabarito: letra E (ERRADO).
Link permanente: /questoes/qa630730