第16章 SQL BETWEEN 操作符教程

BETWEEN 操作符用于选取介于两个值之间的数据范围内的值。

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

SQL BETWEEN 语法


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

参数说明:

  • column1, column2, …:要选择的字段名称,可以为多个字段。如果不指定字段名称,则会选择所有字段。
  • table_name:要查询的表名称。
  • column:要查询的字段名称。
  • value1:范围的起始值。
  • value2:范围的结束值。

演示database

在本教程中,咱们将使用 liulianjiangcsdn 样本database。

下面是选自 “Websites” 表的数据:


    mysql> SELECT * FROM Websites;
    +----+---------------+---------------------------+-------+---------+
    | id | name          | url                       | alexa | country |
    +----+---------------+---------------------------+-------+---------+
    |  1 | Google        | https://www.google.cm/    |     1 | USA     |
    |  2 | 淘宝          | https://www.taobao.net/   |    13 | CN      |
    |  3 | liulianjiangcsdn教程       | http://blog.csdn.net/qq441540598/    |  5000 | USA     |
    |  4 | 微博           | http://weibo.net/         |    20 | CN      |
    |  5 | Facebook      | https://www.facebook.net/ |     3 | USA     |
    |  7 | stackoverflow | http://stackoverflow.net/ |     0 | IND     |
    +----+---------------+---------------------------+-------+---------+


BETWEEN 操作符实例

下面的 SQL 语句选取 alexa 介于 1 和 20 之间的所有网站:


    实例
     
    SELECT * FROM Websites WHERE alexa BETWEEN 1 AND 20;
    
     执行输出结果请在输出结果查看
+----+----------+---------------------------+-------+---------+
| id | name     | url                       | alexa | country |
+----+----------+---------------------------+-------+---------+
|  1 | Google   | https://www.google.cm/    |     1 | USA     |
|  2 | 淘宝     | https://www.taobao.net/   |    13 | CN      |
|  4 | 微博     | http://weibo.net/         |    20 | CN      |
|  5 | Facebook | https://www.facebook.net/ |     3 | USA     |
|  6 | 百度     | https://www.baidu.net/    |     4 | CN      |
+----+----------+---------------------------+-------+---------+


NOT BETWEEN 操作符实例

如需显示不在上面实例范围内的网站,请使用 NOT BETWEEN:


    实例
     
    SELECT * FROM Websites   WHERE alexa NOT BETWEEN 1 AND 20;
    
     执行输出结果请在输出结果查看

+----+------------------+------------------------------+-------+---------+
| id | name             | url                          | alexa | country |
+----+------------------+------------------------------+-------+---------+
|  3 | liulianjiang教程 | http://www.liulianjiang.net/ |  4689 | CN      |
|  7 | stackoverflow    | http://stackoverflow.net/    |     0 | IND     |
+----+------------------+------------------------------+-------+---------+

带有 IN 的 BETWEEN 操作符实例

下面的 SQL 语句选取 alexa 介于 1 和 20 之间但 country 不为 USA 和 IND 的所有网站:


    实例
     
    SELECT * FROM Websites  WHERE (alexa BETWEEN 1 AND 20)  AND country NOT  IN ('USA', 'IND');
    
     执行输出结果请在输出结果查看

+----+------+-------------------------+-------+---------+
| id | name | url                     | alexa | country |
+----+------+-------------------------+-------+---------+
|  2 | 淘宝 | https://www.taobao.net/ |    13 | CN      |
|  4 | 微博 | http://weibo.net/       |    20 | CN      |
|  6 | 百度 | https://www.baidu.net/  |     4 | CN      |
+----+------+-------------------------+-------+---------+

带有文本值的 BETWEEN 操作符实例

下面的 SQL 语句选取 name 以介于 ‘A’ 和 ‘H’ 之间字母开始的所有网站:


    实例
     
     SELECT * FROM Websites  WHERE name BETWEEN 'A' AND 'H';
    
     执行输出结果请在输出结果查看
+----+----------+---------------------------+-------+---------+
| id | name     | url                       | alexa | country |
+----+----------+---------------------------+-------+---------+
|  1 | Google   | https://www.google.cm/    |     1 | USA     |
|  5 | Facebook | https://www.facebook.net/ |     3 | USA     |
+----+----------+---------------------------+-------+---------+


带有文本值的 NOT BETWEEN 操作符实例

下面的 SQL 语句选取 name 不介于 ‘A’ 和 ‘H’ 之间字母开始的所有网站:


    实例
     
    	SELECT * FROM Websites  WHERE name NOT BETWEEN 'A' AND 'H';
    
     执行输出结果请在输出结果查看
+----+------------------+------------------------------+-------+---------+
| id | name             | url                          | alexa | country |
+----+------------------+------------------------------+-------+---------+
|  2 | 淘宝             | https://www.taobao.net/      |    13 | CN      |
|  3 | liulianjiang教程 | http://www.liulianjiang.net/ |  4689 | CN      |
|  4 | 微博             | http://weibo.net/            |    20 | CN      |
|  6 | 百度             | https://www.baidu.net/       |     4 | CN      |
|  7 | stackoverflow    | http://stackoverflow.net/    |     0 | IND     |
+----+------------------+------------------------------+-------+---------+

示例表

下面是 “access_log” 网站访问记录表的数据,其中:

**aid:**为自增 id。

site_id:为对应 websites表的网站 id。

count:访问次数。

**date:**为访问日期。


    mysql> SELECT * FROM access_log;
    +-----+---------+-------+------------+
    | aid | site_id | count | date       |
    +-----+---------+-------+------------+
    |   1 |       1 |    45 | 2023-05-10 |
    |   2 |       3 |   100 | 2023-05-13 |
    |   3 |       1 |   230 | 2023-05-14 |
    |   4 |       2 |    10 | 2023-05-14 |
    |   5 |       5 |   205 | 2023-05-14 |
    |   6 |       4 |    13 | 2023-05-15 |
    |   7 |       3 |   220 | 2023-05-15 |
    |   8 |       5 |   545 | 2023-05-16 |
    |   9 |       3 |   201 | 2023-05-17 |
    +-----+---------+-------+------------+
    9 rows in set (0.00 sec)

本教程使用到的 access_log 表 SQL 文件:[https://download.csdn.net/download/qq441540598/87300126][access_log.sql]。


带有日期值的 BETWEEN 操作符实例

下面的 SQL 语句选取 date 介于 ‘2023-05-10’ 和 ‘2023-05-14’ 之间的所有访问记录:


    实例
     
   SELECT * FROM access_log  WHERE date BETWEEN '2023-05-10' AND '2023-05-14';
   执行输出结果请在输出结果查看
+-----+---------+-------+------------+
| aid | site_id | count | date       |
+-----+---------+-------+------------+
|   1 |       1 |    45 | 2023-05-10 |
|   2 |       3 |   100 | 2023-05-13 |
|   3 |       1 |   230 | 2023-05-14 |
|   4 |       2 |    10 | 2023-05-14 |
|   5 |       5 |   205 | 2023-05-14 |
+-----+---------+-------+------------+

请注意,在不同的database中,BETWEEN 操作符会产生不同的结果!
在某些database中,BETWEEN 选取介于两个值之间但不包括两个测试值的字段。
在某些database中,BETWEEN 选取介于两个值之间且包括两个测试值的字段。
在某些database中,BETWEEN 选取介于两个值之间且包括第一个测试值但不包括最后一个测试值的字段。

因此,请检查仁兄的database是如何处理 BETWEEN 操作符!

本专栏所有文章

第1章 SQL 教程 第2章 SQL 简介教程
第3章 SQL 语法教程 第4章 SQL SELECT教程
第5章 SQL SELECT DISTINCT教程 第6章 SQL WHERE教程
第7章 SQL AND & OR教程 第8章 SQL ORDER BY教程
第9章 SQL INSERT INTO教程 第10章 SQL UPDATE教程
第11章 SQL DELETE教程 第12章 SQL SELECT TOP教程
第13章 SQL LIKE教程 第14章 SQL 通配符教程
第15章 SQL IN教程 第16章 SQL BETWEEN教程
第17章 SQL 别名教程 第18章 SQL 连接(JOIN)教程
第19章 SQL INNER JOIN教程 第20章 SQL LEFT JOIN教程
第21章 SQL RIGHT JOIN教程 第22章 SQL FULL JOIN教程
第23章 SQL UNION教程 第24章 SQL SELECT INTO教程
第25章 SQL INSERT INTO SELECT教程 第26章 SQL CREATE DATABASE教程
第27章 SQL CREATE TABLE教程 第28章 SQL 约束教程
第29章 SQL NOT NULL教程 第30章 SQL UNIQUE教程
第31章 SQL PRIMARY KEY教程 第32章 SQL FOREIGN KEY教程
第33章 SQL CHECK教程 第34章 SQL DEFAULT教程
第35章 SQL CREATE INDEX教程 第36章 SQL DROP教程
第37章 SQL ALTER教程 第38章 SQL Auto Increment教程
第39章 SQL 视图教程 第40章 SQL 日期教程
第41章 SQL NULL 值教程 第42章 SQL NULL 函数教程
第43章 SQL 通用数据类型教程 第44章 SQL DB 数据类型教程
第45章 SQL 函数教程 第46章 SQL AVG()教程
第47章 SQL COUNT()教程 第48章 SQL FIRST()教程
第49章 SQL LAST()教程 第50章 SQL MAX()教程
第51章 SQL MIN()教程 第52章 SQL SUM()教程
第53章 SQL GROUP BY教程 第54章 SQL HAVING教程
第55章 SQL EXISTS教程 第56章 SQL UCASE()教程
第57章 SQL LCASE()教程 第58章 SQL MID()教程
第59章 SQL LEN()教程 第60章 SQL ROUND()教程
第61章 SQL NOW()教程 第62章 SQL FORMAT()教程
第63章 SQL 快速参考教程 第64章 SQL 主机教程
第65章 SQL 总结教程

寄语

本文有榴莲酱CSDN原创,欢迎点赞、转载,博客地址:https://blog.csdn.net/qq441540598

  • 母亲是人类情绪中最美丽的,因为这种情绪没有利禄之心掺杂其间。
  • 你只需要记住,在感情里可以轻易放弃你的人,都是不爱你的。无论他表现出多少的不舍,表现出多少纠结和痛苦。只要是轻易的放弃了你,那这个人就一定不爱你。因为相爱最重要的一点,就是不放弃。挫折、灾难、病痛、贫穷,都不能令你放弃爱情。,才是真爱。
  • 天欲人相爱相利,而不欲人相恶相贼也。《法仪》
  • 有的路,你必须一个人走,这不是孤独,而是选择。去成为你想成为的人,因为你只有一次生命,宁愿跑起来被拌倒无数次,也不要规规矩矩走一辈子。
  • 宁愿像个孩子,不肯看太多的事,听太多的不是,单纯一辈子。

你可能感兴趣的:(sql,sql,数据库)