Considere que os seguintes comandos tenham sido executados ...

Próximas questões
Com base no mesmo assunto
Q3409354 Banco de Dados
Julgue o item seguinte, relativo a RabbitMQ, PostgreSQL e Git. 

Considere que os seguintes comandos tenham sido executados no PostgreSQL 14.18


Imagem associada para resolução da questão


Nesse caso, o comando SELECT * FROM veiculo; apresentará, ao ser executado, o resultado a seguir


Imagem associada para resolução da questão


Alternativas

Comentários

Veja os comentários dos nossos alunos

SELECT * FROM ONLY veiculo; assim busca somente a tabela veiculo sem a sua tabela filha.

tenho certa experiência em SQL e nunca vi isso kkkk parece ser algo específico do postgree

Conceito de herança no postgres, assim o PostgreSQL inclui registros das tabelas filhas ao consultar a tabela pai com select simples.

Para que retorna-se o proposto na questão teria que ser executado o select que o colega comentou "SELECT * FROM ONLY veiculo;"

De fato, questão de postgres...

**Questão ESPECÍFICA para PostgreSQL**

MySql, MariaDB, Oracle, Sql server não tem herança por padrão (acho kk)

Pelo comportamento padrão de herança no PostgreSQL, a consulta SELECT feita na tabela “pai” inclui as linhas das tabelas “filhas” (a menos que se use ONLY). Logo, com as tabelas:

  • veiculo(id serial PK, nome)
  • carro(placa UNIQUE NOT NULL) INHERITS (veiculo)

E os inserts:

  • veiculo: (‘Bicicleta’)
  • carro: (‘Tesla Model Y’, ‘Y1357’) e (‘BMW X6’, ‘W6789’)

O comando:

SELECT * FROM veiculo;

retornará as 3 linhas, incluindo as de “carro”, com IDs gerados pela sequência de veiculo para as inserções feitas diretamente em veiculo e, para as inserções em carro, pela sequência associada à coluna herdada (se carro não redefiniu o id, usará a mesma sequência da tabela pai). Exemplo de resultado esperado:

id | nome

1 | Bicicleta

2 | Tesla Model Y

3 | BMW X6

Observações:

  • Para ver apenas os registros da tabela pai, use: SELECT * FROM ONLY veiculo;
  • Se “carro” tivesse sua própria sequência para id, ainda assim as linhas apareceriam no SELECT da tabela pai; apenas os valores de id poderiam pular conforme a sequência usada pela filha.

O PostgreSQL inclui automaticamente os registros das tabelas filhas (como ), mas só mostra as colunas da tabela pai.

Logo o resulltado:

 id |   nome

----+----------------

 1 | Bicicleta

 2 | Tesla Model Y

 3 | BMW X6

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo