条件查询
1.关系运算符的查询
在SELECT语句中,最常见的是使用WHERE子句指定查询条件对数据进行过滤,其语法格式如下:
SELECT 字段名1,字段名2……
FROM 表名
WHERE 条件表达式
例如:(1)查询在student表中id为4的学生姓名,SQL语句如下所示:
SELECT id,name FROM student WHERE id=4;
结果如下所示:
(2)查询student表中grade大于80的学生姓名,执行结果如下所示:
2.带IN关键字的查询
IN关键字用于判断某个字段的值是否在指定集合中,如果字段的值在集合中,则满足条件,该字段所在的记录将被查询出来。语法格式如下所示:
SELECT *字段名1,字段名2……
FROM 表名
WHERE 字段名【NOT】IN (元素1,元素2……)
在上面的语法格式中,“元素1、元素2…”表示集合中的元素,即指定的条件范围。NOT是可选参数,使用NOT表示查询不在IN关键字指定集合范围中的记录。
例如:(1)查询student表中id值为1、2、3的记录,SQL语句如下所示:
SELECT id,grade,name,gender FROM student WHERE id IN(1,2,3);
(2) 查询student表中id值不为1、2、3的记录,如图所示:
3.带BETWEEN AND 关键字的查询
BETWEEN AND用于判断某个字段的值是否在指定的范围之内,如果字段的值在指定范围内,则满足条件,该字段所在的记录将被查询出来,反之则不会被查询出来。语法格式如下所示:
SELECT *{字段名1,字段名2……}
FROM 表名
WHERE 条件表达式【NOT】 BTETWEEN 值1 AND 值2;
“值1”表示范围条件的起始值,“值2”表示范围条件的结束值。通常情况下“值1”小于“值2”,否则查询不到任何结果。
例如:(1)查询student表中id值在2和5之间的学生姓名,SQL语句如下所示:
SELECT id,name FROM student WHERE id BETWEEN 2 AND 5;
执行结果如下所示:
(2)查询student表中id值不在2和5之间的学生姓名,SQL语句如下所示:
SELECT id,name FROM student WHERE id NOT BETWEEN 2 AND 5;
执行结果如下所示:
4.空值查询
在数据表中,某些列的值可能为空值(NULL),空值不同于0,也不同于空字符串。在MySQL中,使用IS NULL关键字来判断字段的值是否为空值。
SELECT *字段名1,字段名2……
FROM 表名
WHERE 字段名 IS【NOT】NULL;
在上面的语法格式中,“NOT”是可选参数,使用NOT关键字用于判断字段不是空值。
例如:(1)查询student表中gender为空值的记录,SQL语句如下所示:
SELECT id,name,grade,gender FROM student WHERE gender IS NULL;
执行结果如下所示:
(2)查询student表中gender不为空值的记录,SQL语句如下所示:
SELECT id,name,grade,gender FROM student WHERE gender IS NOT NULL;
执行结果如下所示:
5.带DISTINCT 关键字的查询
执行结果如下所示:
如图所示:这次查询只返回了3条记录的gender值,分别为“男”、“女”和“NULL”,不再有重复值。
6.带LIKE 关键字的查询
LIKE关键字,用于对字符串进行模糊查询。
SELECT *|{字段名1,字段名2……}
FROM 表名
WHERE 字段名 【NOT】LIKE ‘匹配字符串’;
例如:(1)查找student表中name字段值以字符“s”开头的学生id,SQL语句如下所示:
SELECT id,name FROM student WHERE name LIKE "s%";
结果如图所示:
(2)查询student表中name字段值包含字符“y”的学生id,执行结果如下所示:
(3)查询student表中name字段值不包含字符“y”的学生id,执行结果如下所示:
7.带AND关键字的多条件查询
在MySQL中,提供了一个AND关键字,使用AND关键字可以连接两个或者多个查询条件,只有满足所有条件的记录才会被返回。语法格式如下所示:
SELECT *|{字段名1,字段名2,……}
FROM 表名
WHERE 条件表达式1 AND 条件表达式2 […… AND 条件表达式n];
例如:(1)查询student表中id字段值小于5,并且gender字段值为“女”的学生姓名,SQL语句如下所示:
SELECT id,name,gender FROM student WHERE id<5 AND gender='女';
执行结果如下所示:
(2)查询student表中id字段值在1、2、3、4之中,name字段值以字符串“ng”结束,并且grade字段值小于80的记录.
8.带OR关键字的多条件查询
OR关键字连接多个查询条件,只要记录满足任意一个条件就会被查询出来。
例如:(1)查询student表中id字段值小于3或者gender字段值为“女”的学生姓名,SQL语句及其执行结果如下所示:
(2)查询student表中满足条件name字段值以字符“h”开始,或者gender字段值为“女”,或者grade字段值为100的记录,SQL语句及其执行结果如下所示: