精通MS-ACCESS SQL之基础篇(22)-Big Young
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-查询/SQL语句


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

发表时间:2017/12/14 11:51:18 评论(1) 浏览(4512)  评论 | 加入收藏 | 复制
   
摘 要:    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群(群号:198465573)
 
 相关文章
精通MS-ACCESS SQL之基础篇(16)  【Big Young  2017/12/5】
精通MS-ACCESS SQL之基础篇(17)  【Big Young  2017/12/7】
精通MS-ACCESS SQL之基础篇(18)  【Big Young  2017/12/7】
精通MS-ACCESS SQL之基础篇(19)  【Big Young  2017/12/8】
精通MS-ACCESS SQL之基础篇(20)  【Big Young  2017/12/11】
精通MS-ACCESS SQL之基础篇(21)  【Big Young  2017/12/14】
常见问答
技术分类
相关资源
文章搜索
关于作者

Big Young

文章分类

文章存档

友情链接