第五章作业1、查询学生选课表中的全部数据select*fromsc2、查询计算机系学生的姓名、年龄selectsname,sagefromstudentwheresdept=‘计算机系‘3、查询成绩在70-80的学生的学号、课程号和成绩select*fromscwheregradebetween70to804、查询计算机系年龄在18-20的男生的姓名、年龄selectsname,sagefromstudentWheresdept=’计算机系’andsagebetween18to20andssex=‘男’5、查询“C01”课程的最高成绩Selectmax(grade)fromscwherecno=‘c01’6、查询计算机系学生的最大年龄和最小年龄selectmax(sage),min(sage)fromstudentwheresdept=‘计算机系’7、统计每个系的学生人数selectsdept,count(*)fromstudentgroupbysdept8、统计每门课程的选课人数和考试最高分selectcno,count(*),max(grade)fromscgroupbycno9、统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果selectsno,count(*),sum(grade)fromscgroupbysnoorderbycount(*)asc10、查询总成绩超过200分的学生,要求列出学号、总成绩selectsno,sum(grade)fromscgroupbysnohavingsum(grade)20011、查询选修了”C02“课程的学生的姓名和所在系selectsname,sdeptfromstudentsjoinscons.sno=sc.snowheresc.con=‘c02’12、查询成绩80分以上的学生的姓名、选的课程号和成绩,并按成绩降序排列结果selectsname,cno,gradefromstudentsjoinscons.sno=sc.snowheregrade80orderbygradedesc13、查询哪些学生没有选课,要求列出学号、姓名和所在系selects.sno,sname,sdeptfromstudentsleftjoinscons.sno=sc.snowheresc.cnoisnull14、查询与VB在同一学期开设的课程的课程名和开课学期selectc2.cname,c1.semesterfromcoursec1joincoursec2onc1.semester=c2.semesterwherec1.cname=‘VB’andc2.cname!=‘VB’15、查询与李勇年龄相同的学生的姓名、所在系和年龄selects2.sname,s2.sdept,s2.sagefromstudents1joinstudents2ons1.sage=s2.sagewheres1.sname=‘李勇’ands2.sname!=‘李勇’16、查询计算机系年龄最小的2名学生的姓名和年龄selecttop2withtiessname,sagefromstudentwheresdept=‘计算机系’orderbysageasc17、查询VB考试成绩最高的前2名学生的姓名、所在系和VB成绩,包括并列的情况selecttop2withtiessname,sdept,gradefromstudentsjoinscons.sno=sc.snojoincourseconsc.cno=c.cnowherecname=‘VB’orderbygradedesc18、查询选课门数最多的前2名学生的学号和选课门数,包括并列的情况selecttop2withtiessno,count(*)fromscgroupbysnoorderbycount(*)desc19、查询学生人数最多的系,列出系名和人数。selecttop1sdept,count(*)fromstudentgroupbysdeptorderbycount(*)desc20、用子查询实现如下查询:1)查询选修了”C01“课程的学生姓名和所在系selectsname,sdeptfromstudentwheresnoin(selectsnofromscwherecon=‘c01’)2)查询数学系成绩80分以上的学生的学号、姓名、选的课程号和成绩selectsno,sname,cno,gradefromstudentjoinsconstudent.sno=sc.snowheresdept=‘数学系’andsnoin(selectsnofromscwheregrade80)20、3)查询计算机系考试成绩最高的学生的姓名selectsnamefromstudentsjoinscons.sno=sc.snowheresdept=‘计算机系’andgrade=(selectmax(grade)fromscjoinstudentsons.sno=sc.snowheresdept=‘计算机系’)4)查询数据结构考试成绩最高的学生的姓名、所在系、性别和成绩selectsname,sdept,ssex,gradefromstudentsjoinscons.sno=sc.snojoincourseonsc.cno=course.cnowherecname=‘数据结构’andgrade=(selectmax(grade)fromscjoincountonsc.cno=course.cnowherecname=‘数据结构’)21、查询没有选修VB课程的学生的姓名和所在系selectsnamesdeptfromstudentsjoinscons.sno=sc.snojoincourseconc.cno=sc.cnowherecname!=‘VB’22、查询计算机系没有选课的学生的姓名和所在系selectsnamefromstudentsleftjoinscons.sno=sc.snoWheresdept=‘计算机系’andsc.cnoisnull23、查询计算机系考试平均最低的学生的姓名以及所选的课程名selectsname,cnamefromstudentsjoinscons.sno=sc.snojoincourseconc.cno=sc.cnowheresdept=‘计算机系’andsno=(selecttop1snofromscorderbyave(grade)asc)24、查询1-5学期中选课人数最少的课程的课程名、开课学期和学分SELECTCname,Semester,CreditFROMCourseWHERE(CnoIN(SELECTTOP1WITHtiescnoFROMscGROUPBYcnoORDERBYCOUNT(*)ASC))AND(SemesterBETWEEN1AND5)25、createtabletest_t(col1int,col2char(10)notnull,col3char(10))insertintotest_t(col2)values(‘b1’)insertintotest_t(col1,col2,col3)values(1,’b2’,’c2’)insertintotest_t(col1,col2)values(2,’b3’)26、删除考试成绩低于50分的学生的该门课程的选课记录deletefromscwheregrade5027、删除没有人选的课程记录deletefromcoursewherecnonotin(selectcnofromsc)28、删除计算机系VB成绩不及格学生的VB选课记录deletefromscjoinstudentsons.sno=sc.snojoincourseconc.cno=sc.cnowherecname=‘vb’andgrade60andsdept=‘计算机系’29、删除VB考试成绩最低的学生的VB选课记录deletefromscjoinstudentsons.sno=sc.snojoincourseconc.cno=sc.cnowherecname=‘vb’andgrade=(selectmin(grade)fromscjoinstudentsonsc.sno=s.snowherecname=‘vb’)30、将第2学期开设的所有课程的学分增加2分updatecoursesetcredit=credit+2wheresemester=231、将VB课程的学分改为3分updatecoursesetcredit=credit+2wherecname=‘vb’32、将计算机系学生的年龄增加1岁updatestudentsetsage=sage+1wheresdept=‘计算机系’33、将信息系学生的“计算机文化学”课程的考试成绩加5分updatescsetgrade=grade+5wherecnoin(selectcnofromcoursewherecname=‘计算机系’)andsnoin(selectsnofromstudentwheresdept=‘信息系’)34、将选课人数最少的课程的学分降低1分updatecoursesetcredit=credit-1wherecno=(selecttop1cnofromscgroupbycnoorderbycount(*)asc)第六章作业9、1)在student表上为sname列建立一个聚集索引,索引名为sldxcreateclusteredindexsldxonstudent(sname)2)在course表上为cname列建立一个唯一的非聚集索引,索引名为cnidxcreateuniquenonclusteredindexcnidxoncourse(cname)3)在SC表上为SNO和CNO建立一个组合的聚集索引,索引名为snocnoidxCreateclusteredindexsnocnoidxonsc(sno,cno)4)删除SNAME列上建立的sldx索引Dropindexsldx12、1)查询学生的学号、姓名、所在系、课程名、课程号、课程学分createviewv1asselects.sno,sdept,cno,cname,creditfromstudentsjoinscons.sno=sc.snojoincourseconc.cno=sc.cno2)查询学生的学号、姓名、选修的课程名和考试成绩createviewv2asselects.sno,sname,cname,gradefromstudentsjoinscons.sno=sc.snojoincourseconc.cno=sc.cno3)统计每个学生的选课门数,要求列出学生学号和选课门数createviewv3asselectsno,count(*)astotalfromscgroupbysno4)统计每个学生的选课总学分,要求列出学生学号和总学分(说明:考试成绩大于等于60分才能获得此门课程的学分)createviewv4asselectsno,sum(credit)total_creditfromscjoincourseconsc.cno=c.cnowheregrade=60groupbysno13、1)查询考试成绩大于等于90分得学生的姓名、课程名和成绩selectsname,cname,gradefromv2wheregrade=902)查询选课门数超过3门的学生的学号和选课门数select*fromv3wheretotal33)查询计算机系选课门数超过3门的学生的姓名和选课门数selectsname,totalfromv3joinstudentsonv3.sno=s.sno4)查询修课总学分超过10分的学生的学号、姓名、所在系和修课总学分selectv4.sno,sname,sdept,total_creditfromv4joinstudentsons.sn