十、过滤
不进行过滤的数据非常大,导致通过网络传输了多余的数据,从而浪费了网络带宽。因此尽量使用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 操作符用于否定一个条件