SQL BETWEEN运算符
SQL BETWEEN 是SQL中的逻辑运算符,用于根据查询中指定的范围获取表中的记录。我们可以使用此运算符来选择数字、文本或日期。
SQL BETWEEN运算符包括起始值和结束值。
SQL的BETWEEN运算符在WHERE子句中与以下四个SQL语句一起使用:
- SELECT语句
- UPDATE语句
- DELETE语句
- INSERT语句
SQL中BETWEEN运算符的语法
SELECT column_Name1, column_Name2 ...., column_NameN FROM table_Name WHERE column_name BETWEEN value1 and value2 ;
BETWEEN 运算符返回 True ,如果 column_name 的值大于或等于 value1,并且小于或等于 value2。
SQL 中 BETWEEN 运算符的示例
在本文中,我们将介绍以下不同的 SQL 示例,帮助您理解如何使用 BETWEEN 运算符:
示例 1: 我们来看下面的 STUDENT 表格,它将帮助您理解 BETWEEN 运算符:
Roll_No | Name | Marks | Age |
---|---|---|---|
1 | Raman | 95 | 20 |
2 | Kapil | 92 | 19 |
3 | Arun | 85 | 17 |
4 | Ram | 92 | 18 |
5 | Suman | 55 | 20 |
6 | Sanjay | 88 | 18 |
7 | Sheetal | 65 | 19 |
8 | Rakesh | 64 | 20 |
假设我们想从下面的学生表中获取那些分数大于等于80且小于等于100的学生记录。为了进行这个操作,我们需要在结构化查询语言中执行以下查询:
SELECT * FROM STUDENT WHERE Marks BETWEEN 80 and 100 ;
这个查询在SQL输出中显示以下表格:
Roll_No | Name | Marks | Age |
---|---|---|---|
1 | Raman | 95 | 20 |
2 | Kapil | 92 | 19 |
3 | Arun | 85 | 17 |
4 | Ram | 92 | 18 |
6 | Sanjay | 88 | 18 |
示例2: 让我们来看下面的STUDENT表,它将帮助您理解NOT BETWEEN运算符:
Roll_No | Name | Marks | Age |
---|---|---|---|
1 | Raman | 95 | 20 |
2 | Kapil | 92 | 19 |
3 | Arun | 85 | 17 |
4 | Ram | 92 | 18 |
5 | Suman | 55 | 20 |
6 | Sanjay | 88 | 18 |
7 | Sheetal | 65 | 19 |
8 | Rakesh | 64 | 20 |
假设我们想从下面的学生表中获取那些分数既不大于80也不小于100的学生的记录。为了执行此操作,我们必须在结构化查询语言中执行以下查询:
SELECT * FROM STUDENT WHERE Marks NOT BETWEEN 80 and 100 ;
这个查询在SQL输出中显示以下表格:
Roll_No | Name | Marks | Age |
---|---|---|---|
5 | Suman | 55 | 20 |
7 | Sheetal | 65 | 19 |
8 | Rakesh | 64 | 20 |
示例3: 让我们来看一下以下的EMPLOYEE表,这将帮助您理解使用日期的BETWEEN运算符:
Emp_ID | Name | Emp_Salary | Emp_Joining |
---|---|---|---|
1001 | Vivek | 9000 | 2021/01/02 |
1002 | Saket | 4000 | 2019/06/05 |
1003 | Raman | 3000 | 2020/02/05 |
1004 | Suraj | 6000 | 2020/04/01 |
1005 | Seenu | 5000 | 2019/12/04 |
1006 | Shubham | 10000 | 2021/02/05 |
1007 | Anaya | 4000 | 2020/12/20 |
1008 | Parul | 8000 | 2019/04/15 |
假设我们想要从上述员工表中获取加入日期在2019/06/05和2020/12/20之间的员工记录。为了执行这个操作,我们需要在SQL中输入以下查询:
SELECT * FROM EMPLOYEE WHERE Emp_Joining BETWEEN '2019/06/05' and '2020/12/20' ;
该查询在SQL输出中显示以下表格:
Emp_ID | Name | Emp_Salary | Emp_Joining |
---|---|---|---|
1002 | Saket | 4000 | 2019/06/05 |
1005 | Seenu | 5000 | 2019/12/04 |
1007 | Anaya | 4000 | 2020/12/20 |
1008 | Parul | 8000 | 2019/04/15 |
使用UPDATE语句的BETWEEN
在SQL中,我们也可以在UPDATE语句的WHERE子句中使用BETWEEN操作符。BETWEEN操作符会更新表中符合查询中指定范围的记录。
BETWEEN与UPDATE语句的语法
UPDATE table_name SET column_Name1 = value1, column_Name2 = value2, ...., column_NameN = valueN WHERE ColumnName BETWEEN value1 and value2;
更新语句中使用BETWEEN的示例
这里,我们提供了以下两个SQL示例,可以帮助您了解如何在更新表中的现有记录时使用BETWEEN运算符:
示例1: 假设我们有以下STUDENT表,该表可以帮助您了解使用UPDATE语句时的BETWEEN运算符:
Roll_No | Name | Marks | Attendance |
---|---|---|---|
1 | Raman | 95 | 20 |
2 | Kapil | 92 | 17 |
3 | Arun | 85 | 17 |
4 | Ram | 92 | 18 |
5 | Suman | 55 | 19 |
6 | Sanjay | 88 | 17 |
7 | Sheetal | 65 | 19 |
8 | Rakesh | 64 | 20 |
假设,我们想要更新出勤大于等于18且小于等于20的学生的成绩。为了执行这个操作,我们需要使用结构查询语言执行以下查询:
UPDATE STUDENT SET Marks = 98 WHERE Attendance BETWEEN 18 and 20;
如果您想查看表格中发生的更改,则必须键入以下查询:
SELECT * FROM STUDENT WHERE Attendance BETWEEN 18 and 20 ;
Roll_No | Name | Marks | Attendance |
---|---|---|---|
1 | Raman | 98 | 20 |
4 | Ram | 98 | 18 |
5 | Suman | 98 | 19 |
7 | Sheetal | 98 | 19 |
8 | Rakesh | 98 | 20 |
示例2: 让我们看看下面的STUDENT表,它可以帮助你理解NOT BETWEEN运算符:
Roll_No | Name | Marks | Attendance |
---|---|---|---|
1 | Raman | 95 | 20 |
2 | Kapil | 92 | 17 |
3 | Arun | 85 | 17 |
4 | Ram | 92 | 18 |
5 | Suman | 55 | 19 |
6 | Sanjay | 88 | 17 |
7 | Sheetal | 65 | 19 |
8 | Rakesh | 64 | 20 |
假设我们想要更新那些出勤不大于18且不小于20的学生的成绩。为了进行此操作,我们需要在SQL中输入以下查询:
UPDATE STUDENT SET Marks = 50 WHERE Attendance NOT BETWEEN 18 and 20;
如果你想查看表中发生的更改,你需要输入以下查询:
SELECT * FROM STUDENT WHERE Attendance NOT BETWEEN 18 and 20 ;
Roll_No | Name | Marks | Attendance |
---|---|---|---|
2 | Kapil | 50 | 17 |
3 | Arun | 50 | 17 |
6 | Sanjay | 50 | 17 |
示例3: 让我们看下面的EMPLOYEE表格,帮助您理解日期间的BETWEEN运算符:
Emp_ID | Name | Emp_Salary | Emp_Joining |
---|---|---|---|
1001 | Vivek | 9000 | 2021/01/02 |
1002 | Saket | 4000 | 2019/06/05 |
1003 | Raman | 3000 | 2020/02/05 |
1004 | Suraj | 6000 | 2020/04/01 |
1005 | Seenu | 5000 | 2019/12/04 |
1006 | Shubham | 10000 | 2021/02/05 |
1007 | Anaya | 4000 | 2020/12/20 |
1008 | Parul | 8000 | 2019/04/15 |
假设我们想要更新那些在2019/06/05和2020/12/20之间加入办公室的员工的薪水。为了进行此操作,我们必须在SQL中键入以下查询:
UPDATE EMPLOYEE SET Emp_Salary = 25000 WHERE Emp_Joining BETWEEN '2019/06/05' and '2020/12/20' ;
如果您想查看表格中发生的变化,那么您必须输入以下查询:
SELECT * FROM EMPLOYEE WHERE Emp_Joining BETWEEN '2019/06/05' and '2020/12/20' ;
Emp_ID | Name | Emp_Salary | Emp_Joining |
---|---|---|---|
1002 | Saket | 25000 | 2019/06/05 |
1005 | Seenu | 25000 | 2019/12/04 |
1007 | Anaya | 25000 | 2020/12/20 |
1008 | Parul | 25000 | 2019/04/15 |