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 操作符用于否定一个条件

你可能感兴趣的:(SQL基础-WHERE过滤 AND、OR、 BETWEEN...AND 、IN、NOT)