【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《3实验三-单表查询》,欢迎阅读!
实验三单表查询
一、实验目的
掌握简单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.wddqxz.cn/1ba36758e618964bcf84b9d528ea81c758f52e07.html