在上一篇文章中,我们介绍了SQL语句中,逻辑关键字的作用,并举例演示了如何用逻辑关键字来组合WHERE子句。在文章的末尾我们提到了两个用于范围查找的关键字IN和BETWEEN。这两个关键字都可以与NOT关键字灵活组合,起到对字句结果取反的作用。这篇文章主要介绍这两个范围查找关键字的功能以及它们的简单用法。
目录
范围查找关键字
IN
BETWEEN
总结
范围查找关键字
-
IN
IN关键字通常搭配一个元组(也可以是子查询)一起使用,表示查找存在于该元组中的所有元素对印的记录。它的使用方式很简单,如下所示:
SELECT [column1,column2]
FROM [table]
WHERE [column3] IN (value1,value2,value3);
SELECT * FROM student
WHERE age IN (18,19,20);
上面这条SQL语句表示:从student表中,找出age等于18或者19或者20的记录,等同于下面这一条SQL语句:
SELECT * FROM student
WHERE age = 18 OR age = 19 OR age = 20;
当然,IN不止可以用来判断数值类型的数字,还可以判断字符串类型,如下所示:
SELECT * FROM student
WHERE name IN ('张三','李四','王五');
通过上面的例子我们能够理解IN的作用以及它的使用方式,在使用IN的过程中,有以下几点需要注意:
- IN后面跟的元组,使用的是半角括号。
- 元组中的元素用逗号隔开,最后一个元素不用逗号。
- IN可以跟NOT搭配使用,表示查找不存在于该元组中的所有元素对印的记录。
-
BETWEEN
BETWEEN关键字也是用于范围查找的一个关键字,它的作用是查询出指定范围之间的所有记录。它的使用方式很简单,如下所示:
SELECT [column1,column2]
FROM [table]
WHERE [column3] BETWEEB value1 AND value2;
SELECT * FROM student
WHERE age BETWEEN 18 AND 20;
上面这条SQL语句表示:从student表中,找出age处于18到20之间(包括了18和20)的记录,等同于下面这一条SQL语句:
SELECT * FROM student
WHERE age >= 18 AND age <= 20;
同样,BETWEEN不止可以用来判断数值类型的数字,还可以判断日期等类型,如下所示:
SELECT * FROM student
WHERE birthday BETWEEN '2000-01-01' AND '2000-10-01';
通过上面的例子我们能够理解IN的作用以及它的使用方式,在使用BETWEEN的过程中,有以下几点需要注意:
- BETWEEN关键字指定的区域,是一个闭区间,包含了左右边界的值。
- 同理,NOT BETWEEN是BETWEEN的结果取反,因此它在判定时,不包含边界的值。
- 在判定日期格式的值时,最好统一使用'YYYY-MM-DD'的格式,这是首选的日期格式,因为它排除了多义性。
总结
IN和BETWEEN时SQL语句中经常用到的范围查找的关键字(尤其是BETWEEN关键字),它们都可以通过NOT来对关键字的判定结果取反。在这篇文章中我们只介绍了这两个关键字的简单用法,在后面我们讲过子查询之后,还会深入介绍如何将这些关键字来搭配子查询一起使用,还是那句话,SQL的语法很简单,但是光靠死记硬背肯定不行,需要多加练习,后续在介绍完基础概念之后,会持续更新刷题笔记。