实验三 数据查询.docx
口)洋及夜工用战数据库原理与应用实验告书2013 / 2014 学年第二学期计算机科学与工程学院2014实验三数据查询一、实验目的1、掌握查询语句的基本组成和使用方法2、掌握常用查询技巧二、实验内容和要求SnoSnameSsexSageSdept9512101李勇男19计算机系9512103王敏女20计算机系9521101张莉女22信息系9521102吴宾男21信息系9521103张海男20信息系9531101钱小平女18数学系9531102王大力男19数学系课程表:CourseCnoCnameCcreditSemsterPeriodC01计算机导 论313C02VB434C03计算机网 络474C04数据库基 础664C05高等数学818选课表:SCSnoCnoGrade9512101C03959512103C03519512101C05809512103C05609521101C05729521102C05809521103C05459531101C05819531102C05949512101C01NULL9531102C01NULL9512101C02879512101C04762、完成以下查询(1)查询全体学生的信息。 select * from student口结果 j消息SNOSNAMESSEXSAGESDEPT1| 9512101i李勇男19计算机系29512103王敏女20计算机系39521101张莉女22信息系49521102吴宾男21信息系59521103张海男20信息系69531101钱小平女18数学系79531102王大力里19数学系(2)查询“信息系”学生的学号,姓名和出生年份。select sno, sname, 2014-sage from Students where SDEPT ='信息系'口结果消息sno sname 阮列名)1"9521101,,|张莉1992、29521102吴宾199339521103张海1的4(3)查询考试不及格的学生的学号。select Distinct Sno from SC where Grade<60sno1 §灯云而;2 ',9521W3(4)查询无考试成绩的学生的学号和相应的课程号。 select Sno, Cno from SC where Grade is nullH结果显消息cno1 j 9512101""|2 ' 953liO2 -Z(5)将学生按年龄升序排序。select * from student order by Sage asc4 inJ结果肖息SNOCNOGRADE1| 9512101I C01JNULL29531102C01NULL39521103C054549512103C035159512103C056069521101C057279512101C047689512101C058099521102C0580109531101C0581119512101C0287129531102C0594139512101C0395(6)查询选修了课程的学生的学号和姓名。select distinct student. Sno, Snamc from student, SC where student. Sno=SC. Sno结果_j消息Snosname片1-.3-":1: 9512101!李勇212103王敬39521101张莉49521102吴宾59521103张海69531101钱小平79531102王大力(7)查询年龄在20-23岁之间的学生的姓名,系,年龄。select Sname, Sage, Sdept from student where Sage between 20 and 23;结果消息snamesdeptsage1;王敏I计算机系202张莉信息系223吴宾信息系214张海信息系20(8)查询同时选修了 “计算机导论”,“高等数学”课程的学生的学号,姓 名。Select student. Sno, Sname from student, sc, Course wherestudent, sno=sc. sno and sc. eno=course, eno and cname=,高等数学'andstudent, sno in (select sno from sc where cno= (select eno from course where cname=,计算机导论')(9)查询姓“张”的学生的基本信息。select * from student where Sname like '张%'日结果消息SNO SNAME SSEX SAGE SDEPT a1i 9521101 ;张莉女22信息系29521103张海男20信息系(10)查询“95211”班学生的选课情况,要求输出学号,姓名,课程名, 成绩,按照学号升序排序。select student. Sno, Sname, Cname, Grade from student, SC,course where student. Sno=SC. Sno and course. Cno=SC. Cno and student. Sno like '95211%' order by student.Sno41“1口结果消息SnoSnameCnameGrade1! 9521101 I张莉高等数学7229521102吴宾高等数学8039521103张海高等数学45(ID查询选修了课程的学生的总人数。 select count (distinct sno) from SC(12)查询选修了 “C05”课程的的学生成绩单,要求输出学号,姓名,成 绩,结果按班级升序,成绩降序排列。select student. Sno, Sname, Grade from student, SC wherestudent. Sno=SC. Sno and Cno='C05' order by left (student. Sno, 5) asc,Grade desc口结果L消息1i 9512101 I ;2951210339521101495211025952110369531101795311021i 9512101 I ;295121033952110149521102595211036953110179531102snosnamegrade李勇8060458194(13)统计各门课程的成绩,要求输出课程代号,课程名,平均成绩,选修 人数。(成绩为NULL值的不统计)select course. Cno, Cname, avg(Grade),count (Sno) from course, Sc where course. Cno=SC. Cno and Grade is not null group by Course. Cno, Cname4川 I二I结果消息cnocname阮列名)田列名)1j C02i VB8712C03计算机网络7323C04数据库基础7614C05高等数学737(14)统计各门课程的不及格人数,要求输出课程代号,课程名,不及格人 数。select Course. Cno, Cname, count(Sno) from SC, Course whereSC. Cno=course. Cno and Grade<60 group by Course. Cno, Cname« L 阳 I国结果及消息Cno Cname比列名)1 i'c63'" J计算机网络12C05高等数学1(15)查询选修平均成绩在75分以上的学生的学号,姓名,所在系。select sc. sno,sname, sdept from student,sc wherestudent. sno=sc. sno group by sc. sno, sname, sdept having avg(grade)>75< | J" |更结果直消息 sno sname sdept _1 9512101iJ李勇计算机系2 9521102吴宾信息系3 9531101钱小平数学系4 9531102王大力 数学系(16)查询与“王大力”同一个系的学生的基本信息select * from student where sdept in (select sdept from student where sname=,王大力')结果方消息SNOSNAMESSEXSAGESDEPT19531101 |钱小平女18数学系29531102王大力里19数学系(17)查询选修平均分高于所有学生平均分的学生的学号,并按学号升序排 列。select student. Sno from student, SC where student. Sno=SC. Sno group by student. Sno having avg(Grade)>(select Avg(Grade) from SC) order by student. Sno asc(18)查询未选修“VB”或“数据库基础”两门课的学生的学号,姓名,系 名。(要求用嵌套查询)select sno, snamc, sdept from Student where exists(select * from Course where cname=,VB* and not exists(select * from SC where sno=Sludent. sno and eno=Course, eno and Course, cname!='数据库基础')<I iii i结果_J消息snosnamesdept1i 9512103Ij王敬计算机系29521101张莉信息系39521102吴宾信息系49521103张海信息系59531101钱小平数学系69531102王大力数学系(19)查询选修了全部课程的学生的学号,姓名,系名。select sno, snamc, sdept from student where not exists(select * from course where not exists (select * from sc where sno=student. sno and eno=course, eno )-2结果.J消息 sno sname sdept 1 李勇计算机系(20)输出“高等数学”课程成绩前三名的学生的学号,姓名,系名select top 3 student, sno, sname, sdept from student, sc, course where student. sno=sc. sno and sc. cno=course. eno and cname=,高等数学'order by grade desc4 | "I |S结果反消息sno sname sdept1 953il(j2 j王大力 数学系2 '' 9531101“饯小平 数学系3 9512101李勇 计算机系三、实验总结:(20分)通过本次试验,我对SQL Server查询语句有了更深刻的了解,学会了怎样 用查询语句在SQL2005创立的数据库中查询想要的结果。掌握了查询语句的基本 组成及使用方法。在查询时一定要找准所要查询的表,通过约束条件在表中进行 精确查找。不仅如此,我还了解了查询语句的嵌套使用,能够更好的实现数据查 询,值得学习研究。四、教师评分: