針對數據庫單表查詢的三張表進行查詢:
//查詢未選課的學生情況包含學生學號、姓名和所在系;
select Student.Sno 學號,Sname 姓名,Sdept 系,Cno 課程號
from Student
left outer join SC on(Student.Sno=SC.Sno)
where cno is null;
//查詢已選課學生的選課情況包含學生學號、姓名、所選課程、成績;
select Student.Sno 學號,Sname 姓名,Cname 課程號,Grade 成績
from Student ,SC,Course
where (Student.Sno=SC.Sno) and (SC.Cno=Course.Cno);
//查詢所有學生的選課情況包含學生學號、姓名、課程號、課程名、成績;(包含選課和未選課所有學生);
select Student.Sno 學號,Sname 姓名,Cname 課程號,Grade 成績
from Student
left outer join SC on(Student.Sno=SC.Sno)
left outer join Course on(SC.Cno=Course.Cno);
//查詢沒有學生選的課程信息包含課程號、課程名
select Course.Cno 課程號,Cname 課程名,Sno 學號
from SC
right outer join Course on(SC.Cno=Course.Cno)
where Sno is null;
//查詢已被選擇課程的課程信息包含課程號、課程名、學生學號、姓名、成績;
select Course.Cno 課程號,Cname 課程名,Student.Sno 學號 ,Sname 學生姓名,Grade 成績
from SC,Student,Course
where (SC.Cno=Course.Cno) and (Student.Sno=SC.Sno);
//查詢所有課程的選課情況包含課程號、課程名、學生學號、姓名、成績;(包含沒有學生選課的課程)
select Course.Cno 課程號,Cname 課程名,Student.Sno 學號 ,Sname 學生姓名,Grade 成績
from Student
right outer join SC on(Student.Sno=SC.Sno)
right outer join Course on(SC.Cno=Course.Cno);
//查詢每個學生選課的總學分,並按總學分的降序排列;
select sum(Ccredit) 總學分,Sno
from SC,Course where SC.Cno=Course.Cno
group by Sno
order by(sum(Ccredit))desc;
//查詢選修了數據庫課程且成績在60分以下的學生的學號、姓名、課程名及成績;
select Student.Sno 學號,Sname 學生姓名,Sdept 系,Course.Cno 課程號,Grade 成績
from Student,SC,Course
where (SC.Cno=Course.Cno) and (SC.Sno=Student.Sno) and Grade < 60 and Cname='數據庫';