SQL入门教程第07课:基础条件查询

职场   2024-11-06 07:53   福建  

HI,大家好,我是星光。


上期咱们聊了在SQL中如何处理排序的问题,这期来聊条件筛选。


在第一期的时候,咱们说SQL是声明式语言,当时还举了个小例子,不知道您是否还有印象:


         

那个栗子中的SQL代码我们使用了where子句。它定义了筛选条件:成绩>=80,从而对FROM子句返回的结果集进行筛选,将不符合条件的剔除。


事实上,where子句的筛选条件可以是简单的单条件(如上述示例),也可以是复杂的多条件,可以是精确匹配,也可以搭配通配符等执行模糊匹配。

它的语法格式如下▼


SELECT 字段名 FROM 表名 WHERE 筛选条件

打个响指,我们还是通过几个栗子,了解下where语句的常用套路。     

如下图所示,是一份名为学生表的Excel工作表,A列是班级,B列是姓名,C-E列分别是性别、年龄、爱好。




💡1.单条件查询


倘若需要查询班级为“插班生”的学生名单,SQL代码如下:

SELECT 班级,        姓名FROM [学生表$]WHERE 班级='插班生' 

查询结果如下:


班级='插班生'是where语句的筛选条件,它使用了等号来判断班级字段和条件值是否相等。

需要说明的是,和Excel一样,当条件值是文本时,应该使用半角引号包起来,而数值则不用,例如,筛选年龄>=14的记录,代码如下:

SELECT 班级,        姓名FROM [学生表$]WHERE 年龄>=14

可能有朋友问,为什么班级='插班生'使用的是单引号,而不是双引号?

这个问题我们之前有解释过,这儿再说一下。在OLE DB法使用的SQL语句里,单引号和双引号都可以。只是在VBA中,通常SQL语句本身就是作为字符串存在的,外围已经存在了一对双引号,因此SQL语句内一般就使用单引号。


没有广告的推文是不真诚的▼


💡多条件筛选


先说一下“与”关系(也就是并且关系)的多条件筛选问题,它需要满足所有筛选条件,这类问题通常使用AND运算符。

比如,我们需要查找班级为插班生 并且 年龄大于等于12岁的学员名单,SQL代码如下▼

SELECT 班级,        姓名,        年龄FROM [学生表$]WHERE 班级='插班生'        AND 年龄>=12

如语句所示,不同条件之间使用AND运算符相连,只有当每一个条件都成立时,才符合WHERE子句的筛选条件。

代码运行后查询结果如下:


然后再说一下“或”关系的多条件筛选,只要满足条件中的任意一条即符合筛选条件。


在SQL中,这类问题一般使用OR运算符处理。


比如,需要查找班级是插班生 或者 年龄大于等于12岁的学员名单,SQL代码如下:

SELECT 班级,        姓名,        年龄FROM [学生表$]WHERE 班级='插班生'        OR 年龄>=12

查询结果如下:

 

当“或”关系的查询条件较少时,我们使用OR运算符,但当查询条件较多时,OR运算符便变得臃肿烦琐,此时我们可以使用其它运算符代替,比如:BETWEEN和IN。

IN运算符可以指定一到多个值,每个值之间使用半角逗号间隔,最后以括号“()”包括起来。当查询值和括号中的任一值匹配时,则结果即为True。其语法格式如下:

Text expression IN (First value,……,last value)

举个例子。

倘若我们需要查询姓名为:看见星光、老祝、美女空、大红花四个人的班级和爱好数据。

SQL语句如下:


SELECT 班级,        姓名,        爱好FROM [学生表$]WHERE 姓名 IN('看见星光','老祝','美女空','大红花')

查询结果如下:



between……and语句可以选取介于两个值范围之间的数据,这些值可以是数值、日期和文本(……尽管如此,中文还是别用,原因前面章节解释过了)。


例如需要查询年龄在13-16岁之间的学员名单。


SQL代码如下:


SELECT 班级,        姓名,        年龄FROM [学生表$]WHERE 年龄    BETWEEN 13        AND 16


而反过来,如果我们需要查询年龄不在13-16岁之间的学员名单,可以使用NOT运算符搭配between。代码如下:


SELECT 班级,        姓名,        年龄FROM [学生表$]WHERE 年龄 NOT    BETWEEN 13        AND 16 

  


💡模糊匹配查询


嘿!这个咱们下期再聊吧……


嗯,官方术语是:欲知后事如何,且听下回分解……


         



 

需要系统学习Excel却找不到优质教程?学习Excel的过程中遇到疑难问题,却找不到人及时作出解答?


加入我的付费社群,学习+训练+答疑,与6000+在线会员一起,同微软最有价值专家MVP同行,全面精进Excel之道


🚂>>~

加入我的付费会员,全面学习Excel

透视表 函数 图表 VBA PQ想学啥学啥

👀


本文由公众号“Excel星球”首发。
点击阅读原文系统学习Excel~

Excel星球
微软全球最有价值专家(Excel MVP),上千篇原创图文和视频教程随学随用,随用随查,建议常用Excel的职场人关注。
 最新文章