Appearance
SQL BETWEEN
SQL BETWEEN 运算符用于在 WHERE 子句中指定一个范围,当列的值在指定范围内时,就返回该记录。BETWEEN 运算符包括开始值和结束值。
BETWEEN 语法
sql
SELECT column1, column2, ...
FROM table_name
WHERE column_name BETWEEN value1 AND value2;NOT BETWEEN 语法
使用 NOT BETWEEN 可以查询列的值不在指定范围内的记录:
sql
SELECT column1, column2, ...
FROM table_name
WHERE column_name NOT BETWEEN value1 AND value2;示例
假设我们有一个名为 students 的表,包含以下数据:
| id | name | age | grade |
|---|---|---|---|
| 1 | 张三 | 18 | 高三 |
| 2 | 李四 | 17 | 高二 |
| 3 | 王五 | 19 | 高三 |
| 4 | 赵六 | 16 | 高一 |
| 5 | 钱七 | 18 | 高三 |
示例 1:使用 BETWEEN 查询年龄在指定范围内的学生
查询年龄在 17 到 19 之间的学生:
sql
SELECT * FROM students WHERE age BETWEEN 17 AND 19;结果:
| id | name | age | grade |
|---|---|---|---|
| 1 | 张三 | 18 | 高三 |
| 2 | 李四 | 17 | 高二 |
| 3 | 王五 | 19 | 高三 |
| 5 | 钱七 | 18 | 高三 |
示例 2:使用 NOT BETWEEN 查询年龄不在指定范围内的学生
查询年龄不在 17 到 19 之间的学生:
sql
SELECT * FROM students WHERE age NOT BETWEEN 17 AND 19;结果:
| id | name | age | grade |
|---|---|---|---|
| 4 | 赵六 | 16 | 高一 |
示例 3:使用 BETWEEN 查询日期范围
假设我们有一个名为 orders 的表,包含以下数据:
| order_id | customer_name | order_date | amount |
|---|---|---|---|
| 1 | 张三 | 2023-01-01 | 100 |
| 2 | 李四 | 2023-01-15 | 200 |
| 3 | 王五 | 2023-02-01 | 150 |
| 4 | 赵六 | 2023-02-15 | 300 |
| 5 | 钱七 | 2023-03-01 | 250 |
查询 2023 年 1 月 1 日到 2023 年 2 月 1 日之间的订单:
sql
SELECT * FROM orders WHERE order_date BETWEEN '2023-01-01' AND '2023-02-01';结果:
| order_id | customer_name | order_date | amount |
|---|---|---|---|
| 1 | 张三 | 2023-01-01 | 100 |
| 2 | 李四 | 2023-01-15 | 200 |
| 3 | 王五 | 2023-02-01 | 150 |
示例 4:使用 BETWEEN 查询字符串范围
查询名字在 '李' 到 '赵' 之间的学生(按字典顺序):
sql
SELECT * FROM students WHERE name BETWEEN '李' AND '赵';结果:
| id | name | age | grade |
|---|---|---|---|
| 2 | 李四 | 17 | 高二 |
| 3 | 王五 | 19 | 高三 |
注意事项
包含边界值:BETWEEN 运算符包括开始值和结束值,即
BETWEEN a AND b等价于>= a AND <= b。值的顺序:在使用 BETWEEN 时,开始值必须小于或等于结束值,否则将不会返回任何结果。
数据类型:BETWEEN 运算符可以用于数值、日期和字符串类型的列,但需要确保值的类型与列的类型匹配。
日期格式:在查询日期范围时,需要注意日期格式,不同的数据库系统可能有不同的日期格式要求。
性能考虑:对于有索引的列,使用 BETWEEN 运算符通常可以利用索引,提高查询性能。
小结
SQL BETWEEN 运算符是一种用于指定范围的简洁方法,它可以使查询语句更简洁、更易读。当需要查询某个范围内的值时,使用 BETWEEN 运算符通常比使用 >= 和 <= 条件更方便。