【数据库】连接、嵌套
多表查询 连接 A join B on A.x =B.y 外连接 left join right join
where 后面嵌套 in
存在 exists
exists(查询是否有记录) 可以替代所有 in 连接
关系代数 并 union or 交 and 差 not 笛卡儿积
已知
Student(Sno,Sname,Ssex,Sage,Sdept)
Course(Cno,Cname,Ccredit,Cpno)
SC(Sno,Cno,Grade)
- 选修了全部课程的学生(逆否命题 :不存在课程这个学生不选)
select * from Student where not exists(select * from Course where not exists(select
* from SC where Sno = Student.Sno and Cno=Course.Cno))
- 查询每个学生的姓名以及榜样(本系平均成绩最好的同学) 以及和榜样的差距
select (select Sname from Student where Sno=t.Sno) as Sname,
(select Sname from Student where Sno=t.BSno) as Bname,
(select avg