MySQL教程 MySQL教程MySQL 连接MySQL 查看数据库MySQL 创建数据库MySQL 修改数据库MySQL 删除数据库MySQL 选择数据库MySQL 数据类型MySQL存储引擎MySQL 数据表的增删改查MySQL 表数据增删改查操作MySQL 条件子句MySQL 清空表记录MySQL 模糊查询MySQL 处理重复数据MySQL 别名MySQL 限制查询结果数量Mysql 查询结果排序MySQL 范围查询MySQL 空值查询MySQL 查询结果合拼MySQL 分组MySQL 筛选分组MySQL 表连接MySQL NULL值处理MySQL 子查询MySQL 正则表达式MySQL 视图MySQL 索引MySQL安装 MySQL Windows版下载教程MySQL windows系统安装教程MySQL windows系统简单的安装教程MySQL Linux系统安装教程MySQL Linux系统下载教程MySQL Linux系统简单的安装教程配置MySQL环境变量

MySQL 范围查询

MySQL数据库中的BETWEEN AND语句用于在查询中筛选符合特定范围的数据。相反如果想筛选不在指定范围内的数据时可使用NOT BETWEEN AND 语句

一、语法

BETWEEN AND语句的语法如下:

<列名> BETWEEN <起始值> AND <结束值>

<>是中文解释。语法说明:

NOT BETWEEN AND语句的语法如下:

<列名> NOT BETWEEN <起始值> AND <结束值>

二、案例

让我们通过一个简单的例子来说明BETWEEN AND语句的用法。假设我们有一个名为"employees"的表,其中包含员工的信息,包括姓名(name)、工资(salary)、性别(sex)和入职日期(hire_date)。

获取案例新建表格和插入数据语句
CREATE TABLE employees (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  salary DECIMAL(8, 2) NOT NULL,
  sex ENUM('Male', 'Female') NOT NULL,
  hire_date DATE NOT NULL
);

INSERT INTO employees (name, salary, sex, hire_date)
VALUES
  ('John Doe', 5000.00, 'Male', '2021-01-01'),
  ('Jane Smith', 6000.00, 'Female', '2020-05-01'),
  ('Mike Johnson', 5500.00, 'Male', '2019-12-01'),
  ('Sarah Brown', 5200.00, 'Female', '2018-08-01'),
  ('David Lee', 4800.00, 'Male', '2017-06-01');

原始数据

mysql> SELECT * FROM employees;
+----+--------------+---------+--------+------------+
| id | name         | salary  | sex    | hire_date  |
+----+--------------+---------+--------+------------+
|  1 | John Doe     | 5000.00 | Male   | 2021-01-01 |
|  2 | Jane Smith   | 6000.00 | Female | 2020-05-01 |
|  3 | Mike Johnson | 5500.00 | Male   | 2019-12-01 |
|  4 | Sarah Brown  | 5200.00 | Female | 2018-08-01 |
|  5 | David Lee    | 4800.00 | Male   | 2017-06-01 |
+----+--------------+---------+--------+------------+

假设我们要选择工资在5000到7000之间的员工。以下是一个使用BETWEEN AND语句的查询示例:

mysql> SELECT * FROM employees WHERE salary BETWEEN 5000 AND 7000;
+----+--------------+---------+--------+------------+
| id | name         | salary  | sex    | hire_date  |
+----+--------------+---------+--------+------------+
|  1 | John Doe     | 5000.00 | Male   | 2021-01-01 |
|  2 | Jane Smith   | 6000.00 | Female | 2020-05-01 |
|  3 | Mike Johnson | 5500.00 | Male   | 2019-12-01 |
|  4 | Sarah Brown  | 5200.00 | Female | 2018-08-01 |
+----+--------------+---------+--------+------------+
4 rows in set (0.05 sec)

假设我们要选择工资不在5000到7000之间的员工。以下是一个使用NOT BETWEEN AND语句的查询示例:

mysql> SELECT * FROM employees WHERE salary NOT BETWEEN 5000 AND 7000;
+----+-----------+---------+------+------------+
| id | name      | salary  | sex  | hire_date  |
+----+-----------+---------+------+------------+
|  5 | David Lee | 4800.00 | Male | 2017-06-01 |
+----+-----------+---------+------+------------+
1 row in set (0.16 sec)

三、注意事项

在使用NOT BETWEEN AND和 BETWEEN AND语句时,有几个需要注意的事项:

SELECT *
FROM employees
WHERE salary NOT BETWEEN 1000 AND 2000 OR salary IS NULL;

这将返回薪水不在1000到2000范围内,或者薪水列为空值的员工记录。

总结

该语句是MySQL中用于筛选是否在指定范围内数据的常用语法。通过指定起始值和结束值,您可以轻松地选择满足条件的记录。在使用语句时,请注意处理大小写敏感性、数据类型匹配、空值处理、边界条件和逻辑运算符优先级,以确保查询结果的准确性和性能。