Maria criou um banco de dados no qual há uma tabela com uma coluna X que não aceita valores nulos. Entretanto, como o sistema que mantém essa tabela é novo, na carga inicial dos dados essa coluna não existe. Como Maria não quer abrir mão do impedimento de valores nulos, Maria poderia carregar as linhas incompletas desde que, na coluna X, usasse a cláusula:
- A)skip;
Errada, porque skip não é a cláusula SQL usada para fornecer valor padrão a uma coluna obrigatória.
- B)check;
Errada, porque check serve para impor restrições de validade, não para suprir valor ausente em coluna NOT NULL.
- C)default;
Certa, porque default define um valor padrão para a coluna quando o valor não é informado na inserção.
- D)float;
Errada, porque float é um tipo de dado numérico, não uma cláusula para tratar ausência de valores.
- E)case when ... then ... end.
Errada, porque case when ... then ... end é uma estrutura condicional de expressão, não a cláusula típica para preencher automaticamente uma coluna sem valor.
Gabarito: C
Quando uma coluna não aceita nulos, a regra é simples: ao inserir uma linha, você precisa fornecer um valor válido para ela. Só que bancos de dados também oferecem uma saída elegante para a carga inicial de dados: a cláusula DEFAULT. Ela permite definir um valor padrão para a coluna, e esse valor pode ser usado quando o dado não foi informado na inserção. Assim, você mantém a restrição de NOT NULL sem travar a importação das linhas incompletas. Na prática, é como dizer: "se ninguém me trouxer o valor da coluna X agora, eu uso este valor padrão". Isso é muito comum em cargas iniciais, migrações e sistemas que vão recebendo dados aos poucos. Em SQL, o DEFAULT pode ser definido na criação da coluna ou usado na inserção, dependendo do SGBD e da forma de comando adotada. Por isso, o gabarito é a alternativa C. As demais opções não resolvem o problema de uma coluna obrigatória sem valor na carga inicial. Em termos de modelagem e integridade, a ideia é preservar a regra de negócio sem precisar abrir mão do preenchimento mínimo exigido pela tabela.