数据库实验指导手册新版(17)
时间:2025-07-11
时间:2025-07-11
DATABASE
因为学号和成绩在SC表中,而课程名在C表中,因此需要多表查询。 SELECT SNO,CNAME,GRADE FROM C,SC
WHERE O=O
② 查询学生的选课记录,显示学生的学号、姓名、课程号、成绩) SELECT S.SNO,SNAME,CNO,GRADE FROM S,SC
WHERE S.SNO=SC.SNO
③ 查询学生的选课记录,显示学生的学号、姓名、课程号、课程名、成绩 SELECT S.SNO,SNAME,O,CNAME,GRADE FROM S,SC,C
WHERE S.SNO=SC.SNO AND O=O
④ 左外连接查询:当希望左表(第一张表)中所有记录全部显示出来时,需要用
左外连接操作。 INSERT INTO S (SNO,SNAME) VALUES(’20000’,’ZXX’)
SELECT S.SNO,SNAME,CNO,GRADE FROM S
LEFT OUTER JOIN SC ON S.SNO=SC.SNO 观察与下面等值连接的执行结果有何不同?
SELECT S.SNO,SNAME,CNO,GRADE FROM S, SC WHERE S.SNO=SC.SNO
3) 表自身的连接
① 查询与‘李勇’同系的学生学号
将学生表S与S本身进行等值连接(系部相等),因为S与S做连接操作时不能区分,所以,对表取一个别名。然后将第二张表S中名字为‘李勇’的记录选择出就可。
SELECT S1.SNO
FROM S AS S1, S AS S2
WHERE S1.DEPA=S2.DEPA AND S2.SNAME=’李勇’
② 显示每个学生的非最高分成绩(学生自己的选课成绩中,不是最高分的选课记
录显示出来)
SELECT SNO, CNO, GRADE FROM SC AS SC1
WHERE GRADE <(SELECT MAX(GRADE) FROM SC AS SC2 WHERE SC2.SNO=SC1.SNO)
4) IN嵌套子查询
① 不相关的IN 子查询:子查询可以单独执行,与被嵌套的查询无关。
如,查询与‘李勇’同系的学生学号
可以先查询出‘李勇’所在的系,然后再到S表中查询与上述结果相同的记录。 SELECT SNO
下一篇:电话销售技巧导师讲义