SQL LIKE IN用法介绍
1. 引言
在进行数据库操作时,我们经常需要进行模糊查询或者查询多个条件。SQL提供了LIKE和IN这两个关键词来实现这些功能。本文将详细介绍SQL中的LIKE和IN的用法,并给出一些示例代码和运行结果。
2. LIKE关键词
2.1 LIKE的基本用法
LIKE是SQL中的一个关键词,用于模糊匹配。通常情况下,我们需要用到LIKE来查询包含某个特定字符串的数据。使用LIKE时,需要注意以下几点:
%
用于表示零个或多个字符的通配符;_
用于表示一个任意字符的通配符;[]
用于表示一个指定范围内的字符的通配符。
以下是一个简单的示例,假设我们有一个表students,其中有一个字段name,我们要查询名字以”张”开头的学生。
SELECT * FROM students WHERE name LIKE '张%';
运行结果:
id | name | age |
---|---|---|
1 | 张三 | 18 |
2 | 张丽 | 20 |
3 | 张无忌 | 22 |
2.2 LIKE的高级用法
除了基本用法之外,LIKE还可以和其他通配符一起使用,实现更加灵活的查询。以下是一些常用的LIKE高级用法:
2.2.1 使用%通配符
%
通配符用于表示零个或多个字符,可以出现在搜索模式的任何位置。以下是一些使用%通配符的示例:
- 查询名字以”丽”结尾的学生:
SELECT * FROM students WHERE name LIKE '%丽';
运行结果:
id | name | age |
---|---|---|
2 | 张丽 | 20 |
4 | 李丽 | 19 |
- 查询包含”无”字符的学生名字:
SELECT * FROM students WHERE name LIKE '%无%';
运行结果:
id | name | age |
---|---|---|
3 | 张无忌 | 22 |
5 | 无名 | 21 |
- 查询名字中第二个字是”山”的学生:
SELECT * FROM students WHERE name LIKE '_山%';
运行结果:
id | name | age |
---|---|---|
6 | 杨山杰 | 23 |
2.2.2 使用_通配符
_
通配符用于表示任意单个字符,可以出现在搜索模式的任何位置。以下是一个使用_通配符的示例:
- 查询名字为两个字,且第一个字是”张”的学生:
SELECT * FROM students WHERE name LIKE '张_';
运行结果:
id | name | age |
---|---|---|
1 | 张三 | 18 |
2 | 张丽 | 20 |
2.2.3 使用[]通配符
[]
通配符用于表示一个指定范围内的字符,可以出现在搜索模式的任何位置。以下是一个使用[]通配符的示例:
- 查询名字以”李”开头,并且第二个字是”山”或者”丽”的学生:
SELECT * FROM students WHERE name LIKE '李[山丽]%';
运行结果:
id | name | age |
---|---|---|
4 | 李丽 | 19 |
6 | 杨山杰 | 23 |
3. IN关键词
3.1 IN的基本用法
IN是SQL中的另一个关键词,用于判断某个值是否包含在一个集合中。使用IN时,需要注意以下几点:
- IN后面的集合可以是一个具体的值列表,也可以是一个子查询;
- IN可以与其他逻辑运算符(例如AND、OR)一起使用。
以下是一个简单的示例,假设我们有一个表students,其中有一个字段age,我们要查询年龄为18、20或者22的学生。
SELECT * FROM students WHERE age IN (18, 20, 22);
运行结果:
id | name | age |
---|---|---|
1 | 张三 | 18 |
2 | 张丽 | 20 |
3 | 张无忌 | 22 |
3.2 IN的高级用法
除了基本用法之外,IN还可以与其他逻辑运算符(例如AND、OR)一起使用,实现更加灵活的查询。以下是一个使用IN和AND的示例:
- 查询年龄为18或者20,并且名字以”张”开头的学生:
SELECT * FROM students WHERE age IN (18, 20) AND name LIKE '张%';
运行结果:
id | name | age |
---|---|---|
1 | 张三 | 18 |
2 | 张丽 | 20 |
4. 总结
本文介绍了SQL中LIKE和IN的用法,并给出了一些示例代码和运行结果。通过使用LIKE,我们可以进行模糊查询,根据特定的字符串来查找匹配的数据。而使用IN,我们可以判断某个值是否包含在一个集合中,从而进行多条件查询。