Pular para o conteúdo principal

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

Banco de DadosSQL
Código
qg603663
Banca
Quadrix
Órgão
SEDF
Ano
2025
Nível
Superior
Cargo
Professor de Educação Básica: Informática
Acerca das linguagens de definição e manipulação de dados, dos conceitos e comandos SQL SERVER e DB2 e dos bancos de dados textuais, julgue o item a seguir.No DB2, ao utilizar ALTER TABLE ... ADD COLUMN, se a coluna adicionada não for explicitamente definida como NULL, o comando falha, pois o DB2 exige que colunas novas tenham obrigatoriamente um valor default ou permitam nulos.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

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”.

ALTER TABLE ADD COLUMN no DB2: comportamento de NULL e DEFAULT

Gabarito: letra C (CERTO). No DB2, ao adicionar uma coluna com ALTER TABLE ... ADD COLUMN, se a coluna não for explicitamente definida como NULL e não tiver um valor DEFAULT, o comando falha, pois o DB2 exige que colunas novas sejam anuláveis ou tenham um valor padrão. Essa é uma característica específica do DB2, que difere de outros SGBDs como SQL Server e Oracle.

O comando ALTER TABLE ... ADD COLUMN é uma instrução da sublinguagem DDL (Data Definition Language), responsável por modificar a estrutura de uma tabela existente. Quando uma nova coluna é adicionada a uma tabela que já contém registros, o SGBD precisa definir qual valor será atribuído a essa coluna nas linhas existentes. No DB2, essa definição é obrigatória: a coluna deve ser anulável (permitir NULL) ou ter um valor DEFAULT especificado. Se nenhuma dessas condições for atendida, o comando falha, pois o DB2 não consegue determinar o valor a ser preenchido nas linhas já existentes.

Essa regra existe para garantir a integridade dos dados. Ao adicionar uma coluna NOT NULL sem valor padrão, o banco não teria como preencher as linhas existentes com um valor válido, o que violaria a restrição de não-nulidade. Portanto, o DB2 exige que o usuário especifique um DEFAULT ou permita NULL para que a operação seja bem-sucedida.

É importante destacar que esse comportamento não é universal. No SQL Server, por exemplo, é possível adicionar uma coluna NOT NULL sem DEFAULT em uma tabela com dados, desde que a tabela esteja vazia. No Oracle, a adição de uma coluna NOT NULL sem DEFAULT também é permitida, mas apenas se a tabela não tiver registros. O DB2, por sua vez, adota uma postura mais rígida, exigindo que a coluna seja anulável ou tenha um valor padrão, independentemente de a tabela estar vazia ou não.

A pegadinha desta questão está em generalizar o comportamento do SQL padrão para todos os SGBDs. O candidato que conhece apenas o comportamento do SQL Server ou do MySQL pode marcar a alternativa como errada, acreditando que a adição de uma coluna NOT NULL sem DEFAULT é sempre permitida. No entanto, a questão é específica sobre o DB2, e a banca cobra exatamente essa particularidade.

Guarde a distinção: no DB2, ADD COLUMN exige que a nova coluna seja anulável ou tenha DEFAULT. Essa é a regra que decide a questão.

ALTER TABLE ADD COLUMN
  • 1DB2
    • Falha sem NULL ou DEFAULT
    • Exige coluna anulável ou valor padrão
  • 2SQL Server / Oracle
    • Permite NOT NULL sem DEFAULT
    • Apenas em tabela vazia
LEVEL · soulevel.com.br

Alternativa C — ✅ Certo ⟵ GABARITO

A afirmação está correta. No DB2, ao utilizar ALTER TABLE ... ADD COLUMN, se a coluna adicionada não for explicitamente definida como NULL e não tiver um valor DEFAULT, o comando falha. O DB2 exige que colunas novas sejam anuláveis ou tenham um valor padrão, pois, ao adicionar uma coluna a uma tabela com dados existentes, o SGBD precisa saber qual valor atribuir às linhas já presentes. Sem NULL ou DEFAULT, não há como preencher essas linhas sem violar a restrição de não-nulidade.

PEGA ESSA DICA!

Para questões sobre ALTER TABLE ADD COLUMN, lembre-se de que o comportamento varia entre SGBDs. No DB2, a regra é rígida: a coluna deve ser anulável ou ter DEFAULT. No SQL Server e no Oracle, a adição de coluna NOT NULL sem DEFAULT é permitida apenas em tabelas vazias. Essa distinção é frequentemente cobrada em provas.

Gabarito: letra C (CERTO).

Link permanente: /questoes/qg603663