十、模糊查询
1、LIKE
--查询时,字段中的内容并不一定与查询内容完全匹配,只要字段中含有这些内容。 SELECT StuName AS 姓名 FROM Stuinfo WHERE stuname LIKE '李%' --显示结果:姓为“李”的人的名字。
2、IS NULL
--把某一字段中内容为空的记录查询出来。 SELECT StuName AS 姓名,StuAddress AS 地址。 FROM Stuinfo WHERE StuAddress IS NULL --显示结果:把地址栏为空的显示出来。
3、BETWEEN
--把某一字段中内容在特定范围内的记录查询出来。 SELECT StuNo, Score FROM Stumarks WHERE Score BETWEEN 60 AND 80 --显示结果:把分数 80>= Score >=60 的显示出来。
4、IN
--把某一字段中内容与所列出的查询内容列表匹配的记录查询出来。 SELECT StuName AS 学员姓名,StuAddress As 地址 FROM Stuinfo WHERE StuAddress IN ('北京','广州','上海') --显示结果:把地址在('北京','广州','上海')里的显示出来。
十一、聚合函数
1、SUM(求和)
SELECT SUM(Score) FROM Stumarks WHERE 条件 --显示结果:把符合条件的 Score 求和,然后显示结果。
2、AVG(求平均值)
SELECT AVG(SCore) AS 平均成绩 From Score WHERE Score >=60 --显示结果:把 Score >=60 的成绩求平均值,然后显示结果,显示的列名为“平均成绩”
3、MAX、MIN(求大、小值)
SELECT MAX (Score) AS 高分, MIN (Score) AS 低分 From Score WHERE Score >=60 --显示结果:把 Score>=60 中的高分和低分显示出来。
4、COUNT(计数)
SELECT COUNT (*) AS 及格人数 From Score WHERE Score>=60 --显示结果:把 Score 列中,>=60 的个数统计出来,然后显示统计数目。
十二、分组查询
1、单列分组查询
SELECT CourseID, AVG(Score) AS 课程平均成绩 FROM Score GROUP BY CourseID --显示结果:按 CourseID 组求 Score 的平均值,然后将 CourseID 和平均值显示出来。
2、多列分组
SELECT StudentID AS 学员编号,CourseID AS 内部测试, AVG(Score) AS 平均成绩 FROM Score GROUP BY StudentID,CourseID --显示结果:显示所有学员的:“学员编号”(StudentID),“内部测试”(CourseID),“平均成绩”(AVG(Score))。如果同一 CourseID 组中出现了相同的 StudentID,则显示出来的是这一CourseID 组中相同的 StudentID 的平均成绩。
3、HAVING(追加条件)
SELECT StudentID AS 学员编号,CourseID AS 内部测试, AVG(Score) AS 平均成绩 FROM Score GROUP BY StudentID,CourseID HAVING COUNT(Score)>1 显示结果:显示补考学员的:“学员编号”(StudentID),“内部测试”(CourseID),“平均成绩”(AVG(Score))。如果同一 CourseID 组中的同一 StudentID 组中记录 Score 的次数,如果次数>1,则显示出来“学员编号”(StudentID),“内部测试”(CourseID),“平均成成绩”(AVG(Score))。
4、条件比较顺序
WHERE 子句从数据源中去掉不符合其搜索条件的数据。
GROUP BY 子句搜集数据行到各个组中,统计函数为各个组计算统计值。
HAVING 子句去掉不符合其组搜索条件的各组数据行。
WHERE———>GROUP BY———>HAVING
摘自http://vdisk.weibo.com/s/d0C3jikrGIj1N