资源描述:
《实验五 sql语言之高级查询》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验五高级查询姓名:学号:专业:班级:同组人:实验日期:【实验目的与要求】1、熟练掌握IN子查询2、熟练掌握比较子查询(尤其要注意ANY、ALL谓词如何用集函数代替)3、熟练掌握EXISTS子查询(尤其要注意如何将全称量词和逻辑蕴含用EXISTS谓词代替)4、熟练掌握复杂查询的select语句【实验准备】1.准备好测试数据2.熟悉多表查询与嵌套查询的用法。【实验内容】5.0准备工作1.创建测试用数据库XSGL,并在其中创建三个表,其结构和约束如下:Student表结构及其约束为:表5-1student表结构和约束列名称类型宽度允许空值缺省值主键说明Snochar8否是学号
2、Snamevarchar8否学生姓名Sexchar2否男性别Birthdatetime否出生年月Classnochar3否班级号Entrance_datedatetime否入学时间Home_addrvarchar40是家庭地址Course表结构及其约束为:表5-2course表结构和约束列名称类型宽度允许空值缺省值主键说明CnoChar3否是课程号Cnamevarchar20否课程名称Total_periorint是总学时Creditint是学分SC表结构及其约束为:第9页共9页表5-3SC表结构和约束列名称类型宽度允许空值缺省值主键外键说明SnoChar8否是学号Cno
3、char3否是课程号Gradeint是否成绩其中成绩为百分制。2.对表添加、修改、删除数据向Student表中插入如下数据:表5-4Student表SnoSnameSexBirthClassnoEntrance_dateHome_addrSdeptPostcode20050001张虹男1984/09/0110512005/09/01南京CS20041320050002林红女1983/11/120512005/09/01北京CS10001020050003赵青男1982/05/110512005/09/01上海MA200013向Course表中插入数据:表5-5Course
4、表CnoCnameTotal_periorCredit001高数683002C语言程序设计754003JAVA语言程序设计683向SC表中插入数据:表5-6SC表SnoCnoGrade20050001001892005000100278200500010038920050002002602005000300180为达到更好的测试效果,请自行向数据库表中添加其它数据,使表中数据量达10条以上,并使每个字段值表现出多样性。5.1复杂查询(1)查询比“林红”年纪大的男学生信息。SQL语句:selectSno,Sname,Birth,Classno,Entrance_date,H
5、ome_addr,Sdept,PostcodefromStudentwhereBirth<(selectBirthfromStudentwhereSname='林红')第9页共9页andSex='男'(2)检索所有学生的选课信息。SQL语句:SelectStudent.Sno,Sname,Sex,Classno,Sdept,Course.Cname,Total_perior,Credit,SC.Cno,GradefromStudent,SC,CoursewhereStudent.Sno=SC.SnoandSC.Cno=Course.Cno(3)查询已选课学生的学号、姓名、
6、课程名、成绩。连接查询T—SQL语句:selectStudent.Sno,Sname,Course.Cname,SC.GradefromStudent,SC,CoursewhereStudent.Sno=SC.SnoandSC.Cno=Course.Cno(4)查询选修了“C语言程序设计”的学生的学号和姓名。SQL语句:selectStudent.Sno,SnamefromStudent,Course,SCwhereStudent.Sno=SC.SnoandSC.Cno=Course.CnoandCourse.Cname='C语言程序设计'(5)查询与“张虹”在同一个班级
7、的学生学号、姓名、家庭住址。(子查询)SQL语句:selectSno,Sname,Home_addrfromStudentwhereClassno=(selectClassnofromStudentwhereSname='张虹')andSname<>'张虹'连接查询SQL语句:selects1.Sno,s1.Sname,s1.Home_addrfromStudents1,Students2wheres1.Classno=s2.Classnoands2.Sname='张虹'ands1.Sname<>'张虹'(6)查询其他班级中比