实验二实验程序结果.docx
- 文档编号:28775669
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:16
- 大小:110.25KB
实验二实验程序结果.docx
《实验二实验程序结果.docx》由会员分享,可在线阅读,更多相关《实验二实验程序结果.docx(16页珍藏版)》请在冰豆网上搜索。
实验二实验程序结果
3.4.1单表查询:
查询全体学生的姓名、出生年份和所在的院系,要求用小写字母表示所有系名。
selectSnameNAME,'YearofBirth'BIRTH,2004-SageBIRTHDAY,LOWER(Sdept)DEPARTMENT
fromStudent
结果为:
查询所有年龄在20岁以下的学生姓名及其年龄。
selectSname,Sage
fromStudent
whereSage<20;
结果为:
查询考试成绩有不及格的学生的学号。
selectdistinctSno
fromSC
whereGrade<60;
结果为:
(没有不及格的学生)
查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄。
selectSname,Sdept,Sage
fromStudent
whereSagebetween20and23;
结果为:
查询计算机科学系(CS),数学系(MA)和信息系(IS)学生的姓名和性别。
selectSname,Ssex
fromStudent
whereSdeptin('CS','MA','IS')
结果为:
查询既不是计算机科学系、数学系,也不是信息系的学生的姓名和性别。
selectSname,Ssex
fromStudent
whereSdeptnotin('CS','MA','IS');
结果为:
(没有符合查询条件的学生)
查询学号为200215121的学生的详细情况。
select*
fromStudent
whereSnolike'200215121';
结果为:
查询所有姓刘的学生的姓名、学号和性别。
selectSname,Sno,Ssex
fromStudent
whereSnamelike'刘%'
结果为:
查询姓“欧阳”且全民为3个汉字的学生的姓名。
selectSname
fromStudent
whereSnamelike'欧阳__';/*一个汉字占个字符,需要两个_*/
结果为:
(没有姓“欧阳”且全民为3个汉字的学生)
查询名字中第2个字为“阳”字的学生的姓名和学号。
selectSname,Sno
fromStudent
whereSnamelike'__阳%';/*一个汉字需要两个_*/
结果为:
(没有满足查询条件的学生)
查询所有不姓刘的学生姓名。
selectSname,Sno,Ssex
fromStudent
whereSnamenotlike'刘%';
结果为:
查询DB_Design课程的课程号和学分。
SelectCno,Ccredit
FromCourse
WhereCnameLIKE'DB\_Design'ESCAPE'\';
结果为:
(没找到符合条件的结果)
查询以“DB_”开头,且倒数第3个字符为i的课程的详细情况。
Select*
FromCourse
WhereCnameLIKE'DB\_%i__'ESCAPE'\';
结果为:
(没找到符合条件的结果)
某些学生选修课程后没有参加考试,所以有选修课记录,但没有考试成绩。
查询缺少成绩的学生的学号和相应的课程号。
SelectSno,Cno
FromSC
WhereGradeISNULL;
结果为:
(没找到符合条件的结果)
查询所有有成绩的学生学号和课程号。
SelectSno,Cno
FromSC
WhereGradeISNOTNULL
结果为:
查询计算机科学系年龄在20岁以下的学生姓名。
SelectSname
FromStudent
WhereSdept='CS'ANDSage<20;
结果为:
查询选修了3号课程的学生的学号及其成绩,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排序。
Select*
FromStudent
ORDERBYSdept,SageDESC;
结果为:
查询学生总人数。
SelectCOUNT(*)
FromStudent;
结果为:
查询选修了课程的学生人数。
SelectCOUNT(DISTINCTSno)
FromSC;
结果为:
计算1号课程的学生平均成绩。
SelectAVG(Grade)
FromSC
WhereCno='1';
结果为:
查询选修1号课程的学生最高分数。
SelectMAX(Grade)
FromSC
WhereCno='1';
结果为:
查询学生200215012选修课程的总学分数。
SelectSUM(Ccredit)
FromSC,Course
WhereSno='200215012'ANDSC.Cno=Course.Cno;
结果为:
(SC表与Course表没有‘200215012’,故结果为NULL)
求各个课程号及相应的选课人数。
SelectCno,COUNT(Sno)
FromSC
GroupBYCno;
结果为:
查询选修了3门以上课程的学生学号。
SelectSno
FromSC
GROUPBYSno
HAVINGCOUNT(*)>3;
结果为:
(没有该类学生)
连接查询:
查询每个学生及其选修课程的情况。
SelectStudent.*,SC.*
FromStudent,SC
WhereStudent.Sno=SC.Sno;
结果为:
查询选修2号课程且成绩在90分以上的所有学生。
SelectStudent.Sno,Sname
FromStudent,SC
WhereStudent.Sno=Sc.SnoAND
SC.Cno='2'ANDSC.Grade>90;
结果为:
(没有符合条件的结果)
查询每个学生的学号、姓名、选修的课程名及成绩。
SelectStudent.Sno,Sname,Cname,Grade
FromStudent,SC,Course
WhereStudent.Sno=SC.SnoANDSC.Cno=Course.Cno;
结果为:
嵌套查询:
查询与“刘晨”在同一个系学习的学生。
SelectSno,Sname,Sdept
FromStudent
WhereSdeptIN
(selectSdept
FromStudent
WhereSname='刘晨');
本例也可以用自身连接来完成:
SelectS1.Sno,S1.Sname,S1.Sdept
FromStudentS1,StudentS2
WhereS1.Sdept=S2.SdeptAND
S2.Sname='刘晨';
结果为:
查询选修了课程名为“信息系统”的学生学号和姓名。
SelectSno,Sname
FromStudent
WhereSnoIN
(selectSno
FromSC
WhereCnoIN
(selectCno
FromCourse
WhereCname='信息系统'
)
);
本查询同样可以用连接查询实现:
SelectStudent.Sno,Sname
FromStudent,SC,Course
WhereStudent.Sno=SC.SnoAND
SC.Cno=Course.CnoAND
Course.Cname='信息系统';
结果为:
找出每个学生超过他选修课程平均成绩的课程号。
SelectSno,Cno
FromSCx
WhereGrade>=(selectAVG(Grade)
FromSCy
Wherey.Sno=x.Sno);
结果为:
查询其他系中比计算机科学系某一学生年龄小的学生姓名和年龄,
SelectSname,Sage
FromStudent
WhereSage (selectSage FromStudent WhereSdept='CS') ANDSdept<>'CS'; 本查询同样也可以用聚集函数实现。 SelectSname,Sage FromStudent WhereSage< (selectMIN(Sage) FromStudent WhereSdept='CS') ANDSdept<>'CS'; 结果为: 查询所有选修了1号课程的学生姓名。 SelectSname FromStudent WhereEXISTS (select* FromSC WhereSno=Student.SnoANDCno='1'); 结果为: 查询没有选修1号课程的学生姓名。 SelectSname FromStudent WhereNOTEXISTS (select* FromSC WhereSno=Student.SnoANDCno='1'); 查询选修了全部课程的学生姓名。 SelectSname FromStudent WhereNOTEXISTS (select* FromCourse WhereNOTEXISTS (select* FromSC WhereSno=Student.Sno ANDCno=Course.Cno)); 结果为: 查询计算机科学系的学生及年龄不大于19岁的学生。 Select* FromStudent WhereSdept='CS' UNION Select* FromStudent 结果为: 查询选修了课程1或者选修了课程2的学生。 SelectSno FromSC WhereCno='1' UNION SelectSno FromSC WhereCno='2'; 结果为: 查询计算机科学系的学生与年龄不大于19岁的学生的交集。 Select* FromStudent WhereSdept='CS' INTERSECT Select* FromStudent WhereSage<=19; 这实际上就是查询计算机科学系中年龄不大于19岁的学生。 Select* FromStudent WhereSdept='CS'AND Sage<=19; 结果为: 查询既选修了课程1又选修了课程2的学生。 就是查询选修课程1的学生集合与选修课程2的学生集合的交集。 SelectSno fromSC whereCno='1' INTERSECT SelectSno FromSC WhereCno='2'; 本例也可以表示为: SelectSno FromSC WhereCno='1'ANDSnoIN (selectSno FromSC WhereCno='2'); 结果为: 查询计算机科学系的学生与年龄不大于19岁的学生的差集。 Select* FromStudent WhereSdept='CS' EXCEPT Select* FromStudent WhereSage<=19; 也就是查询计算科学系中年龄大于19岁的学生。 Select* FromStudent WhereSdept='CS'ANDSage>19; 结果为:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 程序 结果