Questão de Banco de Dados — PostgreSQL — Quadrix 2024
- Código
- qg354210
- Banca
- Quadrix
- Órgão
- IBICT
- Ano
- 2024
- Nível
- Superior
- Cargo
- Tecnologista - Tecnologia da Informação
- 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 item não existe no PostgreSQL — ela mistura palavras-chave de outros SGBDs e não corresponde a nenhum comando válido da linguagem SQL padrão ou das extensões do PostgreSQL.
O comando ALTER TABLE é a instrução padrão da sublinguagem DDL (Data Definition Language) do SQL para modificar a estrutura de uma tabela — adicionar, alterar ou remover colunas, restrições, índices e também renomear a própria tabela. A sintaxe genérica para renomear uma tabela no PostgreSQL é:
ALTER TABLE nome_tabela RENAME TO novo_nome;Esse comando altera o nome da tabela no catálogo do banco, mantendo os dados e a estrutura interna. É importante notar que a palavra-chave RENAME é específica do PostgreSQL (e também usada no SQLite); outros SGBDs, como MySQL, usam RENAME TABLE nome_antigo TO nome_novo; — sem o ALTER TABLE.
A banca, ao escrever CHANGE TABLE <nome_tabela> TO <novo_nome_tabela>, criou uma sintaxe híbrida que não existe em nenhum SGBD conhecido. O termo CHANGE aparece no MySQL, mas apenas no comando ALTER TABLE ... CHANGE COLUMN (para renomear ou alterar o tipo de uma coluna), nunca para renomear a tabela em si. Já o TO é usado no PostgreSQL no RENAME TO, mas não com CHANGE TABLE.
Portanto, o item está errado porque descreve um comando inexistente. Para renomear uma tabela no PostgreSQL, o comando correto é ALTER TABLE ... RENAME TO ....
O comando apresentado, CHANGE TABLE <nome_tabela> TO <novo_nome_tabela>, não é um comando válido no PostgreSQL. A sintaxe correta para renomear uma tabela nesse SGBD é:
ALTER TABLE nome_tabela RENAME TO novo_nome;A banca misturou elementos de outros SGBDs: CHANGE é usado no MySQL (em ALTER TABLE ... CHANGE COLUMN), e TO aparece no PostgreSQL, mas apenas no RENAME TO. Não existe CHANGE TABLE em nenhum SGBD relacional para renomear tabelas. O item está errado.
A banca explora a confusão entre os comandos de renomeação de diferentes SGBDs. No MySQL, renomeia-se com RENAME TABLE antiga TO nova;; no PostgreSQL, com ALTER TABLE antiga RENAME TO nova;. O comando CHANGE existe no MySQL, mas apenas para alterar colunas (ALTER TABLE ... CHANGE COLUMN), nunca para renomear a tabela. Guarde essa distinção: RENAME é a palavra-chave universal para renomear objetos no PostgreSQL.
Gabarito: letra E (ERRADO).
Link permanente: /questoes/qg354210