深入研究SQL结构化查询语言中的LIKE语句

语句

  在SQL结构化查询语言中,LIKE语句有着至关重要的作用。
  LIKE语句的语法格式是:select * from 表名 where 字段名 like 对应值(子串),它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的。
  假设有一个数据库中有个表table1,在table1中有两个字段,分别是name和sex二者全是字符型数据。现在我们要在姓名字段中查询以“张”字开头的记录,语句如下:
     select * from table1 where name like "张*"
     如果要查询以“张”结尾的记录,则语句如下:
   select * from table1 where name like "*张"
     这里用到了通配符“*”,可以说,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中有以下记录:
     name            sex
        张小明    男
    李明天       男
    李a天        女
    王5五         男
    王清五      男
  下面我们来举例说明一下:
      例1,查询name字段中包含有“明”字的。
      select * from table1 where name like '%明%'
      例2,查询name字段中以“李”字开头。
      select * from table1 where name like '李*'
      例3,查询name字段中含有数字的。
      select * from table1 where name like '%[0-9]%'
      例4,查询name字段中含有小写字母的。
      select * from table1 where name like '%[a-z]%'
   例5,查询name字段中不含有数字的。
      select * from table1 where name like '%[!0-9]%'
   以上例子能列出什么值来显而易见。但在这里,我们着重要说明的是通配符“*”与“%”的区别。
    很多朋友会问,为什么我在以上查询时有个别的表示所有字符的时候用"%"而不用“*”?先看看下面的例子能分别出现什么结果:
      select * from table1 where name like '*明*'
           select * from table1 where name like '%明%'
      大家会看到,前一条语句列出来的是所有的记录,而后一条记录列出来的是name字段中含有“明”的记录,所以说,当我们作字符型字段包含一个子串的查询时最好采用“%”而不用“*”,用“*”的时候只在开头或者只在结尾时,而不能两端全由“*”代替任意字符的情况下。
     以上是本人对like语句的浅见,不足之处请朋友们指正。
                          胡广涛  2002年3月8日 
电子邮件:hoget@hoget.com
网址:http://www.hoget.com
OICQ:621150
    

时间: 2024-08-16 10:37:13

深入研究SQL结构化查询语言中的LIKE语句的相关文章

Oracle结构化查询语言(Structured Query Language)

SQL是结构化查询语言(Structured Query Language)    专门用于数据存取.数据更新及数据库管理等操作.    此文后积累学习用SQL语句对数据库的表进行增删改查的操作.    在Oracle开发中,客户端把SQL语句发送给服务器,服务器对SQL语句进行编译.执行,把执行的结果返回给客户端. Oracle SQL语句由如下命令组成:   数据定义语言(DDL):包括CREATE(创建)命令.ALTER(修改)命令.DROP(删除)命令等.  数据操纵语言(DML):包括

从非结构化数据中发现问题 富国银行的风险分析之道

9月初,美国消费者金融保护局称美国富国银行(Wells Fargo)员工在未告知客户的情况下,自2011年起私自建立近两百万个虚假银行账户,富国银行被要求支付1.9亿美金高额的罚款. 9月中旬我也在大洋彼岸见到了美国富国银行企业模型风险部副总裁刘维政(Richard Liu),第二次见面没有客气,一上来我就提出了"幽灵账户"和风险管控的问题.虽然刘维政最近正热衷于研究和学习太极,但他却并没有和我"打太极". "这一现象其实在很多银行都可能发生,可能只是没有

公共安全中的“视频结构化”分析

1公共安全当前的状况平安城市的建设起源于"科技强警"战略和城市报警与监控系统建设即"3111"试点工程两大项目.从2004年以来,经过十多年的建设,平安城市的视频存储规模已经突破EB级,这些巨量的视频数据在社会公共安全管理和案件侦破等工作中越来越扮演着不可替代的作用.在公共安全信息化建设深入开展的背景下,现有视频系统存在着缺乏深度应用模式.视频数据智慧化程度不高等突出问题.如何用新技术改造现有的视频系统,使之能更好地适应物联网时代视频智慧化.情报化的应用需求已迫在眉

SQL Server应用程序中的高级SQL注入

server|程序|高级 介绍: SQL是一种用于关系数据库的结构化查询语言.它分为许多种,但大多数都松散地基于美国国家标准化组织最新的标准SQL-92.典型的执行语句是query,它能够收集比较有达标性的记录并返回一个单一的结果集.SQL语言可以修改数据库结构(数据定义语言)和操作数据库内容(数据操作语言).在这份文档中,我们将特别讨论SQLSERVER所使用的Transact-SQL语言. 当一个攻击者能够通过往query中插入一系列的sql语句来操作数据写入到应用程序中去,我们管这种方法定

揭秘隐藏在非结构化数据背后的真相

本文讲的是揭秘隐藏在非结构化数据背后的真相,随着互联网技术的发展,大量非结构化数据逐渐走入人们的视野,数据科学家也开始将研究重点转移至非结构化数据.据Gartner预计,全球信息量每年的最低增长率为59%,其中有15%是结构化数据,其余的85%则由各种非结构化数据组成.在IDC的一项调查报告中也指出:企业中80%的数据都是非结构化数据,这些数据每年都按指数增长60%. 非结构化数据是指那些不方便用数据库二维逻辑表来表现的数据,包括所有格式的办公文档.文本.图片.XML.HTML.各类报表.图像和

非结构化数据——RAID模式已过时

一份来自Novell公司Ponemon研究所针对对美国94个大型企业的调查显示,平均每个公司每年花在非结构化数据处理上的成本为210万美元:而一些受到严格监管的行业,比如金融.制药.通讯和医疗行业的成本最高,每年将达到250万美元:另一个来自Unisphere Research的调查则显示,62%的受访者表示非结构化信息的产生是不可避免的,在未来十年内将超过传统数据.此外有35%的人表示,在未来的36个月里,非结构化的信息量将超过传统的关系数据. 据IDC的预测,现在全球数据量每18个月就要翻一

视频结构化,支撑安防技术新未来

从大数据和云技术相继在安防行业大展拳脚之际,视频结构化技术被得以重视,成为安防巨头企业争相展示的技术类别. 视频结构化迎来了应用的春天 其实视频结构化技术作为行业一个技术研究方向,早在2009年由公安部三所提出,作为官办的检测机构由于市面上并未出现涵盖此技术的送检产品,因而被搁置.直到大数据和云技术在安防行业的应用,让以视频结构化技术成为代表新一代视频监控的关键技术,也是产业技术创新发展的一个突破口.当然,目前其最主流应用集中在公安行业,因为在业务实践中,他们遇到了一些困难和问题: 缺少视频信息

解决非结构化数据安全风险,从何处入手?

身份和访问管理(IAM)是很棘手的领域,是因为IAM技术和标准的复杂性.最大的挑战是弄清楚如何通过IAM战略处理企业内非结构化内容. 考虑到数据位置的多样性以及数据移动的n多种方式,解决缩写挑战以及了解不同产品提供的功能是极为重要的事情.目前很多供应商提供服务来应对这一挑战,随着新供应商以及老牌供应商扩大其IAM产品范畴,这个相对较新的领域正处在快速发展中. 企业需要全面审核其可能合作的供应商,以确保其非结构化内容能得到处理.另外更复杂的是,安全专业人员都面临着这样的问题:不确定数据在哪里,不确

通过SQL 2008管理非结构化数据

通过SQL Server 2008管理非结构化数据 SQL Server 技术文档 作者:Graeme Malcolm (内容主管) 技术审核员:Shan Sinha 项目编辑:Joanne Hodgins 发布日期:2007年8月 适用产品:SQL Server 2008 概述:数字化信息的增长为企业应当存储和访问业务数据的方法提供了启发.数据库作为业务应用程序的核心,必须能够同非结构化的数据进行集成,其中包括文档.图像.视频.以及其它多媒体格式.为了能够对信息生命周期进行管理,满足策略需求,