sql语句between包括边界值吗

1. BETWEEN的语法

BETWEEN子句是SQL语言中的一种比较操作符,使用该操作符可以判断某个值是否在一个范围之间,该范围由两个边界值定义。通过BETWEEN可以快速地确定值是否在指定的范围内,避免了使用多个ANDOR的麻烦。

SELECT column_name(s)

FROM table_name

WHERE column_name BETWEEN value1 AND value2;

1.1 BETWEEN包括两个边界值

根据《MySQL 8.0参考手册》中对BETWEEN的描述,包括两个边界值。也就是说,如果一个值正好等于BETWEEN操作符后面的两个边界中任何一个值,那么这个值就会被包括在范围内。

2. 测试BETWEEN的边界值

让我们新建一个测试表,表中包含id、name以及age三个字段。

CREATE TABLE test_table (

id INT,

name VARCHAR(20),

age INT

);

接着,我们向表中插入一些数据。

INSERT INTO test_table (id, name, age)

VALUES (1, 'Tom', 10),

(2, 'Jerry', 20),

(3, 'Mike', 30);

2.1 查询BETWEEN的边界值

现在,我们来查询一下BETWEEN的边界值,看看结果如何。

SELECT *

FROM test_table

WHERE age BETWEEN 10 AND 20;

运行上面这条查询语句,得到的结果如下:

id | name | age

------+--------+-----

1 | Tom | 10

2 | Jerry | 20

(2 rows)

可以看到,BETWEEN操作符确实包括边界值,即10和20都包括在结果中。

2.2 查询BETWEEN的非边界值

那如果我们查询非边界值会怎样呢?比如说,查询年龄在11到19之间的人。

SELECT *

FROM test_table

WHERE age BETWEEN 11 AND 19;

此时,得到的结果为空,也就是说BETWEEN操作符不包括非边界值。

3. 总结

从上面的测试结果可以看出,BETWEEN操作符确实包括边界值。如果我们需要包括非边界值,可以使用比较操作符>=<=,或者使用类似IN的操作符。

此外,BETWEEN操作符仅包括范围内的值,如果边界值出现在表中时,它不会重复出现。

数据库标签