SQL学习四
1.学会使用 WHERE 子句,如何使用比较运算符对字段的数值进行比较筛选;
WHERE 子句的基本格式是:SELECT ……(列名) FROM ……(表名) WHERE ……(子句条件)
2.如何使用逻辑运算符,进行多条件的过滤;
一般来说 () 优先级最高,其次优先级是 AND,然后是 OR。
3.学会使用通配符对数据条件进行复杂过滤。
通配符就是我们用来匹配值的一部分的特殊字符。这里我们需要使用到 LIKE 操作符。
如果我们想要匹配任意字符串出现的任意次数,需要使用(%)通配符。
SQL:SELECT name FROM heros WHERE name LIKE '%太%'
如果我们想要匹配单个字符,就需要使用下划线 () 通配符。(%)和()的区别在于,(%)代表零个或多个字符,而(_)只代表一个字符。
SQL:SELECT name FROM heros WHERE name LIKE '_%太%'
你能看出来通配符还是很有用的,尤其是在进行字符串匹配的时候。不过在实际操作过程中,我还是建议你尽量少用通配符,因为它需要消耗数据库更长的时间来进行匹配。即使你对 LIKE 检索的字段进行了索引,索引的价值也可能会失效。如果要让索引生效,那么 LIKE 后面就不能以(%)开头,比如使用LIKE '%太%'或LIKE '%太'的时候就会对全表进行扫描。如果使用LIKE '太%',同时检索的字段进行了索引的时候,则不会进行全表扫描。
heros 数据表为例,请你编写 SQL 语句,对英雄名称、主要定位、次要定位、最大生命和最大法力进行查询,筛选条件为:主要定位是坦克或者战士,并且次要定位不为空,同时满足最大生命值大于 8000 或者最大法力小于 1500 的英雄,并且按照最大生命和最大法力之和从高到底的顺序进行排序。