(3)最后在S关系中选出Sno等于第二步中Sno 集合中某个元素的元组,取出Sno 和Sname送入结果表列。
SELECT Sno,Sname
FROM S
WHERE Sno IN(SELECT Sno FROM SC WHERE Cno IN (SELECT Cno FROM C WHERE Cname=‘DS’));
(4)检索选修课程号为C2或C4的学生学号;
SELECT Sno
FROM SC
WHERE Cno=‘C2’OR Cno=‘C4’;
(5)检索至少选修课程号为C2和C4的学生学号;
SELECT Sno
FROM SC X,SC Y
WHERE X.Sno=Y.Sno AND http://www.doczj.com/doc/577bde0ea45177232f60a2bd.htmlo=‘C2’AND http://www.doczj.com/doc/577bde0ea45177232f60a2bd.htmlo=‘C4’;
(6)检索不学C2课的学生姓名和年龄;
A.SELECT Sname FROM S WHERE Sno NOT IN (SELECT Sn FROM SC WHERE Cno=‘C2’);
或者
B.SELECT Sname FROM S WHERE NOT EXISTS (SELECT * FROM SC WHERE S
C.Sno=S.Sno AND Cno=‘C2’);
(7)检索学习全部课程的学生姓名;
在表S中找学生,要求这个学生学了全部课程。换言之,在S表中找学生,在C中不存在一门课程,这个学生没有学。
SELECT Sname
FROM S
WHERE NOT EXISTS
(SELECT *
FROM C
四、简答题(每题5分,共20分,其中1,2 任选一题,其他必做题)
1. Oracle的索引有几种,各有何用途
唯一索引:索引列的所有值都只能出现一次,即必须唯一
非唯一索引:索引列的值可以重复
函数索引:保存了数据列基于function返回的值
反向索引:转了索引码中的字节,是索引条目分配更均匀,用于减少索引叶的竞争。