“喜欢的东西,要么违法,要么买不起,要么不道德,要么不回信息”
SQL BETWEEN 操作符
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
BETWEEN
SQL BETWEEN 语法
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
- 演示数据库
实例:选取 年龄介于 16 和 18 之间的所有学生
-- 选取 年龄介于 16 和 18 之间的所有学生
select * from student where stu_age between 16 and 18
执行结果
根据查询结果我们可以发现, between 16 and 18 是包含了16和18的,也就是相当于在数学里的age<=18 且 age >=16。
为了方便对比,在下面的语句中的执行结果中可以看到其实前两条语句的结果是一样的,第三条就不包含16以及18。
select * from student where stu_age between 16 and 18
select * from student where stu_age >= 16 and stu_age <= 18
select * from student where stu_age > 16 and stu_age< 18
执行结果:
NOT BETWEEN
这里的 NOT BETWEEN 就是 BETWEEN 的值取反的意思,我们可以直接看示例:
select * from student where stu_age between 18 and 20
select * from student where stu_age not between 18 and 20
结果:
结果显而易见,也很好理解。。。
带有 IN 的 BETWEEN
这也就是多了一个条件,也很容易理解,直接操作它…
-- 选取 学生年龄 介于 17 和 20 之间但 班级id 不为9528和9529的所有学生
select * from student where (stu_age between 17 and 20) and stu_classid NOT IN(9528,9529)
-- 反之
select * from student where (stu_age between 17 and 20) and stu_classid IN(9528,9529)
带有文本值的 BETWEEN
这就是把BETWEEN value1 AND value2里面的value1 和2写成文本值,但是此文本值必须是属于一个区间,例如:a-z,A-Z…但是带文本值的BETWEEN AND 属于左闭右开的状态,和纯数值不一样,也就是包含左边但并不包含右边
如下:
SELECT * FROM class where cla_major between 'A' and 'M'
SELECT * FROM class where cla_major between 'A' and 'L'
SELECT * FROM class where cla_major not between 'A' and 'L'
看结果:显而易见,它就是左闭右开,石锤了!!!
给个眼神自己体会去~~
今天女朋友说她养的小乌龟昨天还活蹦乱跳的,今天突然就暴毙了,就挺突然的,之前在学校养的仓鼠也是死掉了…
好难过啊…