【T_SQL】基础 续+

时间:2023-03-09 05:28:23
【T_SQL】基础  续+

十、模糊查询

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