一 使用where子句:
(1)数据根据where子句指定的搜索条件进行过滤。
(2)where子句操作符:
*比较操作符:=,>,>=,<,<=,!=,<>,NOT+上述操作符。
*确定范围:between and,not between and
*确定集合:in,not in
*字符串匹配:like,not like;regexp(正则表达式)
*空值:null,is not null
*逻辑运算:and,or,not
二 组合where子句:
(1)使用逻辑操作符and和or连接多个where条件语句。注意:AND的优先级比OR高,所以有时需使用()。
(2)AND:用在where子句中的关键字,用来指示检索满足所有给定条件的行。
(3)OR:检索匹配任一条件的行。
(4)IN:用来指定条件范围,范围中的每个条件都可以进行匹配。IN取合法值:由圆括号括住,以逗号分隔的清单。
*例如:year in (2012,2013)。
*优点:
~IN操作符语法更清楚和直观。
~IN操作符一般比OR操作符执行更快。
~最大优点:可以包含其他select语句。
(5)not操作符:用来否定后跟条件的关键字。
*mysql支持使用not对in、between和exists子句取反。
三 用通配符进行过滤(like):
(1)%通配符:表示任何字符出现任意次数。例如:a%b表示以a开头以b结尾的任意长度的字符串。
*例如:select * from 表名 where name like 'j%s'.
(2)_代表任意单个字符。一个汉字要占两个字符。'李_ _ _ _'。
(3)not like:否定like。
(4)使用技巧:
*不要过度使用通配符。
*在确定需要使用通配符时,除非绝对有必要,否则不要把它用在搜索模式的开始处。
四 用正则表达式过滤(regexp):
(1)MYSQL支持多数正则表达式的一个很小的子集。
(2)语法:
select <目标列表达式> from 表名 where 列名 regexp '.ames'
(3)支持的正则表达式(部分):
*基本字符匹配:.。
*进行or匹配:例如:year regexp '2012|2013'。
*匹配几个字符之一:[]。
*匹配特殊字符:\\+特殊字符。多数正则表达式使用单个反斜杠,但MYSQL要求两个反斜杠(自己解释一个,正则表达式解释一个)。
*匹配字符类:[:digit:]等。
*匹配多个实例:*,{m,n}等。
*定位符:$、^等。
(4)可以在不使用数据库表的情况下用select来测试正则表达式。
*regexp检查总是返回0或1(匹配)。
*例如:select '123' regexp [1-9] 。返回1。