SQL基础-WHERE过滤 AND、OR、 BETWEEN...AND 、IN、NOT

十、过滤

不进行过滤的数据非常大,导致通过网络传输了多余的数据,从而浪费了网络带宽。因此尽量使用SQL语句来过滤不必要的数据,而不是传输所有的数据到客户端中,然后由客户端进行过滤。

SELECT *
FROM mytable
WHERE col IS NULL

下表中显示了WHERE 子句中可用的操作符

操作符说明
=等于
<小于
>大于
<>或!=不等于
<= 或!>小于等于
>= 或!<大于等于
BETWEEN在两个值之间
IS NULL为NULL值

注意:

  • NULL 与0、空字符串都不同
  • BETWEEN …AND 操作符会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
 SELECR * 
 FROM mytable
 WHERE col1
 BETWEEN value1 AND value2;

不同的数据库对BETWEEN…AND操作符的处理方式是有差异的。 SQL Server 中的BETWEEN…AND是包括边界值的,NOT BETWEEN 是不包含边界值的。

  • AND 和OR 用于链接过个过滤调节。优先处理AND,当一个过滤表达式涉及到多个AND 和 OR 时,可以使用()来决定优先级,使得优先级关系更加清晰。()的优先级比AND高。
SELECT * 
FROM mytable
WHERE col1 IS NULL
AND(
    col2 <= 3
    OR col3 =4
)
  • IN 操作符用于匹配一组值,其后也可以接一个SELECT子句从而匹配子查询得到的一组值。
SELECT *
FROM mytable
WHERE col In (value1,value2...)

上述查询等于:

SELECT * 
FROM mytable
WHERE col= value1 OR col = value2

IN操作符后接SELECT语句:

SELECT *
FROM mytable
WHERE col IN(
    SELECT col1
    FROM mytable2
)
  • NOT 操作符用于否定一个条件
    原文作者:左手气球右手书
    原文地址: https://www.jianshu.com/p/da9a49a431b8
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞