用SQL语句创立如下三个根本
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
:学生表〔Student〕、课程表〔Course〕、学生选课表〔SQ,结构如下所示Student表结构列名说明数据类型约束Sno学号字符串,长度为7主码Sname姓名字符串,长度为10非空Ssex性别字符串,长度为2取‘男‘或‘女‘Sage年龄整数取值15〜45Sdept所在院系字符串,长度为20默认为‘计算机系’CreatetableStudent(Snovarchar(7)primarykey,Snamevarchar(10)notnull,Ssexchar(2)check(Ssex='男'orSsex='女'),Sageintcheck(Sagebetween15and45),Sdeptvarchar(20)default('计算机系'))Course表结构列名说明数据类型约束Cno课程号字符串,长度为10主码Cname课程名字符串,长度为20非空Ccredit学分整数取值大于0Semester学期整数取值大于0Period学时整数取值大于0Createtablecourse(Cnovarchar(10)primarykey,Cnamevarchar(20)notnull,Ccreditintcheck(Sctedit>0),Semesterintcheck(Semester>0),Periodintcheck(Period>0))SC表结构列名说明数据类型约束Sno学号字符串,长度为7主码,引用Student的外码Cno课程号字符串,长度为10主码,引用Course的外码Grade成绩整数取值0〜100CreatetableSC(Snovarchar⑺foreignkeyreferencesstudent(Sno),Cnovarchar(10)foreignkeyreferencescourse(Cno),Gradeintcheck(Gradebetween0and100),Primarykey(Sno,Cno)).查询学生选课表中的全部数据.SELECT*FROMSCgo.查询计算机系学生的姓名、年龄.SelectSname,SageFromStudentWhereSdept='计算机系'.查询成绩在70〜80分之间的学生的学号、课程号和成绩.SelectSno,Cno,GradeFromCourse,ScWherecourseo=scoandsc.Gradebetween70and80.查询计算机系年龄在18〜20之间且性别为“男〞的学生的姓名和年龄.SelectSname,SageFromStudentWhereSagebetween18and20andSsex='男'andSdept=’计算机系'go.查询课程号为“C0T的课程的最高分数.Selecttop1Gradeselectmax(Grade)as最高分FromScfromScWhereCno='C01'whereCno='C01'OrderbyGradedescorderbyGradedesc.查询计算机系学生的最大年龄和最小年龄.Selectmax(Sage)as年龄最大,min(Sage)as年龄最小FromStudentWhereSdept='计算机系'.统计每个系的学生人数.Selectcount(Sdept)as学生人数,SdeptFromStudentGroupbySdept.统计每门课程的选课人数和测试最高分.Selectcount(Sno)as选课人数,c.Sno,max(Grade)as最高分FromCoursecleftjoinScsonco=soGroupbyco.统计每个学生的选课门数和测试平均成绩,弁按学号的升序显示结果.Selectsno,avg(grade)as'平均成绩’,count(cno)as'选课门数’FromscGroupbysnoOrderbysno.查询总成绩超过200分的学生,要求列出学号、总成绩.Selectsno,sum(grade)FromscGroupbysnoHavingsum(grade)>200.查询选修了课程“C02'的学生的姓名和所在系.Selectsname,sdeptFromstudents1,scs2Wheres1.sno=s2.snoands2o='c02'.查询成绩在80分以上的学生的姓名、课程号和成绩,弁按成绩的降序排列结果.Selects1.sname,s2o,s2.gradeFromstudents1,scs2Wheres1.sno=s2.snoandgrade>80Orderbygradedesc.查询哪些课程没有人选修、要求列出课程号和课程名.Selectco,cameFromcoursecleftjoinscsonco=soGroupbyco,cameHavingcount(s.sno)=0.用子查询实现如下查询:查询选修了课程“C01〞的学生的姓名和所在系.Selectsname,sdept,snoFromstudentWheresnoin(SelectsnoFromscWherecno='c01')查询信息系成绩在80分以上的学生的学号、姓名Selectsno,snameFromstudentWheresdept='外语系'andsnoin(SelectsnoFromscWheregrade>80)查询计算机系测试成绩最高的学生的姓名.Selects1.snamefromstudentsWheresdept='计算机系’andsnoin(selectsnofromscWheregradein(selectmax(Grade)fromsc)).删除选课成绩小于50分的学生的选课
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
.DeletefromscWheregrade<70Select*fromsc—验证.将所有选修了课程“C0T的学生的成绩加10分:UpdatescSetgrade=grade+10Wherecno='c01'.将计算机系所有选修了课程“计算机文化根底〞课程的学生的成绩加10分.Select*fromscUpdatescSetgrade=grade+10Wherecnoin(selectcnofromcourseWherecname='计算机文化根底’).创立查询学生的学号、姓名、所在系、课程号、课程名、课程学分的视图.Select*fromcourseSelect*fromstudentsSelect*fromscCreateview学生根本信息AsSelectstudents.sno,sname,sdept,sco,cname,ccreditFromcourse,sc,studentsWherecourseo=scoAndsco=students.sno.创立查询每个学生的平均成绩的视图,要求列出学生学号及平均成绩.Createviews_avgAsSelectsno,avg(Grade)as平均成绩fromscGroupbysno.创立查询每个学生的选课学分的视图,要求列出学生学号及总学分.CreateviewsscAs总学分fromSelectstudents.sno,sum(ccredit)asStudents,sc,courseWherestudents.sno=sc.snoAndsco=courseoGroupbystudents.sno.用SQL语句创立一个名为f_1的函数,该函数能够求生3到100之间的所有素数之和.Createfunctionf_1()ReturnsintAsBeginDeclare@aint,@bint,@iint,@sumintSet@i=3Set@sum=0While@i<101BeginSet@b=0While@a<=@i/2BeginIf@i%@a=0BeginSet@b=1BreakEndSet@a=@a+1EndIf@b=0--@b为0说明之前没有比@i小的数字可以把@i整除BeginSet@sum=@sum+@iEndSet@i=@i+1EndReturn@sumEndGoSelectdbo.f_1().用SQL语句创立一个名为f_2的函数,该函数能够求生任意两个数的最大值.Createfunctionf_2(@x1int,@x2int)returnsintAsBeginDeclare@maxintIf@x1>@x2Return@maxEndSelectdbo.f_2(2,6).用SQL语句创立一个名为pro_get_stu_information的存储过程,该存储过程能够根据用户指定的Sno(学号)求由与该学号对应的学生姓名、课程名、成绩.Createprocedurepro_get_stu_information@mchar(6)outputAsSelectsname,cname,gradefromstudents,sc,courseWherestudents.sno=sc.snoandsco=courseoandsc.sno=@mExecpro_get_stu_information'0603002'.为“学生〞表创立一个依赖于“学号〞的唯一的、非聚集的索引Createuniquenonclusteredindexstu_intonstudents(sno).通过游标逐行读取“学生〞表的记录Declarestu_curcursorforSelect*fromstudentsforreadonlyOpenstu_curFetchstu_curClosestu_curDeallocatestu_cur