Sql 简明教程

SQL - BETWEEN Operator

The SQL BETWEEN Operator

BETWEEN 运算符是 SQL 中的逻辑运算符,用于检索指定范围内的数据。检索的值可以是整数、字符或日期。

可以使用 BETWEEN 运算符替换“大于等于和小于等于”条件的组合。

让我们通过使用以下示例表更好地理解它:

between

假设我们要列出上表中年龄在 20 至 30 岁之间的人的名字。因此,我们将得到“Varma(21)”、“Nikhil(25)”和“Bhargav(29)”作为结果。

Syntax

以下是 SQL 中 BETWEEN 运算符的语法:

SELECT column1, column2, column3,....columnN
FROM table_name
WHERE column BETWEEN value1 AND value2;

在此,

  1. value1 是范围的开始值。

  2. value2 是范围的结束值(包括)。

Example

首先,让我们使用以下查询创建一个名为 CUSTOMERS 的表:

CREATE TABLE CUSTOMERS (
   ID INT NOT NULL,
   NAME VARCHAR (20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

创建表后,让我们使用以下 INSERT 查询向表中插入一些值:

INSERT INTO CUSTOMERS VALUES
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ),
(2, 'Khilan', 25, 'Delhi', 1500.00 ),
(3, 'Kaushik', 23, 'Kota', 2000.00 ),
(4, 'Chaitali', 25, 'Mumbai', 6500.00 ),
(5, 'Hardik', 27, 'Bhopal', 8500.00 ),
(6, 'Komal', 22, 'Hyderabad', 4500.00 ),
(7, 'Muffy', 24, 'Indore', 10000.00 );

创建的表如下所示:

ID

NAME

AGE

ADDRESS

SALARY

1

Ramesh

32

Ahmedabad

2000.00

2

Khilan

25

Delhi

1500.00

3

Kaushik

23

Kota

2000.00

4

Chaitali

25

Mumbai

6500.00

5

Hardik

27

Bhopal

8500.00

6

Komal

22

Hyderabad

4500.00

7

Muffy

24

Indore

10000.00

现在,我们正在使用 BETWEEN 运算符来检索 AGE ( numeric data ) 介于 20 和 25 之间的 CUSTOMERS 的详细信息 −

SELECT * FROM CUSTOMERS WHERE AGE BETWEEN 20 AND 25;

Output

当我们执行上述查询时,输出将获得如下:

ID

NAME

AGE

ADDRESS

SALARY

2

Khilan

25

Delhi

1500.00

3

Kaushik

23

Kota

2000.00

4

Chaitali

25

Mumbai

6500.00

6

Komal

22

Hyderabad

4500.00

7

Muffy

24

Indore

10000.00

Example

此处,我们与 characters 一起使用 BETWEEN 运算符。让我们使用以下查询检索其名称以字母“A”和“L”之间开头的客户的详细信息 −

SELECT * FROM CUSTOMERS WHERE NAME BETWEEN 'A' AND 'L';

Output

以下是以上查询的输出:

ID

NAME

AGE

ADDRESS

SALARY

2

Khilan

25

Delhi

1500.00

3

Kaushik

23

Kota

2000.00

4

Chaitali

25

Mumbai

6500.00

5

Hardik

27

Bhopal

8500.00

6

Komal

22

Hyderabad

4500.00

BETWEEN Operator with IN Operator

在 SQL 中,我们可以将 BETWEEN 运算符与 IN 运算符结合起来,以选择处于指定范围内的值,并且还与 IN 子句列表中指定的值匹配。

Example

在以下查询中,我们正在检索其薪水介于 4000 和 10000 之间的所有客户的详细信息。此外,我们仅使用 SQL 中的 IN 运算符检索住在海得拉巴和博帕尔的客户 −

SELECT * FROM CUSTOMERS
WHERE SALARY BETWEEN 4000 AND 10000
  AND ADDRESS IN ('Hyderabad', 'Bhopal');

Output

执行以上查询后,输出显示如下 −

ID

NAME

AGE

ADDRESS

SALARY

5

Hardik

27

Bhopal

8500.00

6

Komal

22

Hyderabad

4500.00

BETWEEN Operator with UPDATE Statement

我们还可以将 BETWEEN 运算符与 UPDATE 语句一起使用,以更新指定范围内的值。UPDATE 语句用于修改数据库表中的现有数据。

Example

让我们使用以下查询更新年龄介于 25 到 30 之间的客户的薪水 −

UPDATE CUSTOMERS SET SALARY = 10000
WHERE AGE BETWEEN 25 AND 30;

Output

以上查询的输出如下 −

Query OK, 3 rows affected (0.02 sec)
Rows matched: 3  Changed: 3  Warnings: 0

Verification

让我们使用以下查询验证是否更新了薪水 −

SELECT * FROM CUSTOMERS;

以上查询生成的表格如下所示 −

ID

NAME

AGE

ADDRESS

SALARY

1

Ramesh

32

Ahmedabad

2000.00

2

Khilan

25

Delhi

10000.00

3

Kaushik

23

Kota

2000.00

4

Chaitali

25

Mumbai

10000.00

5

Hardik

27

Bhopal

10000.00

6

Komal

22

Hyderabad

4500.00

7

Muffy

24

Indore

10000.00

BETWEEN Operator with DELETE Statement

我们还可以将 BETWEEN 运算符与 DELETE 语句一起使用,以删除指定范围内的行。

Example

现在,我们使用 DELETE 语句删除年龄介于 20 和 24 之间的客户 −

DELETE FROM CUSTOMERS
WHERE AGE BETWEEN 20 AND 24;

Output

如果我们编译并运行上述查询,则结果将生成如下:

Query OK, 3 rows affected (0.02 sec)

Verification

让我们使用以下查询验证是否删除了具有指定年龄值的记录 −

SELECT * FROM CUSTOMERS;

以上查询生成的表格如下所示 −

ID

NAME

AGE

ADDRESS

SALARY

1

Ramesh

32

Ahmedabad

2000.00

2

Khilan

25

Delhi

1500.00

4

Chaitali

25

Mumbai

6500.00

5

Hardik

27

Bhopal

8500.00

NOT BETWEEN Operator

SQL 中的 NOT BETWEEN 运算符与 BETWEEN 运算符的工作方式恰恰相反。这用于检索不在指定范围内的数据。

让我们通过使用以下示例表格更深入地理解 −

between1

假设我们希望从上表中列出年龄不在 20 到 30 之间的学生。因此,我们将获得“Prudhvi(45) 和 Ganesh(33)”作为结果。

Syntax

以下是 SQL 中 NOT BETWEEN 运算符的语法 −

SELECT column_name1, column_name2, column_name3,......column_nameN
FROM table_name
WHERE column_name NOT BETWEEN value1 AND value2;

Example

考虑之前创建的 CUSTOMERS 表,让我们使用以下查询检索其年龄不大于或不等于 25 且小于或等于 30(数字数据)的客户的详细信息 −

SELECT * FROM CUSTOMERS
WHERE AGE NOT BETWEEN 25 AND 30;

Output

当我们执行上述查询时,输出将获得如下:

ID

NAME

AGE

ADDRESS

SALARY

1

Ramesh

32

Ahmedabad

2000.00

3

Kaushik

23

Kota

2000.00

6

Komal

22

Hyderabad

4500.00

7

Muffy

24

Indore

10000.00

NOT BETWEEN Operator with IN

NOT BETWEEN 运算符和 IN 运算符结合使用可选择超范围的值,而且不与指定的值列表匹配。

Example

在以下查询中,我们正在选择其工资在 1000 和 5000 之间的客户。此外;我们不会使用 SQL 中的 IN 运算符来搜索居住在博帕尔的客户 −

SELECT * FROM CUSTOMERS
WHERE SALARY NOT BETWEEN 1000 AND 5000
  AND ADDRESS NOT IN ('Bhopal');

Output

执行以上查询后,输出显示如下 −

ID

NAME

AGE

ADDRESS

SALARY

4

Chaitali

25

Mumbai

6500.00

7

Muffy

24

Indore

10000.00