Questão nº 38
Questão de Informática · FGV SEFIN-RO 2018 (nº 38)
Considere as tabelas de bancos de dados T1, T2 e T3, que contêm, respectivamente, 10, 500 e 2.000 registros, e o comando SQL a seguir.
`select count(*) FROM T1, T2, T3`
Assinale a opção que apresenta o número exibido no resultado da execução desse comando.
- A10000000 (alternativa correta)
- B1000000
- C2000
- D500
- E10
Resposta comentada
Gabarito Alternativa A
Um produto cartesiano (ou junção implícita) ocorre quando você lista múltiplas tabelas na cláusula FROM sem especificar uma condição de junção. O resultado é uma combinação de cada linha de uma tabela com cada linha de todas as outras tabelas, multiplicando o número de registros de cada uma.
(A) Correta: O comando select count(*) FROM T1, T2, T3 realiza um produto cartesiano entre as três tabelas. O número total de linhas resultantes é o produto do número de linhas de cada tabela: .
(B) Incorreta: Este valor seria o resultado de , indicando um erro de cálculo ou confusão com o número de registros da T3.
(C) Incorreta: Este é o número de registros da tabela T3. A armadilha aqui é pensar que count(*) retornaria o total de registros da maior tabela ou da última tabela mencionada, ignorando o efeito multiplicador do produto cartesiano.
(D) Incorreta: Este é o número de registros da tabela T2, não o resultado do produto cartesiano.
(E) Incorreta: Este é o número de registros da tabela T1, não o resultado do produto cartesiano.
Fonte: FGV SEFIN-RO 2018 Auditor Fiscal de Tributos Estaduais (Caderno Tipo 2). Reproduzida para fins de estudo.