在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字段中含有“明”的记录,
      所以说,当我们作字符型字段包括一个子串的查询时最好採用“%”而不用“*”,用“*”的时候仅仅在开头或者仅仅在结尾时,而不能两端全由“*”取代随意字符的情况下。

sql语句like的使用方法的更多相关文章

  1. SQL语句中生成UUID方法

    SQL语句中生成UUID方法为UUID() 生成带横线UUID: select UUID()                         形如:abaffaca-fd55-11e5-b3d0-d2 ...

  2. 项目中调试SQLServer 方便的查看SQL语句的执行时间的方法

    第一种方法,先记录执行前的时间,然后在记录执行Sql后的时间,然后做减法 1 第一种方法: 2 declare @begin_date datetime 3 declare @end_date dat ...

  3. 如何将一个本来需要发几十条sql语句的需求优化成两条(非sql语句优化,而是解决方法)

    首先声明,本人所有博客均为原创,谢绝转载! 今天接到一个需求,如下 这里解释一下,为什么是几十条,因为这里面每个公式的每个条件都是一个单独的数据如净利润就是一条sql语句,而且分散在不同的表,如果此方 ...

  4. “取出数据表中第10条到第20条记录”的sql语句+select top 使用方法

    1.首先.select top使用方法: 參考问题  select top n * from和select * from的差别 select * from table --  取全部数据.返回无序集合 ...

  5. Oracle SQL语句之常见优化方法总结

    1.用EXISTS替换DISTINCT 当SQL包含一对多表查询时,避免在SELECT子句中使用DISTINCT,一般用EXIST替换,EXISTS(低效): SELECT DISTINCT USER ...

  6. Oracle SQL语句之常见优化方法总结--不定更新

    1.SQL语句尽量用大写的: 因为oracle总是先解析SQL语句,把小写的字母转换成大写的再执行. 2.WHERE子句中的连接顺序: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理, ...

  7. 关于拼接SQL语句sqlMap的使用方法

    1.为什么使用? 主要还是为了代码中获取到值,然后带入SQL语句中拼接查询 2.怎么使用? 1)bean继承了BaseEntity类,该类中有 /** * 自定义SQL(SQL标识,SQL内容) */ ...

  8. mysql sql语句最大长度设置方法

    今天发现了一个错误:Could not execute JDBC batch update 最后发现原因是SQL语句长度大于1M,而我机器上的mysql是默认设置,也就是说mysql通讯的数据包大小设 ...

  9. mssql sql语句过滤百分号的方法分享

    转自:http://www.maomao365.com/?p=6743 摘要: 下文讲述sql脚本中过滤百分号的方法: 实验环境:sql server 2008 R2  百分号:在sql脚本编写中“百 ...

随机推荐

  1. QQ旅程server分析01-网关server

    网关server网络进程: s1.连接网关管理器 s2.上报自身信息给网关管理器 s3.从网关管理器获取自己的管理信息 *s4.依照管理信息预分配好须要的资源 s5.网关server打开client监 ...

  2. Cocostudio学习笔记(4) LoadingBar+ TextField

    这同时录制两个控件的使用方法:LoadingBar和 TextField. -------------------------------------------------------------- ...

  3. Oracle 阅读器-刚看完表空间回复的详细解释

    (一) 当使用一个控制文件的备份恢复,例如下面的附图.使用备份控制文件恢复位置 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGVtb25zb24=/fo ...

  4. SQLServer 网络协议(一)

    SQLserver现在主要的3种协议:Shared Memory.TCP/IP 和 Named Pipe SharedMemory: Shared Memory最快最简单的协议,使用SharedMem ...

  5. oracle 转让日期格式字符串

    字符串传递日期格式 SELECT trunc(to_date(SALE_MON,'yyyy-mm'),'y'),trunc(to_date(SALE_MON,'yyyy-mm'),'mm')  FRO ...

  6. 【Bible for kids】 儿童圣经 App

    [Bible for kids] 儿童圣经App 除了<The Bible>这个由YouVersion团队开发的全球下载量和安装数目第一的圣经类.安装量已逾1亿8千万的App之外,YouV ...

  7. 【程序员小助手】Emacs,最强编辑器,没有之一

    内容简介 1.Emacs简介 2.Emacs三个平台的安装与配置 3.自动补全插件 4.小编的Emacs配置文件 5.常用快捷方式 6.和版本控制系统的配合(以SVN为例) [程序员小助手]系列 在这 ...

  8. 使用WSE实现Web Service安全----我的第一篇

    原文:使用WSE实现Web Service安全----我的第一篇 WSE(Web Services Enhancements)是微软为了使开发者通过.NET创建出更强大,更好用的Web Service ...

  9. index_ss hint 使用的运行计划变化对照

    index_ss  hint 使用的运行计划变化对照 当中 buffer 代表:当前操作中发生的内存读次数,包括一致性读和当前读 尽管 emp 表记录数不多,可是buffer 读内存的次数区别还是有点 ...

  10. Android设计模式(十)--生成器模式

    回头看自己写的东西,大概Android当自己控制的定义,编写代码适用性比较高.但是,看看没有什么技术含量,因此,当在学习设计模式,想想有些东西是否可以改善,例如: 自己定义Dialog是Android ...