Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-查询/SQL语句

精通MS-ACCESS SQL之基础篇(22)

时 间:2017-12-14 11:51:18
作 者:Big Young   ID:252  城市:襄阳
摘 要:    ACCESS SQL通配符的运用示例。
正 文:

第二十二节 ACCESS SQL通配符

通配符,英文叫“wildcard character”,是一种专用的占位符,在样式中代表一个或多个真正的字符,在搜索中用于模糊查询。MS Access支持两组通配符,因为它支持结构化查询语言的两个标准:ANSI-89ANSI-92。通常,对 Access 数据库(.mdb.accdb文件)执行查询和查找替换操作时,使用ANSI-89通配符,这是ACCESS默认的标准。因为ANSI-92标准在当今应用更广泛深入,我们这里为了与新的标准接轨,采用的是ANSI-92的标准,故我们在文中只针对ANSI-92标准的SQL通配符作出说明。

一、MS ACCESSANSI-92标准的SQL通配符

ACCESS中,支持ANSI-92标准的SQL通配符见下表:

通配符

说明

示例

%

匹配任意字符数。可将其用作字符串中的第一个或最后一个字符。

wh%”可以找到 whatwhite why,但找不到 awhile watch

_

匹配任意单个字母字符。

B_ll”可以找到 ballbell bill

[ ]

匹配括号中的任意单个字符。

B[ae]ll”可以找到 ball bell,但找不到 bill

^!

匹配括号中不包含的任意字符。

b[^ae]ll”可以找到 bill bull,但找不到 ball bell

-

匹配字符范围中的任意一个字符。必须以升序指定该范围(A Z,而不是 Z A)。

b[a-c]d”可以找到 badbbd bcd

二、对通配符自身引用的几点说明

若要查找位于数据中的通配符,请将要查找的字符括在括号中,例如:[#]。搜索星号 (*)、问号 (?)、井号 (#)、左方括号 ([) 和连字符 (-) 时,遵循此规则。搜索感叹号 (!) 或右方括号 (]) 时,不使用括号。使用查询查找这些字符时,可以按照相同的方法操作。例如,以下语法返回包含感叹号的所有记录,而不考虑字符在数据中的位置:Like "*!*"

若要同时搜索连字符和其他字符,请将连字符置于括号内所有其他字符之前或之后,例如:[-#*] [#*-]。但是,如果左括号后接感叹号 (!),请将连字符置于感叹号后:[!-]

要搜索一对左括号和右括号 ([]),必须将这两个字符括在括号中,例如:[[]]。必须这样操作,因为 Access 将一对方括号解释为 零长度字符串。

三、在SQL查询中运用通配符实例

在搜索数据库中的数据时,SQL通配符可以替代一个或多个字符。SQL通配符必须与 LIKE运算符一起使用。下面我们以一个名为“Persons”的示例表的查询来说明通配符的具体用法。

原始表的数据如图22-1所示:

22-1:原始数据表

1、通配符%的使用示例

现在,我们希望从上面的“Persons”表中选取居住在以“Ne”开头的城市里的人,可以使用下面的 Select 语句:

Select *

FROM Persons

Where City LIKE 'Ne%';

运行查询的结果为图22-2的效果:

22-2:查询以“Ne”开头的城市里的人的结果

接下来,我们希望从“Persons”表中选取居住在包含“lond”的城市里的人,可以使用下面的Select语句:

Select *

FROM Persons

Where City LIKE '%lond%';

查询后结果如图22-3所示:

22-3:查询城市中包含“lond”的结果集

2、通配符_的使用示例

    现在,我们希望从上面的“Persons”表中选取名字的第一个字符之后是“eorge”的人,使用下面的 Select 语句:

Select *

FROM Persons

Where FirstName LIKE '_eorge';

运行的结果如图22-4

22-4:使用通配符_查询结果

再来一个例子,接下来,我们希望从“Persons”表中选取的这条记录的姓氏以“C”开头,然后是一个任意字符,然后是“r”,然后是任意字符,然后是“er”,我们可以使用下面的Select语句:

Select *

FROM Persons

Where LastName LIKE 'C_r_er';

查询的结果集如图22-5所示:

22-5:使用通配符_查询的例二结果

3、通配符[charlist]的使用示例

我们也分两个例子来说明,先来看例子一。现在,我们希望从上面的“Persons”表中选取居住的城市以“A”、“L”或“N”开头的人,可以使用下面的Select语句进行查询:

Select *

FROM Persons

Where City LIKE '[ALN]%';

结果集如图22-6

22-6:通配符[]示例一查询结果

再来看示例二,现在,我们希望从前面的“Persons”表中选取居住的城市不以“A”、“L”或“N”开头的人,使用下面的Select语句来完成任务:

Select *

FROM Persons

Where City LIKE '[!ALN]%';

    示例二SQL语句查询的结果集如图22-7所示:

22-7:通配符[]示例二查询结果

从上面的示例中我们可以看到,通过通配符的使用,我们可以实现各种灵活的模糊查询,极大地方便了提取与操作数据记录的工作,要在实践中多多操练体会。



Access软件网官方交流QQ群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助