实验三单表查询 一、实验目的 掌握简单SQL 查询语句的应用,包括like、top、order by、compute 、聚集函数的应用。 二、实验内容 1、根本查询 〔1〕查询学生表中全体学生的全部信息。 select*fromStudent 〔2〕检索全体学生的学号、XX。 selectSno,Sname fromStudent 2、查询时改变列标题的显示 检索全体学生的学号、XX、家庭地址信息,并分别加上“学生〞、“学号〞、“家庭地址〞的别名信息。 selectSnameas学生,Snoas学号,Home_addras家庭地址 fromStudent 3、条件查询 〔1〕查询成绩大于80分的学生的学号与课程号、成绩。 selectSno,Cno,Grade fromSC whereGrade>80 〔2〕查询成绩介于75~80分的学生的学号与课程号、成绩。 selectSno,Cno,Grade fromSC whereGradebetween 75 and 80 〔3〕查询选修了课程号为“002〞,且成绩大于80的学生的学号。 selectSno fromSC whereGrade>80 andCno='002' 〔4〕某些学生选修某门课程后没有参加考试,所以有选课记录,但没有考试成绩,下面我们来查一下缺少成绩的学生的学号和相应的课程号。 selectSno,Cno fromSC whereGradeisnull 4、基于IN子句的数据查询 从课程表中查询出“高数〞、“C语言程序设计〞的所有信息。 select*fromCourse whereCnamein('高数','c语言程序设计') 5、基于BETWEEN。。。。AND子句的数据查询 查询所有成绩在70-80之间的学生选课信息。(between···and为闭区间) select*fromSC whereGradebetween 70 and 80 6、基于Like子句的查询 〔1〕从学生表中分别检索出姓张的所有同学的资料;检索名字的第二个字是“红〞或“虹〞的所有同学的资料。 select*fromStudent 1 / 3 whereSnameLIKE'张%'orSnameLIKE'_红%'orSnameLIKE'_虹%' 〔2〕查询课程名为Visual_Basic的课程的学分。〔提示:使用ESCAPE短语〕 selectCreditfromCourse whereCnameLIKE'Visual\_Basic'ESCAPE'\' 7、使用top关键字查询 〔1〕从选课表中检索出前3个课程信息。 selectTop 3 * fromCourse 〔2〕从选课表中检索出前面20%的课程信息。 selectTop 20 PERCENT* fromCourse 8、消除重复行 检索出学生已选课程的课程号,要求显示的课程号不重复。 selectdistinctCnofromCourse 9、查询经过计算的值。 查询全体学生的XX与其年龄〔提示:利用系统函数getdate()〕 selectSnameasXX,YEAR(getdate())-YEAR(Birth)as年龄 fromStudent 10、使用ORDER BY语句对查询的结果进行排序 (1)显示所有学生的根本信息,按班号排列,班号相同那么再按学号排列。 select*fromStudent OrderbyClassno,Sno (2) 查询全体学生的XX与其年龄,并按学生的年龄的降序排列。 selectSnameasXX,year(getdate())-year(Birth)as年龄 fromStudent Orderby'年龄'desc 11、使用聚合函数 〔1〕查询学生总人数。 selectcount(distinctSno)as学生总人数 fromStudent (2)计算“002〞号课程的学生平均成绩、最高分、最低分。 selectAVG(Grade)as平均分,MAX(Grade)as最高分,MIN(Grade)as最低分 fromSC WhereCno='002' 12、使用Group子句进行查询 〔1〕查询各班级学生总人数。 selectClassnoas班级,COUNT(*)as学生人数 fromStudent GroupbyClassno (2)汇总总分大于150分的学生的学号与总成绩。 selectSnoas学号,Sum(Grade)as总成绩 fromSC GroupbySno HavingSum(Grade)>150 (3)查询各个课程号相应的选课人数。 selectCnoas课程号,Count(*)as学生人数 fromSC GroupbyCno 13、使用Compute和compute by子句进行查询 〔1〕汇总每个学生的学号与总成绩。 2 / 3 selectSno学号,Grade成绩 fromSC OrderbySno ComputeSum(Grade)bySno (2)按学号汇总出每个学生的学号与总成绩、最高分、最低分,与所有学生总成绩。 selectsno学号,grade成绩 fromSC orderbysno computesum(grade),MAX(grade),MIN(grade)bysno selectsno学号,grade成绩 fromSC orderbysno computesum(grade) 观察使用Compute子句和Compute by 子句执行结果有何不同? 答:Compute by子句执行后结果以by之后的关键词进行排序。 3 / 3 本文来源:https://www.wddqw.com/doc/1ba36758e618964bcf84b9d528ea81c758f52e07.html