SELECT语句以及条件查询:

直接举例说明:

查询选修课程号为C1的学生的学号和成绩。

SELECT SNo,Score           //投影列

FROM SC                             //从SC表中

WHERE CNo=’C1′     //选择行,WHERE后面加检索条件

WHERE 用法举例:

WHERE Score>85      WHERE Sal BETWEEN 1000 AND 1500

部分匹配查询:

举例:查询所有姓名中第二个汉字是”张“的教师的教师号和姓名。

SELECT TNo,TN

FROM T

WHERE TN LIKE ‘_张%’     //_(下划线)代表一个字符,%代表一个长度不确定的字符串。

常用库函数及统计汇总查询:

AVG【按列计算平均值】

SUM【按列计算值的总和】

MAX【求一列中的最大值】 MIN【求一列中的最小值】

COUNT【按列值统计个数】

举例说明:求学号为S1的学生的总分和平均分。

SELECT SUM(Score),AVG(Score) AS AvgScore      //AS后面为别名,便于理解

FROM SC

WHERE (SNo=’S1′)

分组查询:

举例说明:查询选修两门以上(含两门)课程的学生的学号和选课门数。

SELECT SNo, COUNT(*) AS SC_Num

FROM SC

GROUP BY SNo

HAVING (COUNT(*)>= 2)     //若在分组后还要按照一定条件进行筛选,则需要使用HAVING子句。

WHERE子句与HAVING子句区分:

WHERE 子句作用于基本表或视图,从中选择满足条件的元组;HAVING子句作用于组,选择满足条件的组。必须作用在GROUP BY子句之后,但GROUP BY子句可没有HAVING子句。

查询结果的排序

当需要对查询结果排序时,应该使用ORDER BY子句,ORDER BY子句必须出现在其他子句之后。排列方式可以指定,DASC为升序,AASC为降序,缺省时为升序。

举例:查询选修C1【选修C2,C3,C4,C5课程】课程的学生号和成绩,并按成绩降序排序。

SELECT SNo,Score

FROM SC

WHERE (CNo=‘C1’)

【  WHERE CNo IN (‘C2′,’C3′,’C4′,’C5’)  】

ORDER BY Score DESC

文章评论已关闭!