第六章--过滤数据
1. 在SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤, WHERE子句在表名(FROM子句)之后给出
例如:select prod_names, prod_id, prod_price from products where prod_price=2.5;
WHERE子句的位置 在同时使用ORDERBY和WHERE子句时,应 该让ORDER BY位于WHERE之后,否则将会产生错误
2. WHERE子句操作符
= 等于
<> 不等于
!= 不等于
< 小于
<= 小于等于
> 大于
>= 大于等于
BETWEEN 在指定的两个值之间
3. 范围值检查
select prod_names, prod_id, prod_price from products where prod_price between 5 and 10;使用BETWEEN时,必须指定两个值——所需范围的低端值和高端值。这两个值必须用AND关键字 分隔。
BETWEEN匹配范围中所有的值,包括指定的开始值和结束值。
4. 空值检查
NULL 无值(no value),它与字段包含0、空字符串或仅仅包含空格不同。
IS NULL子句, 可用来检查具有NULL值的列.select prod_names from products where prod_price is null;
第七章--数据过滤
1.操作符(operator) 用来联结或改变WHERE子句中的子句的关键 字。也称为逻辑操作符(logical operator)
2.AND操作符:select prod_names,prod_id, prod_price from products where prod_id=1003 and prpd_price<=10; 且条件
3.OR操作符:select prod_names,prod_id, prod_price from products where prod_id=1003 or prpd_price<=10; 或条件
4.计算次序:SQL(像多数语言一样)在处理OR操作符前,优先处理AND操 作符, 所以在包含多个and 和or 操作符,需要使用圆括号()来确保自己的判断条件不会被错误的组合。
5.IN操作符:IN操作符用来指定条件范 围,范围中的每个条件都可以进行匹配。
select prod_names,prod_id, prod_price from products where prod_id in (1003, 1002);
IN操作符优点如下:
(1)在使用长的合法选项清单时,IN操作符的语法更清楚且更直观。
(2)IN操作符一般比OR操作符清单执行更快。
(3)IN的最大优点是可以包含其他SELECT语句,使得能够更动态地建立WHERE子句
(4)在使用IN时,计算的次序更容易管理(因为使用的操作符更少)。
4.NOT操作符:否定它之后所 跟的任何条件。 匹配1002和1003之外的所有prod_id:
select prod_names,prod_id, prod_price from products where prod_id not in (1003, 1002);
MySQL支持使用NOT对IN、BETWEEN和 EXISTS子句取反.
第八章--用通配符进行过滤
1.通配符(wildcard) 用来匹配值的一部分的特殊字符
2.搜索模式(search pattern)1 由字面值、通配符或两者组合构成的搜索条件。
3.百分号(%)通配符, 在搜索串中,%表示任何字符出现任意次数。区分大小写.%代表搜索模式中给定位置的0个、1个或多个字符。
select prod_names,prod_id, prod_price from products where prod_names like "jet%" ; 在执行这条子句时,将检索任意以jet起头的词
select prod_names,prod_id, prod_price from products where prod_names like "%jet%" ; 在执行这条子句时,将检索任意包含jet的词
select prod_names,prod_id, prod_price from products where prod_names like "j%t" ; 在执行这条子句时,将检索任意以j开头以t结尾的词
注意NULL:WHERE prod_names LIKE "%"也不能匹配用值NULL作为产品名的行。
4.下划线(_)通配符:下划线只匹配单个字符而不是多个字符。
select prod_names,prod_id, prod_price from products where prod_names like "_et" ;
5.弱点:通配符搜索的处理一般要比前面讨论的其他搜索所花时间更长.