SQLSever指导:查询语句-单表查询
查询语句-单表查询
复习:单表查询
1。选择表中的几列
2。在表
3中选择几个元组。对查询结果排序
4。使用设置功能
5。将查询结果分组[降序排列:desc;;默认值是升序
。当排序列包含空值时,
ASC:最后显示具有排序列空值的元组
DESC:首先显示具有排序列空值的元组
查询语句。
SELECT Sno,Grade
FROM SC
WHERE Cno = ' 3 '
ORDER BY Grade desc;
查询语句-单表查询
[例25]查询所有学生。查询结果按系号升序排列,同系学生按年龄降序排列。
SELECT *
FROM Student
ORDER BY Sdept,Sage desc;
查询语句-单表查询
四。使用集合函数
count
count([distinct | all]*)
count([distinct | all])
计算平均值
AVG([distinct | all])
查询语句-单表查询
求值
Max([distinct | all])
求最小值
。DISTINCT短语:计算时取消指定列中的重复值
ALL短语:不取消重复值
ALL为默认值
查询语句-单表查询
[例26]查询学生总数。
从学生中选择COUNT(*)
;
[例27]查看参加该课程的学生人数。
SELECT COUNT(DISTINCT Sno)
来自SC;
注意:使用DISTINCT以避免重复计算学生人数。
查询语句-单表查询
[例28]计算1号课程学生的平均成绩。
SELECT AVG(等级)
FROM SC
WHERE Cno = ' 1 ';
[例29]查询选修状元课程的学生成绩。
SELECT MAX(Grade)
FROM SC
WHER Cno = ' 1 ';
查询语句-单表查询
五、使用GROUP BY子句对查询结果进行分组
细化set函数的对象
set函数将作用于整个查询结果
对查询结果进行分组后,set函数将作用于每个组[
SELECT Cno,COUNT(Sno)
FROM SC
GROUP BY Cno;
Result
cno count(SNO)
1 22
2 34
3 44
4 33
5 48
查询语句-单表查询[/br]GROUP BY子句的动作对象是查询的中间结果表
。分组方式:按指定的一个或多个列值分组,相同的值为一组
。使用group by子句后,SELECT子句-单表查询
的列名列表中只能出现分组属性和set函数
查询语句。使用HAVING短语过滤最终输出结果
SELECT Sno
FROM SC
GROUP BY Sno
HAVING COUNT(*)> 3;
查询语句-单表查询
[例32]查询学生的身份证号和三门以上的课程数(90以上)
Select sno,count (*)
from sc
其中年级> = 90。
0条评论