SQL学习笔记(03)_BETWEEN 操作符

“喜欢的东西,要么违法,要么买不起,要么不道德,要么不回信息”


BETWEEN

        • SQL BETWEEN 操作符
            • BETWEEN
            • NOT BETWEEN
            • 带有 IN 的 BETWEEN
            • 带有文本值的 BETWEEN

SQL BETWEEN 操作符

BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。

BETWEEN

SQL BETWEEN 语法

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
  • 演示数据库
    SQL学习笔记(03)_BETWEEN 操作符_第1张图片

实例:选取 年龄介于 16 和 18 之间的所有学生

-- 选取 年龄介于 16 和 18 之间的所有学生
select * from student where stu_age between 16 and 18

执行结果
SQL学习笔记(03)_BETWEEN 操作符_第2张图片
根据查询结果我们可以发现, 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

执行结果:
SQL学习笔记(03)_BETWEEN 操作符_第3张图片

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

结果:
SQL学习笔记(03)_BETWEEN 操作符_第4张图片
结果显而易见,也很好理解。。。

带有 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'

看结果:显而易见,它就是左闭右开,石锤了!!!
SQL学习笔记(03)_BETWEEN 操作符_第5张图片

给个眼神自己体会去~~


今天女朋友说她养的小乌龟昨天还活蹦乱跳的,今天突然就暴毙了,就挺突然的,之前在学校养的仓鼠也是死掉了…
好难过啊…
SQL学习笔记(03)_BETWEEN 操作符_第6张图片

SQL学习笔记(03)_BETWEEN 操作符_第7张图片

你可能感兴趣的:(SQL研习录,sql)