|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在需要把许多新记录插入某个数据表的场合,DELAY_KEY_WRITE选项的作用将非常明显。另外,索引还会在硬盘上占用相当大的空间。因此应该只为最经常查询和最经常排序的数据列建立索引。注意,如果某个数据列包含许多重复的内容,为它建立索引就没有太大的实际效果。语句
在SQL布局化查询言语中,LIKE语句有着相当主要的感化。
LIKE语句的语法格局是:select*from表名where字段名like对应值(子串),它次要是针对字符型字段的,它的感化是在一个字符型字段列中检索包括对应子串的。
假定有一个数据库中有个表table1,在table1中有两个字段,分离是name和sex两者满是字符型数据。如今我们要在姓名字段中查询以“张”字开首的纪录,语句以下:
select*fromtable1wherenamelike"张*"
假如要查询以“张”开头的纪录,则语句以下:
select*fromtable1wherenamelike"*张"
这里用到了通配符“*”,能够说,like语句是和通配符分不开的。上面我们就具体先容一下通配符。
婚配范例
形式
举例 及 代表值
申明
多个字符
*
c*c代表cc,cBc,cbc,cabdfec等
它同于DOS命令中的通配符,代表多个字符。
多个字符
%
%c%代表agdcagd等
这类办法在良多程序中要用到,次要是查询包括子串的。
特别字符
[*]
a
[*]a代表a*a
取代*
单字符
?
b?b代表brb,bFb等
同于DOS命令中的?通配符,代表单个字符
双数字
#
k#k代表k1k,k8k,k0k
大抵同上,分歧的是代只能代表单个数字。
字符局限
-[a-z]代表a到z的26个字母中恣意一个指定一个局限中恣意一个
续上
扫除[!字符][!a-z]代表9,0,%,*等它只代表单个字符数字扫除[!数字][!0-9]代表A,b,C,d同等上组合范例字符[局限范例]字符cc[!a-d]#代表ccF#等能够和别的几种体例组合利用
假定表table1中有以下纪录:
namesex
张小明 男
李今天 男
李a天 女
王5五 男
王清五 男
上面我们来举例申明一下:
例1,查询name字段中包括有“明”字的。
select*fromtable1wherenamelike%明%
例2,查询name字段中以“李”字开首。
select*fromtable1wherenamelike李*
例3,查询name字段中含无数字的。
select*fromtable1wherenamelike%[0-9]%
例4,查询name字段中含有小写字母的。
select*fromtable1wherenamelike%[a-z]%
例5,查询name字段中不含无数字的。
select*fromtable1wherenamelike%[!0-9]%
以上例子能列出甚么值来不言而喻。但在这里,我们侧重要申明的是通配符“*”与“%”的区分。
良多伴侣会问,为何我在以上查询时有一般的暗示一切字符的时分用"%"而不必“*”?先看看上面的例子能分离呈现甚么了局:
select*fromtable1wherenamelike*明*
select*fromtable1wherenamelike%明%
人人会看到,前一条语句列出来的是一切的纪录,尔后一笔记录列出来的是name字段中含有“明”的纪录,以是说,当我们作字符型字段包括一个子串的查询时最好接纳“%”而不必“*”,用“*”的时分只在开首大概只在开头时,而不克不及两头全由“*”取代恣意字符的情形下。
以上是自己对like语句的肤见,不敷的地方请伴侣们斧正。
胡广涛 2002年3月8日
电子邮件:hoget@hoget.com
网址:http://www.hoget.com
OICQ:621150
EXAMPLE存储引擎是一个不做任何事情的存根引擎。它的目的是作为MySQL源代码中的一个例子,用来演示如何开始编写一个新存储引擎。同样,它的主要兴趣是对开发者。EXAMPLE存储引擎不支持编索引。 |
|