十、模糊查询
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