ATENÇÃO: use a tabela relacional IPCA a seguir para responder à questão.
Tabela IPCA
|
indice |
ano |
mes |
|
0,56 |
2023 | 12 |
|
0,28 |
2023 | 11 |
|
0,24 |
2023 | 10 |
|
. . . |
. . . |
. . . |
|
0,2 |
2003 | 7 |
|
-0,15 |
2003 | 6 |
|
. . . |
. . . |
. . . |
|
2,25 |
2003 | 1 |
| 2,1 | 2002 | 12 |
| 3,02 | 2002 | 11 |
|
. . . |
. . . |
. . . |
| 0,57 | 2001 | 1 |
A instância da tabela contém os valores do índice IPCA para todos os meses dos anos de 2001 até 2023. Os valores pontilhados representam a continuidade mensal da série. Todas as colunas são numéricas, e não aceitam valores nulos.
No contexto da tabela IPCA apresentada, considere que ocorreu um acidente que fez com que diversas linhas dessa tabela tenham sido aleatoriamente deletadas, embora todos os índices dos meses de 2023 tenham permanecido intactos e nenhum dos anos tenha sido completamente deletado.
Analise as três versões de SQL que, pretensamente, poderiam recompor a tabela corretamente, inserindo os meses deletados com o valor nulo na coluna indice.
I. insert into IPCA(indice, ano, mes)
select NULL, a.ano, a.mes
from (select distinct ano, mes from IPCA) a
where not exists
(select * from IPCA x
where x.ano = a.ano
and x.mes = a.mes)
II. insert into IPCA(indice, ano, mes)
select NULL, a.ano, b.mes
from (select distinct ano from IPCA) a,
(select distinct mes from IPCA) b
where not exists
(select * from IPCA x
where x.ano = a.ano
and x.mes = b.mes)
III. insert into IPCA(indice, ano, mes)
select NULL, a.ano, a.mes
from IPCA a
where a.ano * 100 + a.mes not in
(select x.mes + x.ano * 100 from IPCA x)
A respeito da adequação desses comandos ao que se pretende, é correto concluir que