《MySql必知必会》读书笔记_数据过滤

7.1、组合 WHERE 子句

操作符,用来联结或改变 WHERE 子句中的子句的关键字。也称为逻辑操作符。

7.1.1、AND 操作符

SELECT prod_id, prod_price, prod_name FROM products WHERE vend_id = 1003 AND prod_price <= 10;

检索由供应商1003制造 且 价格小于等于10美元的所有产品的名称和价格。

7.1.2、OR 操作符

SELECT prod_name, prod_price FROM products WHERE vend_id = 1002 OR vend_id = 1003;

OR 用来表示检索匹配任一给定条件的行。

7.1.3、计算次序

SELECT prod_name, prod_price FROM products WHERE vend_id = 1002 OR vend_id = 1003 AND prod_price >= 10;

理解为:由供应商1003制造的任何价格为10美元以上的产品,或者由供应商1002制造的任何产品,而不管其价格如何。

AND 在计算次序中优先级更高。

7.1.4、IN 操作符

SELECT prod_name, prod_price FROM products WHERE vend_id IN (1002, 1003) ORDER BY prod_name;

<=> SELECT prod_name, prod_price FROM products WHERE vend_id = 1002 OR vend_id = 1003 ORDER BY prod_name;

7.1.5、NOT 操作符

SELECT prod_name, prod_price FROM products WHERE vend_id NOT IN (1002, 1003) ORDER BY prod_name;

匹配1002 和1003 之外供应商的 vend_id。

 

通配符,用来匹配值的一部分的特殊字符。

搜索模式,由字面值、通配符或两者组合构成的搜索条件。利用通配符可创建比较特定数据的搜索模式。

8.1、LIKE 操作符

8.1.1、百分号(%)通配符

% 表示任何字符出现任意次数。

SELECT prod_id, prod_name FROM products WHERE prod_name LIKE 'jet%';

检索出以词 jet 起头的产品。(区分大小写)

SELECT prod_name FROM products WHERE prod_name LIKE 's%e';

检索以 s 起头以 e 结尾的所有产品。% 代表搜索模式中给定位置的 0 个、1 个 或 多个字符。

8.1.2、下划线(_)通配符

下划线只匹配单个字符而不是多个字符。

SELECT prod_id, prod_name FROM products WHERE prod_name LIKE '_ ton anvil';

与 % 能匹配0个字符不一样,_ 总是匹配一个字符,不能多也不能少。

posted @ 2018-03-24 16:37  bubu_12  阅读(40)  评论(0)    收藏  举报