6.1 LIKE操作符

通配符(wildcard),用来匹配某些值的的特殊字符。

  • 在搜索子句中必须通过LIKE操作符使用通配符。
  • 通配符搜索只能用于文本字段(字符串),非文本数据类型字段不能使用通配符搜索。
  • 利用通配符,可以创建特定数据的搜索模式。

搜索模式(search pattern),由字面值、通配符或两者组合构成的搜索条件。

注意:在不同的DBMS及配置中,通配符的定义可能不同,并且搜索也可能区分大小写。

6.1.1 百分号通配符

在搜索字符串中,%表示任何字符出现任意次数(包含0个、1个或多个),但不匹配NULL。

通配符可以在搜索模式中的任意位置使用,并且可以使用多个通配符。

MariaDB [sqlbzbh]> SELECT prod_id, prod_name FROM Products WHERE prod_name LIKE 'Fish%';
+---------+-------------------+
| prod_id | prod_name |
+---------+-------------------+
| BNBG01 | Fish bean bag toy |
+---------+-------------------+
1 row in set (0.00 sec) MariaDB [sqlbzbh]>
MariaDB [sqlbzbh]> SELECT prod_id, prod_name FROM Products WHERE prod_name LIKE '%bean bag%';
+---------+---------------------+
| prod_id | prod_name |
+---------+---------------------+
| BNBG01 | Fish bean bag toy |
| BNBG02 | Bird bean bag toy |
| BNBG03 | Rabbit bean bag toy |
+---------+---------------------+
3 rows in set (0.00 sec) MariaDB [sqlbzbh]>
MariaDB [sqlbzbh]> SELECT prod_name FROM Products WHERE prod_name LIKE 'F%y';
+-------------------+
| prod_name |
+-------------------+
| Fish bean bag toy |
+-------------------+
1 row in set (0.00 sec) MariaDB [sqlbzbh]>
MariaDB [sqlbzbh]> SELECT cust_email FROM Customers;
+-----------------------+
| cust_email |
+-----------------------+
| sales@villagetoys.com |
| NULL |
| jjones@fun4all.com |
| dstephens@fun4all.com |
| NULL |
+-----------------------+
5 rows in set (0.00 sec) MariaDB [sqlbzbh]>
MariaDB [sqlbzbh]> SELECT cust_email FROM Customers WHERE cust_email LIKE '%';
+-----------------------+
| cust_email |
+-----------------------+
| sales@villagetoys.com |
| jjones@fun4all.com |
| dstephens@fun4all.com |
+-----------------------+
3 rows in set (0.00 sec) MariaDB [sqlbzbh]>

6.1.2 下划线通配符

下划线(_)通配符只匹配单个字符。

MariaDB [sqlbzbh]> SELECT prod_id, prod_name FROM Products WHERE prod_name LIKE '_ inch teddy bear';
+---------+-------------------+
| prod_id | prod_name |
+---------+-------------------+
| BR01 | 8 inch teddy bear |
+---------+-------------------+
1 row in set (0.00 sec) MariaDB [sqlbzbh]>
MariaDB [sqlbzbh]> SELECT prod_id, prod_name FROM Products WHERE prod_name LIKE '__ inch teddy bear';
+---------+--------------------+
| prod_id | prod_name |
+---------+--------------------+
| BR02 | 12 inch teddy bear |
| BR03 | 18 inch teddy bear |
+---------+--------------------+
2 rows in set (0.00 sec) MariaDB [sqlbzbh]>

6.1.3 方括号通配符

方括号([])通配符用来指定一个字符集,它必须匹配指定位置(通配符的位置)的一个字符。

只有微软的Access和SQL Server支持,这里不做实例演示。

6.2 使用通配符的技巧

  • 为了简洁易用,不过度使用通配符。
  • 为了加快搜索,不在搜索模式的开始放置通配符。
  • 为了搜索正确,仔细注意通配符的位置。

读书笔记--SQL必知必会06--用通配符进行过滤的更多相关文章

  1. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  2. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  3. 读书笔记--SQL必知必会--建立练习环境

    书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL in 10 Minutes - Fourth Edition> MyS ...

  4. 读书笔记--SQL必知必会12--联结表

    12.1 联结 联结(join),利用SQL的SELECT在数据查询的执行中联结表. 12.1.1 关系表 关系数据库中,关系表的设计是把信息分解成多个表,一类数据一个表,各表通过某些共同的值互相关联 ...

  5. SQL语法语句总结(《SQL必知必会》读书笔记)

    一.SQL语句语法 ALTER TABLE ALTER TABLE 用来更新已存在表的结构. ALTER TABLE tablename (ADD|DROP column datatype [NULL ...

  6. 《mysql必知必会》读书笔记--存储过程的使用

    以前对mysql的认识与应用只是停留在增删改查的阶段,最近正好在学习mysql相关内容,看了一本书叫做<MySQL必知必会>,看了之后对MySQL的高级用法有了一定的了解.以下内容只当读书 ...

  7. MySQL必知必会1-20章读书笔记

    MySQL备忘 目录 目录 使用MySQL 检索数据 排序检索数据 过滤数据 数据过滤 用通配符进行过滤 用正则表达式进行搜索 创建计算字段 使用数据处理函数 数值处理函数 汇总数据 分组数据 使用子 ...

  8. 《SQL必知必会》学习笔记二)

    <SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语 ...

  9. MySQL使用和操作总结(《MySQL必知必会》读书笔记)

    简介 MySQL是一种DBMS,即它是一种数据库软件.DBMS可分为两类:一类是基于共享文件系统的DBMS,另一类是基于客户机——服务器的DBMS.前者用于桌面用途,通常不用于高端或更关键应用. My ...

  10. 【SQL必知必会笔记(3)】SELECT语句的WHERE子句数据过滤操作

    上个笔记主要介绍了利用SELECT语句检索单个/多个/所有列,并利用DISTINCT关键字检索具有唯一性的值.利用LIMIT/OFFSET子句限制结果:以及利用ORDER BY子句排序检索出的数据,主 ...

随机推荐

  1. ASP.NET Core 中文文档 第四章 MVC(3.8)视图中的依赖注入

    原文:Dependency injection into views 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:孟帅洋(书缘) ASP.NET Core 支持在视图中使用 依赖 ...

  2. Electron使用与学习--(页面间的通信)

    目录结构: index.js是主进程js. const electron = require('electron') const app = electron.app const BrowserWin ...

  3. Spring之旅(2)

    Spring简化Java的下一个理念:基于切面的声明式编程 3.应用切面 依赖注入的目的是让相互协作的组件保持松散耦合:而AOP编程允许你把遍布应用各处的功能分离出来形成可重用的组件. AOP面向切面 ...

  4. PHP数据类型之间的强制转换

    1.实型数据强制转换为整型数据 $float1=2.7; $int1=(int)$float1; echo var_dump($int1),"<br>"; 输出: in ...

  5. Oracle 数据库语句大全

    Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CH ...

  6. bzoj1584--DP

    题目大意:有N头奶牛,每头那牛都有一个标号Pi,1 <= Pi <= M <= N <= 40000.现在Farmer John要把这些奶牛分成若干段,定义每段的不河蟹度为:若 ...

  7. 云计算下PAAS的解析一

    云计算下PAAS的解析一       PaaS是Platform-as-a-Service的缩写,意思是平台即服务. 把服务器平台作为一种服务提供的商业模式.通过网络进行程序提供的服务称之为SaaS( ...

  8. 《动手实现一个网页加载进度loading》

    loading随处可见,比如一个app经常会有下拉刷新,上拉加载的功能,在刷新和加载的过程中为了让用户感知到 load 的过程,我们会使用一些过渡动画来表达.最常见的比如"转圈圈" ...

  9. 深入理解DOM节点操作

    × 目录 [1]创建节点 [2]插入节点 [3]移除节点[4]替换节点[5]复制节点 前面的话 一般地,提起操作会想到“增删改查”这四个字,而DOM节点操作也类似地对应于此,接下来将详细介绍DOM的节 ...

  10. mysql删除重复记录语句的方法

    例如: id name value 1 a pp 2 a pp 3 b iii 4 b pp 5 b pp 6 c pp 7 c pp 8 c iii id是主键 要求得到这样的结果 id name ...