1、(4)掌握相关与不相关的嵌套查询(5)掌握使用UNION勺集合查询二.实验环境WINDOWS XP+SQL SERVER 2000三、实验内容与步骤1、在实验二中建好的 Student表、Course表和SC表,使用T-SQL语句,进行单表查询(1)查询全体学生的学号与姓名,查询结果如下图 1.1所示:查询一IJE132.SPLIJE132i0i 无标题口叵|冈SELE2T Sno, Snam?from student.S勰已19IFIS刘晨 王敏 找立(9)查询CS系或MA系的学生姓名和系别,查询结果如下图1.9所示:(10)查询所有李姓学生的姓名,查询结果如下图 2.0所示:select
2、Snamefrom studentwhere Snane litk已李_” :nilSnamew(11)查询课程名称中第35个字为“系统”的课程信息,查询结果如下图2.1所示:select Cno. Cname from Courselwhere like5 験厂系统*-i川恫叩Cno Cname13 信息系统4 操作系统(12)查询缺少成绩的学生学号和相应课程号,查询结果如下图2.2所示:select Sno. Cnofrom scill!Siwhere grade is null;弘口 Cno(13)查询计算机科学系年龄在20岁以下的学生姓名,查询结果如下图2.3所示:(14)查询全体学生
3、情况,结果按系别升序、年龄降序排列,查询结果如下图2.4所示:*1select *order by Sdept asc. Sage desc;,l.SnoSsexSageSdeptCSCSISHA200215121 李勇 200216122 刘 IB 200215125 张立 200215123 王敏(15)查询选课记录总数及选修了课程的学生人数,查询结果如下图2.5所示:select 匚ount (distinct Sno)count ( + ) from sc:丨血H(无洌名)(无列名)J5(16)查询2号课程的平均分、最高分和最低分,查询结果如下图2.6所示:select avg (Gr
4、ade 1, max (Grade) j min (Grade) fr&m SCwhsre Cno* 2f :(:无列名)【无列名)无列名879035(17)查询每门课程的选课人数,查询结果如下图 2.7所示:select Cno,countdistinct Sno)from SCgroup by Cno; 卫Cno(无列名)2、使用T-SQL语句,进行连接查询(1)查询每个学生及其选修课程的情况, 查询结果如下图2.9所示:20CS92S5S81580SstKseleut student. sc,- from studentj sc where student, snosc. sno:u v
5、| AllGrade(2)查询每门课的间接选修课,查询结果如下图 3.0所示:(3)查询每个学生的学号、姓名、选修课程名及成绩,查询结果如下图3.1所示:ale匚t sludent - Sno, SnQM: CnajuBj Grade from student,scfcourse where sludent. sno-sc. sno and scr cnc-course, ciiq;SnaneCname统系 据学息学息 数数信数信1200215121 李勇22002151213200215121 李舅4200215122 刘晨5200215122 刘晨3、使用T-SQL语句,进行嵌套查询(1)
6、查询所有选修了 2号课程的学生姓名,查询结果如下图3.2所示:select Sname from student where sna in(select sn?from sc where cno? T .*J(2)查询每个学生超过他所有选修课程平均成绩的课程号, 查询结果如下图3.3所示:select sno, t?nofrom sc x whtre Grade= stlect avg(gradef ron sc ywhere y.3no=x. snQ ; 1|Lsnocn-ol(3)查询其他系中比CS系所有学生年龄都小的学生姓名, 查询结果如下图3.4所示:select Sname from
7、 student where Sae (select Sage from studentinhere sdept=p cs1) and sdeptO* cs?:1 11Snjne王敏张立(4)查询选修了全部课程的学生姓名,查询结果如下图3.5所示:AlIIAsname(5)查询至少选修了 200215122选修的全部课程的学生学号,查询结果如下图3.6所示:4、使用T-SQL语句,进行集合查询(1)查询CS系的学生或年龄不大于19岁的学生,查询结果如下图3.7所示:select snantefrom student where not exists(select t from course w
8、here not exists (select 4 from sc where snc=student- sno gnd course- cric;嗣查询 一 IJE101. sp.町ElIME101k(select dist inct Snorom sc where eno in (select crxo from sc where sno=J 200215122)3i 11 m iu2 20021612232002151234200215125舅晨敏立 李刘王张男女女男rs;CS血四、实验过程与分析1在单表查询中,查询只涉及一个表的查询,2、 在连接查询中,查询同时涉及两个以上的表,包含等
9、值连接查 询、自然连接查询、非等值连接查询、自身连接查询,外连接查询和 复合条件连接查询。3、 嵌套查询,主要是查询块的确立,分为相关子查询和不相关子 查询。五、实验总结1、 在单表查询的中,在去掉表中的重复行时,必须用指定的DISTINCT关键字。GROUP B字句将查询结果按某一列或多列的值分 组,值相等的为一组。DRDER BY子句对查询结果按照一个和多个属 性的升序(ASC或降序(DESC,缺省值为升序。2、 在连接查询中,主要是分清表与表的联系。3、 在嵌套查询中,主要掌握带比较运算符的子查询, 带有EXISTS 谓词的子查询和NOT EXISTS胃词的查询。4、集合查询主要包括并操作 UNION交操作INTERSECTS差操作 EXCEPT注意参加集合查询的各查询结果的列数必须相等;对应的数据类型也必须相同
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1