
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