上海应用技术学院
《数据库原理及应用》课程实验报告
实验名称 姓 名 专 业 连接查询 院系 计算机科学与信息工程学院 实验序号 班 级 指导教师 4 刘梅 实验日期 学 号 成 绩 计算机科学与技术 一、实验目的和要求 1.掌握SELECT语句在多表查询中的应用 2.初步掌握SELECT语句在复杂查询中的应用 二、实验预习内容 1. 2. 三、实验项目摘要 1.对“教学管理”数据库,完成以下查询要求 (1) 检索学号比王非同学大,而年龄比他小的学生姓名; (2) 检索姓名以王打头的所有学生的姓名和年龄; (3) 在SC中检索成绩为空值的学生学号和课程号; (4) 检索所有比“王华”年龄大的学生姓名、年龄和性别; (5) 检索选修“2”课程的学生中成绩最高的学生的学号; (6) 检索学生姓名及其所选修课程的课程号和成绩; (7) 检索选修3门以上课程的学生总成绩,并要求按总成绩的降序排列出来。 2.对“供应关系”数据库,完成以下查询要求 (1)查询供应商S1提供的零件的颜色; (2)查询既为工程J1又为工程J2提供零件的供应商代号; (3)查询为工程Jl提供红色零件的供应商代号; (4)查询为所在城市为上海的工程提供零件的供应商代号; (5)查询为所在城市为上海或北京的工程提供红色零件的供应商代号; (6)查询供应商与工程所在城市相同的供应商提供的零件代号。
上海应用技术学院
四、实验结果与分析 1.(1)SELECT Sn FROM S WHERE Sno>(SELECT Sno FROM S WHERE Sn='王非') AND age<(SELECT age FROM S WHERE Sn='王非') (2) SELECT Sn,age FROM S WHERE Sn like '王%' (3)SELECT Sno,Cno FROM SC WHERE Score IS NULL (4) SELECT Sn,age,Sex FROM S WHERE age>(SELECT age FROM S WHERE Sn='王华')
上海应用技术学院
(5) SELECT Sno FROM SC WHERE Cno='2' and Score=(SELECT max(score) FROM Sc WHERE cno='2') (6)SELECT Sn,Cno,Score FROM S,SC WHERE S.Sno=SC.Sno
上海应用技术学院
(7) SELECT sno, sum(score)总成绩 FROM sc group by sno having count(*)>3 order by sum(score) desc 2.(1) select distinct color from p,spj where p.pn=spj.pn and sn='s1'
上海应用技术学院
(2)select distinct a.sn from spj a ,spj b where a.sn=b.sn and a.jn='j1' and b.jn='j2' (3)select sn from p,spj where p.pn=spj.pn and color='红' and jn='j1' (4)select distinct sn from j,spj where j.jn=spj.jn and city='上海' (5)select distinct sn from p,j,spj where j.jn=spj.jn and city='上海' and color='红' and p.pn=spj.pn union select distinct sn from p,j,spj where j.jn=spj.jn and city='北京' and color='红' and p.pn=spj.pn
上海应用技术学院
(6)select pn from s,j,spj where s.sn=spj.sn and j.jn=spj.jn and s.city=j.city 注:空间不够,可以增加页码。