仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1449|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL教程之深切研讨SQL布局化查询言语中的LIKE语句...

[复制链接]
老尸 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:27:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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存储引擎不支持编索引。
小女巫 该用户已被删除
沙发
发表于 2015-1-16 22:30:11 | 只看该作者

MSSQL教程之深切研讨SQL布局化查询言语中的LIKE语句...

SQLServer的异构移植功能个人感觉最好了。(如果对比过SQLServer的链接服务器和Oracle的透明网关的朋友会发现SQLServer的sp_addlinkedserver(openquery)异构数据库系列比Oracle真是强太多了。)
小魔女 该用户已被删除
板凳
发表于 2015-1-19 15:55:30 | 只看该作者
Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。
冷月葬花魂 该用户已被删除
地板
发表于 2015-1-28 07:42:08 | 只看该作者
是否碎片会引发效率问题?这都是需要进一步探讨的东西。varbinary(max)代替image也让SQLServer的字段类型更加简洁统一。
蒙在股里 该用户已被删除
5#
发表于 2015-2-13 09:55:40 | 只看该作者
SP4是一个累积性的ServicePack,包含自以前的ServicePack发布以来所有的修补程序(包括MS03-031安全公告)。
第二个灵魂 该用户已被删除
6#
发表于 2015-3-3 20:13:03 | 只看该作者
语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的!
小妖女 该用户已被删除
7#
发表于 2015-3-11 13:25:13 | 只看该作者
作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!
透明 该用户已被删除
8#
发表于 2015-3-18 20:55:50 | 只看该作者
始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。
灵魂腐蚀 该用户已被删除
9#
发表于 2015-3-26 16:50:49 | 只看该作者
如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-17 11:33

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表