单引号用来限定字符串,如果值与串类型的列进行比较,需要限定引号,如果值与数值列比较,不需要引号。
不匹配过滤的操作,并不能过滤出含有 NULL 的值,因为 NULL 含有特殊意义。
AND 子句的优先级高于 or,在没用括号明确分组的情况下,先执行AND,在执行 or。也可以理解为括号的优先级大于 and.
where 过滤数据
作用:指定条件,选出特定的数据
格式:
select 列名 from 表名 where 条件
> select id from tb1 where id > 15;
> select id from tb1 where id = 1;
> select name from tb1 where name = 'laowang';
> select name from tb1 where id <> 1;
= 等于
<> 不等于
!= 不等于
> 大于
>= 大于等于
< 小于
<= 小于等于
BETWEEN 在指定的两个值之间
子句 between
作用:在一个范围内抓出数据库中的值
格式:select 栏位 from 表格 where 栏位 between .. and ..
> select * from tb1 where id between 1 and 5;
> select * from tb1 where data between 'Jan-06-2016' and 'Jan-10-2016';
不同的数据库,日期存储的方法可能不同。between 特别适合找出特定时间段内的数据
空值过滤 NULL
作用:过滤出无值的列,no value , NULL 和 0、空字符串、空格 不一样
> SELECT id FROM tb1 WHERE id
is NULL;
逻辑操作符 and or
格式: select 列 from 表名 where 条件 and/or 条件
> select id from tb1 where name = 'wangbin' and id = 1;
> select id from tb1 where name = 'wangbin' or name = 'wangdaye';
> select * from tb1 where name = 'wangbin' or id = 4 and name = 'laowang'
该语句理解为 id=4 并且 name=laowang 的数据或者 name=wangbin 的行
> select id from tb1 where name = 'wangbin' or (name = 'wangdaye' and id = 1);
理解为 name=wangdaye 并且 id=1 的数据,或者 name=wangbin 的数据
> select * from products where (id = 1002 or id = 1002) and price >= 10;
理解为 id=1002 或者 id=1003 的并且价格大于等于 10 的数据
in 操作符
作用:指定条件范围,匹配每个条件
格式:select 列 from 表名 where 列 in (1,2,3)
> select * from tb1 where id in (1,2);
> select * from tb1 where name in ('gebi','laowang');
> select id from tb1 where name in ('gebi','laowang'); 括号内只有一个条件,就相当于 where name = 'gebi'
in 的功能类似 or,但是比 or 语法更简洁,能包含其他 select 语句。
NOT 操作符
作用:否定后面跟的所有条件
格式:select 列 from 表 where .. NOT
> select * from tb1 where not id = 1;
> select * from tb1 where id not in (1,2);
not 操作符配合 IN 一起用,方便找出不匹配的行。NOT 还可以配合 between 和 exists 子句。
SQL 过滤和应用过滤,数据也可以在应用层过滤,为此 SELECT 语句为客户机应用检索出超过实际所需的数据,然后和客户机代码对返回数据进行循环,以提取出需要的行。通常实际操作会影响性能,所以需要对数据库进行优化,以便快速有效对数据进行过滤。另外,如果在客户机上过滤数据,服务器不得不通过网络发送多余的数据,导致网络带宽浪费。
在过滤不具有特定值的行时,并不返回含有 NULL 的值的行,切记一定要验证返回数据中过滤出了具有 NULL 的行。
转载请注明原文地址: https://www.6miu.com/read-8916.html