现在学生选课相关的关系模式如下,请基于所给出的关系,完成所要求的查询。
S(Sno,Sname, Sage)
C(Cno, Cname, Ccredit)
SC(Sno, Cno, Grade)
1.查询选修国产数据库课程的学生名单,显示课程号、课程名、学号、姓名)
2.假设有C1和C2两张表,结构与课程表相同,数据分别如下,请设计实验验证并(UNION、UNION ALL)、交(INTERSECT)、差(EXCEPT)运算的结果。
【C1表中的数据】
1 C 3
2 Java 3
3 DS 3
【C2表中的数据】
1 C 3
2 C++ 3
3 DS 3
1、
select C.Cno,C.Cname,S.Sno,S.Sname
from C KC
left join SC XK
on KC.Cno = XK.Cno
left join S XS
on XK.Sno = XS.Sno
where KC.Cname = '国产数据库' ;
2、UNION
select Cno,Cname,Ccredit from C1
union
select Cno,Cname,Ccredit from C2;
UNION ALL
select Cno,Cname,Ccredit from C1
union all
select Cno,Cname,Ccredit from C2;
INTERSECT
select c1.Cno,c1.Cname,c1.ccredit from C1 c1
inner join C2 c2
using (Cno);
EXCEPT
select Cno,Cname,Ccredit from C1
where Cno not in (select Cno from C2);