LIKE, BETWEEN, IN和NOT都是SQL语句中用来匹配条件的关键字,它们能够帮助用户更方便地查找出需要的数据。
下面用实例展示如何使用这几个关键字来查询数据。
数据库表:
Player表:Id(PK), Name, Number, Age
LIKE
LIKE一般和通配符一起使用。通配符有'%'和'_'两种,'%'用于匹配任意数量的字符,'_'用于匹配一个单一字符。
1. 查询Name以Michael开头的所有Player信息
SELECT * FROM Player WHERE Name LIKE 'Michael%';
2. 查询Name第一个球衣号码有两位,第二位是3的所有Player信息
SELECT * FROM Player WHERE Number LIKE '_3';
BETWEEN
BETWEEN关键字相当于使用<=和>=来查询某一范围内的数据。
查询年龄在25至30之间的所有Player信息
SELECT * FROM Player WHERE Age BETWEEN 25 AND 30;
等同于
SELECT * FROM Player WHERE Age >=25 AND Age<=30;
IN
IN后面跟一个集合可以代替多个OR相连的SQL语句。
查询Name为'Michael Jordan', 'Kobe Bryant', 'Allen Iverson'的Player信息
SELECT * FROM Player WHERE Name IN ('Michael Jordan','Kobe Bryant','Allen Iverson');
等同于
SELECT * FROM Player WHERE Name = 'Michael Jordan' OR Name = 'Kobe Bryant' OR Name = 'Allen Iverson';
NOT
NOT可以和前面的所有关键字一同使用表示否定。NOT一定要紧接在WHERE之后(NOT IN是个例外),当NOT和AND或OR一起使用时,一定要紧接在AND或OR之后。
1. 查询Name不是以'James'结尾的所有Player信息
SELECT * FROM Player WHERE NOT Name LIKE '%James';
2. 查询Age小于25和大于30的所有Player信息
SELECT * FROM Player WHERE NOT Age BETWEEN 25 AND 30;
3. 查询Name不是'Michael Jordan', 'Kobe Bryant', 'Allen Iverson'的Player信息
SELECT * FROM Player WHERE NOT Name IN ('Michael Jordan','Kobe Bryant','Allen Iverson');
or
SELECT * FROM Player WHERE Name NOT IN ('Michael Jordan','Kobe Bryant','Allen Iverson');