Questão nº 60
Questão de Banco de Dados · FGV BBTS 2023 (nº 60)
FGV2023Analista - Perfil TecnológicoBanco de Dados
Gabarito: Dver comentário ↓
Considere o comando de criação de uma tabela relacional num ambiente Oracle exibido a seguir.
create table T (
codigo int not null,
produto varchar (40) not null,
preço float not null default 0 check (preço >= 0),
imposto float not null default 0
check (imposto <=100))
Assinale o comando SQL de inserção de registro que provocaria um erro.
- Ainsert into T(produto,código) values ('mesa',100)
- Binsert into T values (100, 'mesa',100,10)
- Cinsert into T values (100, 'mesa',10,100)
- Dinsert into T(codigo) values (100) (alternativa correta)
- Einsert into T(codigo,produto) values (100,'mesa')
Resposta comentada
Gabarito Alternativa D
O conceito-chave aqui é a restrição NOT NULL em colunas de uma tabela: ela exige que a coluna sempre tenha um valor. Se uma coluna é NOT NULL e não possui um valor padrão (DEFAULT), você precisa fornecer um valor para ela ao inserir um registro, caso contrário, o banco de dados retornará um erro.
- (A) Incorreta: Insere valores para
produtoecodigo. As colunaspreçoeimpostosãoNOT NULL, mas possuemDEFAULT 0, então o banco de dados as preencherá automaticamente com 0. Não há erro. - (B) Incorreta: Insere valores para todas as colunas na ordem correta. Todas as restrições
NOT NULLeCHECKsão satisfeitas. Não há erro. - (C) Incorreta: Insere valores para todas as colunas na ordem correta. Todas as restrições
NOT NULLeCHECKsão satisfeitas. Não há erro. - (D) Correta: Insere apenas um valor para a coluna
codigo. A colunaprodutoé definida comoNOT NULLe não possui um valor padrão (DEFAULT). Como nenhum valor é fornecido paraprodutoe não há um padrão para ser usado, o banco de dados gerará um erro. As colunaspreçoeimpostopossuemDEFAULT 0, então seriam preenchidas automaticamente. - (E) Incorreta: Insere valores para
codigoeproduto. As colunaspreçoeimpostosãoNOT NULL, mas possuemDEFAULT 0, então o banco de dados as preencherá automaticamente com 0. Não há erro. A armadilha aqui é que, ao contrário da alternativa D, esta alternativa fornece um valor paraproduto, evitando o erro.
Fonte: FGV BBTS 2023 Analista - Perfil Tecnológico (Caderno Tipo 1). Reproduzida para fins de estudo.