SQL 设置更加复杂的筛选条件
文章目录
- SQL 设置更加复杂的筛选条件
- 1. LIKE 操作符
- 2.LIKE 语法
- 3.逻辑运算符
- 4.通配符
- 总结
1. LIKE 操作符
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
2.LIKE 语法
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;
演示数据库
下面是选自 “Websites” 表的数据:
id | name | url | alexa | country |
1 | Google | 1 | USA | |
2 | 百度 | 666 | CN | |
3 | 淘宝 | 13 | CN | |
4 | 微博 | 20 | CN | |
5 | Facebook | 3 | USA | |
6 | stackoverflow | 0 | IND |
实例
SQL LIKE 操作符实例
下面的 SQL 语句选取 name 以字母 “G” 开始的所有客户:
SELECT * FROM Websites
WHERE name LIKE 'G%';
实例
提示:“%” 符号用于在模式的前后定义通配符(默认字母)。您将在下一章中学习更多有关通配符的知识。
下面的 SQL 语句选取 name 以字母 “k” 结尾的所有客户:
SELECT * FROM Websites
WHERE name LIKE '%k';
实例
下面的 SQL 语句选取 name 包含模式 “oo” 的所有客户:
SELECT * FROM Websites
WHERE name LIKE '%oo%';
实例
通过使用 NOT 关键字,您可以选取不匹配模式的记录。
下面的 SQL 语句选取 name 不包含模式 “oo” 的所有客户:
SELECT * FROM Websites
WHERE name NOT LIKE '%oo%';
3.逻辑运算符
定义:在SQL中,逻辑运算符指的是对多个条件连接的运算,常见的关系有并且、或者、非这三种
4.通配符
通配符可用于替代字符串中的任何其他字符。
在 SQL 中,通配符与 SQL LIKE 操作符一起使用。
SQL 通配符用于搜索表中的数据。
在 SQL 中,可使用以下通配符:
通配符 描述
% 替代 0 个或多个字符
_ 替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist]
或
[!charlist] 不在字符列中的任何单一字符
演示数据库
下面是选自 “Websites” 表的数据:
id | name | url | alexa | country |
1 | Google | 1 | USA | |
2 | 百度 | 666 | CN | |
3 | 淘宝 | 13 | CN | |
4 | 微博 | 20 | CN | |
5 | Facebook | 3 | USA | |
6 | stackoverflow | 0 | IND |
实例
使用 SQL % 通配符
下面的 SQL 语句选取 url 以字母 “https” 开始的所有网站:
SELECT * FROM Websites
WHERE url LIKE 'https%';
实例
下面的 SQL 语句选取 url 包含模式 “oo” 的所有网站:
SELECT * FROM Websites
WHERE url LIKE '%oo%';
实例
使用 SQL _ 通配符
下面的 SQL 语句选取 name 以一个任意字符开始,然后是 “oogle” 的所有客户:
SELECT * FROM Websites
WHERE name LIKE '_oogle';
实例
下面的 SQL 语句选取 name 以 “G” 开始,然后是一个任意字符,然后是 “o”,然后是一个任意字符,然后是 “le” 的所有网站:
SELECT * FROM Websites
WHERE name LIKE 'G_o_le';
实例
使用 SQL [charlist] 通配符
MySQL 中使用 REGEXP 或 NOT REGEXP 运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式。
下面的 SQL 语句选取 name 以 “G”、“F” 或 “s” 开始的所有网站:
SELECT * FROM Websites
WHERE name REGEXP '^[GFs]';
实例
下面的 SQL 语句选取 name 以 A 到 H 字母开头的网站:
SELECT * FROM Websites
WHERE name REGEXP '^[A-H]';
实例
下面的 SQL 语句选取 name 不以 A 到 H 字母开头的网站:
SELECT * FROM Websites
WHERE name REGEXP '^[^A-H]';
总结
以上就是今天要讲的内容,本文仅仅简单介绍了设置更加复杂的筛选条件
的使用。好了今天的内容就到这里了,下一篇再见。