Mysql基础——where 过滤数据

xiaoxiao2021-02-27  252

单引号用来限定字符串,如果值与串类型的列进行比较,需要限定引号,如果值与数值列比较,不需要引号。 不匹配过滤的操作,并不能过滤出含有 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

最新回复(0)