实验三数据库查询Word格式.docx
《实验三数据库查询Word格式.docx》由会员分享,可在线阅读,更多相关《实验三数据库查询Word格式.docx(17页珍藏版)》请在冰点文库上搜索。
〖目的要求〗
1、掌握SELECT子句以及WHERE子句的使用方法。
2、学会应用ORDERBY子句。
3、掌握5种基本的聚合函数。
4、学会分组统计和二次查询。
〖实验内容〗
1、SELECT子句的应用。
查看所有学生的信息。
select*fromstudent
查看所有学生的学号、姓名。
selectsno,snamefromstudent
查看所有学生的学号、姓名,并将输出结果中的列名显示为“学号”、“姓名”。
selectsno学号,sname姓名fromstudent
查询所有学生的姓名、出生日期和年龄,并将输出结果中的列名显示为“姓名”、“出生日期”、“年龄”。
selectsname姓名,birthday出生日期,year(getdate())-year(birdthday)年龄fromstudent
运行以下两组SQL语句,看结果有何区别。
selectsnofromsc
selectdistinctsnofromsc
selectsno,gradefromsc
selectdistinctsno,gradefromsc
distinct可以从查询结果中消除重复的行。
如果对某列进行查询时,该列中含有NULL值,那么NULL值也会出现在结果集中,Selectdistinct处理NULL值与处理其他数据一样。
2、WHERE子句的应用。
查询所有“男”同学生信息。
select*fromstudentwheressex='
男'
查询的有1989年和1980年出生的学生的信息。
select*fromstudentwherebirthdaybetween'
1989-1-1'
and'
1990-12-31'
查询选修了1号课程、2号课程、3号课程的选课情况。
select*fromscwherecnoin('
1'
'
2'
3'
)
查询学号为“20080101”同学正在学习的课程。
selectcnofromscwheresno='
20080101'
andgradeisnull
查询姓“陈”的同学的信息。
select*fromstudentwheresnamelike'
陈%'
在Where子句中可以使用算术运算符、逻辑运算符、比较运算符、集合运算符、Like匹配运算符、Is[NOT]Null测试空值运算符等。
3、ORDERBY子句的应用。
查询所有学生的姓名,出生日期,并按日期从前向后输出。
selectsname,birthdayfromstudent
orderbybirdthday
查询选了“2”号课程的学生的学号、成绩,并按成绩由高到低顺序输出。
selectsno,gradefromscwherecno='
orderbygradedesc
查询所有学生信息,结果按性别降序、年龄升序排列。
select*fromstudent
orderbyssexdesc,birdthday
查询成绩在80-89分之间的所有学生的选课记录,查询结果按照成绩的降序排列。
select*fromsc
wheregrade>
=80andgrade<
=89
4、聚合函数的应用。
统计学生的平均成绩。
selectavg(grade)fromsc
求学生的最高分、最低分和平均分。
selectmax(grade)最高分,min(grade)最低分,avg(grade)平均分fromsc
求女学生的学生总数。
selectcount(*)
fromstudent
wheressex='
女'
查询有多少名学生“2”号课程成绩高于80分。
selectcount(sno)
fromsc
wherecno='
andgrade>
80
5、聚合操作与分组统计的应用。
查询各个系的学生人数。
selectsdept,count(sno)fromstudent
groupbysdept
查询选修各门课程的学生人数。
selectcno,count(sno)fromsc
groupbycno
〖问题解答〗
WHERE子句与HAVING子句有何不同?
HAVING子句和WHERE子句的相似之处就是都定义搜索条件;
但是和WHERE子句不同,HAVING子句与组有关,而不是与单个的行有关。
〖思考、练习题〗
用SQL语句完成下列查询。
1查询所有年龄为20岁的男生的信息。
2查询选修1号课程的学生的最高分。
3查询所有名字中含有“王”字的学生的信息。
4查询本学期正在选修3号课程的学生的学号。