读书笔记--SQL必知必会06--用通配符进行过滤
SQL -- 进行 过滤 读书笔记 06 必会 必知
2023-09-14 09:00:40 时间
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 使用通配符的技巧
- 为了简洁易用,不过度使用通配符。
- 为了加快搜索,不在搜索模式的开始放置通配符。
- 为了搜索正确,仔细注意通配符的位置。
相关文章
- Oracle SQL 基础:窗口函数(一)over()函数
- 【SQL】SQL中distinct的用法
- if sql语句_SQL IF语句介绍和概述
- SQL去重语句_sql中文
- 揭秘SQL Server 2014有哪些新特性(2)-固态硬盘 Buffer Pool(缓冲池) 扩展
- 用SQL语句查询数据库中某一字段下相同值的记录方法
- SQL和Oracle教程:掌握计算机数据库的基础知识(sql教程oracle)
- Python3:sqlalchemy对mysql数据库操作,非sql语句详解编程语言
- Hibernate show_sql属性:指定是否输出SQL语句
- MySQL中常用的SQL语句(sql语句mysql)
- SQL数据库迁移至MySQL:实现快速导入(sql数据库导入mysql)
- Mysql中删除记录的SQL语句(mysql删除sql语句)
- 字段在SQL Server中实现自增字段(在SQLserver自增)
- 如何打开MySQL中的SQL?(mysql打开sql)
- 精度SQL Server精确控制,实现无止境非负精度(sqlserver 非负)
- 利用SQL Server类库进行数据库管理(sqlserver类库)
- SQL Server实现计算数据精准度!(sqlserver算数)
- SQL Server分区:提高数据库性能的新方法(sqlserver的分区)
- SQL Server为你的数据库提供改进值(sqlserver更新值)
- 写SQL Server大小写技巧(sqlserver大小)
- MySQL如何进行批量导入SQL数据?(mysql批量导入sql)
- MySQL SQL日志技术指南(mysql sql 日志)
- 探索Oracle数据库中的关联式SQL(oracle关联sql)
- MySQL操作如何使用SQL窗口进行数据查询和修改(mysql 中sql窗口)
- sql学习使用LR分析Oracle SQL语句的完美指南(lr 写oracle)
- MySQL中使用三个表进行联合查询的SQL语句(mysql三表联查sql)
- Oracle SQL认证获取高级计算能力的必要准备(oracle sql认证)
- 籍学习Oracle SQL让你全面了解向数据库说话(oracle sql的书)
- 从Oracle数据库查重SQL技巧介绍(oracle sql查重)
- Oracle SQL序列有效自动增长及控制ID(oracle sql序列)
- 从零开始学习Oracle SQL存储过程(oracle sql存过)
- Oracle SQL中的加法运算指南(oracle sql加法)