As tabelas ALUNOS, MATRICULAS e DISCIPLINAS a seguir representam os alunos de um curso, as disciplinas oferecidas e as matrículas de alunos nas disciplinas. As definições SQL (padrão SQL2 ou superior) destas tabelas estão especifi-cadas abaixo.
Create table ALUNOS
(matr char(2) not null primary key,
nome varchar(60) not null);
Create table DISCIPLINAS
(codd char(5) not null primary key,
nomed varchar(60) not null);
Create table MATRICULAS
(matr char(2) not null,
codd char(5) not null,
nota numeric(3,1),
primary key(matr,codd),
foreign key(matr) references ALUNOS,
foreign key (codd) references DISCIPLINAS);
Observe as instâncias abaixo das tabelas ALUNOS e MATRICULAS.
Considere a seguinte consulta SQL, que segue o padrão SQL2 (ou superior).
Select nome
From ALUNOS NATURAL JOIN MATRICULAS
WHERE nota >7
GROUP BY matr, nome
HAVING COUNT(distinct nota) >1 ;
A consulta SQL acima retornará: