现在的位置: 首页 > 综合 > 正文

SQL(四)查询(二)过滤数据(where子句()

2013年12月11日 ⁄ 综合 ⁄ 共 1075字 ⁄ 字号 评论关闭

一 使用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。






抱歉!评论已关闭.