如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
PAGEPAGE3MySQL的过滤(极客时间学习笔记)数据过滤SQL的数据过滤,可以减少不必要的数据行,从而可以达到提升查询效率的效果.比较运算符在SQL中,使用WHERE子句对条件进行筛选,筛选的时候比较运算符是很重要.上面的比较运算符,并不是说每个DBMS都支持,这里主要说MySQL,不支持(!)和(!lt;)等.WHERE子句的基本格式是:SELECT.....(列名)FROM......(表名)WHERE......(子句条件)举几个例子:SELECTname,hp_maxFROMherosWHEREhp_max6000;//查询所有最大生命值大于6000的英雄SELECTname,hp_maxFROMherosWHEREhp_maxBETWEEN5399AND6811;//查询所有最大生命值在5399到6811之间的英雄SELECTname,hp_maxFROMherosWHEREhp_maxISNULL;//对hp_max字段进行空值检查逻辑运算符如果存在多个WHERE条件子句,可以使用逻辑运算符:注意的是WHERE子句中同事存在OR和AND的时候,AND执行的优先级会很高,也就是说SQL会先处理AND,再处理OR操作符.当然,一种情况除外,那就是()优先级最高.SELECTname,hp_max,mp_maxFROMherosWHEREhp_max6000ANDmp_max1700ORDERBY(hp_max+mp_max)DESC;//查询最大生命值大于6000,最大法力值大于1700,并按照最大生命值+最大法力值降序排序SELECTname,role_main,role_assist,hp_max,mp_max,birthdateFROMherosWHERE(role_mainIN(#39;法师#39;,#39;射手#39;)ORrole_assistIN(#39;法师#39;,#39;射手#39;))ANDDATE(birthdate)NOTBETWEEN#39;2016-01-01#39;AND#39;2017-01-01#39;ORDERBY(hp_max+mp_max)DESC;//查询主要定位或者次要定位是法师或是射手的英雄,同时英雄的上线时间不在2016-01-01到2017-01-01之间.使用通配符进行过滤上面的条件过滤都是对已知值进行过滤,如果我们要检索文本中包含某个词的所有数据,这里就需要使用通配符了,通配符是我们用来匹配值得一部分的特殊字符,这里需要使用到LIKE操作符.想要匹配任意字符串出现的任意次数,需要使用(%)通配符,匹配单个字符,就需要使用下划线(_)通配符.(%)和(_)的区别在于前者代表一个或多个字符,后者只能代表一个字符.SELECTnameFROMherosWHEREnameLIKE#39;%太%#39;;//匹配包含太字的英雄SELECTnameFROMherosWHEREnameLIKE#39;_%太%#39;;//匹配除了第一个字符外,包含太字的英雄同样的,并不是所有的DBMS都是使用(%)和(_)来表示多个字符和一个字符的,具体的DBMS应该查询具体的手册.