Questão FC90573
Tendo como referência o diagrama de entidade relacionamento precedente, julgue o próximo item, a respeito de linguagem de definição de dados e SQL. Considerando-se o diagrama apres
Linguagem SQL

Tendo como referência o diagrama de entidade relacionamento precedente, julgue o próximo item, a respeito de linguagem de definição de dados e SQL.
Considerando-se o diagrama apresentado, é correto afirmar que a execução das expressões SQL a seguir, em um SGBD PostgreSQL 9.4 ou superior, permite gerar o resultado apresentado na tabela mostrada imediatamente após a expressão.
insert into aluno values (1,'Fulano');
insert into aluno values (2,'Cicrano');
insert into aluno values (3,'Beltrano');
insert into aluno values (2,'Cicrano');
insert into aluno values (3,'Beltrano');
insert into disciplina (id, descricao) values
(1,'Matemática');
insert into disciplina (id, descricao) values
(3,'História');
insert into disciplina (id, descricao) values
(5,'Geografia');
(1,'Matemática');
insert into disciplina (id, descricao) values
(3,'História');
insert into disciplina (id, descricao) values
(5,'Geografia');
insert into matricula (aluno, disciplina,
ano, nota) values (1, 1, 2020, 6.5);
insert into matricula (aluno, disciplina,
ano, nota) values (1, 3, 2020, 9.5);
insert into matricula (aluno, disciplina,
ano, nota) values (1, 5, 2020, 10.0);
ano, nota) values (1, 1, 2020, 6.5);
insert into matricula (aluno, disciplina,
ano, nota) values (1, 3, 2020, 9.5);
insert into matricula (aluno, disciplina,
ano, nota) values (1, 5, 2020, 10.0);
insert into matricula (aluno, disciplina,
ano, nota) values (3, 3, 2020, 8.5);
insert into matricula (aluno, disciplina,
ano, nota) values (3, 1, 2020, 5.6);
insert into matricula (aluno, disciplina,
ano, nota) values (3, 5, 2020, 7.7);
SELECT *
FROM crosstab( $$
select a.nome, d.descricao, m.nota
from matricula m
left join aluno a on a.id=m.aluno
left join disciplina d on d.id=m.disciplina
order by 1,2
$$)
as final_result(
nome varchar,
geografia numeric,
historia numeric,
matematica numeric
);
FROM crosstab( $$
select a.nome, d.descricao, m.nota
from matricula m
left join aluno a on a.id=m.aluno
left join disciplina d on d.id=m.disciplina
order by 1,2
$$)
as final_result(
nome varchar,
geografia numeric,
historia numeric,
matematica numeric
);

Mostrar resposta e comentário
Gabarito
Certo
Comentário do professor
Comentário: Este item está CORRETO, pois a execução das expressões SQL apresentadas está coerente com o modelo entidade-relacionamento e a estrutura das tabelas definidas anteriormente. A consulta utiliza corretamente:</p>
- Inserção de Dados:
INSERT INTO alunoeINSERT INTO disciplinainserem registros corretamente, garantindo integridade nas tabelas.INSERT INTO matricularelaciona alunos e disciplinas corretamente, respeitando a chave primária composta (aluno,disciplina,ano).
- Consulta com Junção e Agregação:
- A consulta SQL utiliza LEFT JOIN para unir
matricula,alunoedisciplina, garantindo que todos os alunos sejam listados, mesmo que não tenham matrículas em todas as disciplinas. - A cláusula ORDER BY 1,2 organiza os resultados pelo nome do aluno e ordem das disciplinas.
- A função COUNT() é usada corretamente para agregar os resultados.
- A consulta SQL utiliza LEFT JOIN para unir
- Apresentação dos Dados:
- A saída gerada na tabela final está de acordo com os registros inseridos, exibindo os alunos e suas respectivas notas organizadas por disciplina.
Conteúdo do catálogo FC Concursos · Atualizado em