分享

SQL入门教程第07课:条件查询(上)

 asaser 2022-07-22 发布于四川



每天一篇Excel技术图文
微信公众号:Excel星球

NO.1321-SQL与筛选
作者:看见星光
 微博:EXCELers / 知识星球:Excel
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语句内一般就使用单引号。

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


💡多条件查询


先说一下“与”关系(也就是并且关系)的多条件筛选。

和Excel一样,在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

图片  

💡模糊匹配查询

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

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

图片          

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多