您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 熊健羲实验二数据操作语句
实验二数据操作语句一、实验目的掌握数据操作语句的功能。二、实验内容及步骤首先在SSMS工具中,建立实验一的Students数据库及其中的学生表、课程表和选课表,执行“数据插入语句.sql”文件(若字段名不同,应修改成一致),将数据插入到Students数据库的三张表中,然后编写出实现下述操作的SQL语句,执行并观察执行的结果。1.查询全体课程的信息。Select*fromCourse2、查询哪些课程被学生选修了,列出课程号。Selectdistinct课程号fromSC3、查询年龄在18到20岁之间、非吴姓和钱姓的学生的姓名和所在系。Select姓名,所在系fromStudentwhere年龄=20and年龄=18and姓名notlike'[吴钱]%'4.统计每个学生的选课门数,并按选课门数的递增顺序显示结果。Select学号,COUNT(课程号)as选课门数fromSCgroupby学号orderby选课门数5.列出总成绩超过200分的女学生,要求列出学号、总成绩。selectStudent.学号,sum(成绩)as总成绩fromSCjoinStudentonsc.学号=Student.学号where性别='女'groupbystudent.学号havingSUM(成绩)=2006.查询成绩80分以上的学生的姓名、课程号和成绩,并将结果按成绩的降序排列。select姓名,课程号,成绩fromSCjoinStudentonSC.学号=Student.学号where成绩=80orderby成绩7.查询学生的选课情况,要求列出每位学生的选课情况(包括未选课的学生),并列出学生的学号、姓名、课程号和考试成绩。selectSC.学号,姓名,SC.课程号,成绩as考试成绩fromSCjoinStudentonSC.学号=Student.学号joinCourseonSC.课程号=Course.课程号8.查询和c02课程选课类别相同的课程号。(用自连接实现)selectdistinctt2.课程号,t2.选课类别fromSCast1joinSCast2ont1.选课类别=t2.选课类别wheret1.课程号='c02'andt2.课程号!='c02'9.查询哪些课程没有人选,要求列出课程号和课程名。selectdistinctCourse.课程号,课程名fromCourseleftouterjoinSConCourse.课程号=SC.课程号whereSC.课程号isnull10.查询计算机系年龄最小的三个学生的姓名和年龄。selecttop3withties姓名,年龄fromStudentwhereStudent.所在系='计算机系'orderby年龄11、列出“高等数学”课程考试成绩最好两名的学生的学号、姓名、所在系和考试成绩。selecttop2sc.学号,姓名,所在系,课程名,成绩as考试成绩fromSCjoinStudentonSC.学号=Student.学号joinCourseonSC.课程号=Course.课程号wherecourse.课程名='高等数学'orderby考试成绩desc12、查询计算机系学生考试成绩低于全体学生的总平均成绩的学生的姓名、考试的课程名和考试成绩。select姓名,课程名,成绩as考试成绩fromSCjoinStudentonSC.学号=Student.学号joinCourseonSC.课程号=Course.课程号whereStudent.所在系='计算机系'and成绩(selectAVG(成绩)13.查询平均成绩大于80分的课程的名字和学分。selectdistinct课程名,学分fromSCjoinCourseonSC.课程号=Course.课程号where课程名in(select课程名fromSCjoinCourseonSC.课程号=Course.课程号groupby课程名havingavg(成绩)80)14.查询VB考试成绩最低的学生的姓名、所在系和VB成绩。select姓名,所在系,成绩asVB成绩fromStudentjoinSConStudent.学号=SC.学号where成绩in(selecttop1withties成绩fromSCjoinCourseonSC.课程号=Course.课程号where课程名='VB'orderby成绩)15.查询VB课程考试成绩高于VB平均成绩的学生的姓名。select姓名fromStudentjoinSConSC.学号=Student.学号joinCourseonCourse.课程号=SC.课程号where课程名='VB'and成绩(selectavg(成绩)fromSCjoinCourseonsc.课程号=Course.课程号where课程名='VB')16.修改“VB”课程的考试成绩,如果是计算机系的学生,则增加4分;如果是信息系的学生则增加8分,其他系的学生增加10分。UPdateSCset成绩=成绩+case所在系when'计算机系'then4when'信息系'then8else10endfromStudentjoinSConStudent.学号=SC.学号joinCourseonSC.课程号=Course.课程号wherecourse.课程名='VB'17.删除修课成绩小于50分的学生的修课记录。deletefromSCfromStudentjoinSConStudent.学号=SC.学号where成绩5018.删除信息系修课成绩小于50分的学生的修课纪录,分别用子查询和多表连接形式实现。--多表连接deletefromSCfromStudentjoinSConStudent.学号=SC.学号where所在系='信息系'and成绩50--子查询deletefromSCwhere学号in(select学号fromStudentwhere所在系='信息系')and成绩5019.将所有选修了“c01”课程的学生的成绩加10分。updateSCset成绩=成绩+10fromSCwhere学号in(selectStudent.学号fromstudentjoinsconStudent.学号=SC.学号where课程号='c01')and课程号='c02'20.将计算机系所有选修了‘计算机文化学’课程的学生的成绩加10分,分别用子查询和多表连接形式实现。--多表updateSCset成绩=成绩+10fromscjoinCourseonSC.课程号=Course.课程号joinStudentonSC.学号=Student.学号where所在系='计算机系'andCourse.课程名='计算机文化学'--子查询updateSCset成绩=成绩+10fromscjoinCourseonSC.课程号=Course.课程号wheresc.学号in(selectsc.学号fromSCjoinStudentonSC.学号=Student.学号where所在系='计算机系')and课程名='计算机文化学'21.删除“VB”考试成绩最低的学生的VB修课记录。deletefromSCwhere成绩in(selecttop1成绩fromSCjoinCourseonSC.课程号=Course.课程号where课程名='VB'orderby成绩)22、向学生表中任意添加一条记录。insertintoStudentvalues('9512104','周周','女',18,'计算机系')
本文标题:熊健羲实验二数据操作语句
链接地址:https://www.777doc.com/doc-2219336 .html