仓酷云
标题:
MSSQL教程之深切研讨SQL布局化查询言语中的LIKE语句...
[打印本页]
作者:
老尸
时间:
2015-1-16 22:27
标题:
MSSQL教程之深切研讨SQL布局化查询言语中的LIKE语句...
在需要把许多新记录插入某个数据表的场合,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存储引擎不支持编索引。
作者:
小女巫
时间:
2015-1-16 22:30
标题:
MSSQL教程之深切研讨SQL布局化查询言语中的LIKE语句...
SQLServer的异构移植功能个人感觉最好了。(如果对比过SQLServer的链接服务器和Oracle的透明网关的朋友会发现SQLServer的sp_addlinkedserver(openquery)异构数据库系列比Oracle真是强太多了。)
作者:
小魔女
时间:
2015-1-19 15:55
Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。
作者:
冷月葬花魂
时间:
2015-1-28 07:42
是否碎片会引发效率问题?这都是需要进一步探讨的东西。varbinary(max)代替image也让SQLServer的字段类型更加简洁统一。
作者:
蒙在股里
时间:
2015-2-13 09:55
SP4是一个累积性的ServicePack,包含自以前的ServicePack发布以来所有的修补程序(包括MS03-031安全公告)。
作者:
第二个灵魂
时间:
2015-3-3 20:13
语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的!
作者:
小妖女
时间:
2015-3-11 13:25
作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!
作者:
透明
时间:
2015-3-18 20:55
始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。
作者:
灵魂腐蚀
时间:
2015-3-26 16:50
如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2