从以上执行结果可看到,查询出的结果集中只存在 sid 和 score 两个字段,证明指定字段查询成功。 条件查询
MySQL 支持通过在句中加入条件选项查询指定数据,如某个年龄段的学生、分数在某个区间的学生等。接下来详细介绍条件查询语句的使用方法。
Ø关系运算符
在 SELECT 语句中可以使用 WHERE 子句指定查询条件,从而查询出筛选后的数据,语法格式如下所示。
语法格式中,“字段名 1,字段名 2,…”表示需要查询的字段名称,条件表达式表示过滤筛选数据的条件。 MySQL 中提供了一系列关系运算符,这些关系运算符可以用在条件表达式中过滤数据。常见的关系运算符如表所示。
表中列出了常见的关系运算符,其中“!=”和“<>”都表示不等于,但由于有些关系型数据库不支持“!=”运算符,因此在 MySQL 中建议使用“<>”运算符。下面将通过具体实例演示关系运算符的基本使用方法。
从以上执行结果可看出,表 student 中男性学生为 6 名。在例中,因为 gender 字段为字符串类型,为了保持输出一致,需在查询条件的字符串上使用单引号。 Ø多条件查询
在查询数据时常常会遇到需要查询满足多个条件的数据,接下来将详细介绍多条件查询语句中的关键字和使用方法。 1.AND 关键字
在 MySQL 中使用 SELECT 查询满足多种条件的数据时,可以用 AND 关键字连接查询条件,具体语法格式如下所示。
上述语法格式中, WHERE 子句后可以写多个条件表达式,表达式之间用 AND 连接。下面通过具体实例演示 AND 关键字的使用方法。
题目中存在 3 个条件, 分别为年龄大于 20、 年龄小于 23 和学生性别为女性, 所以需要在 WHERE子句中使用两个 AND 关键字进行条件连接,具体 SQL 语句如下所示。
以上查询结果显示, student 表中年龄在 20~23 岁且是女学生的有 4 位。 2.OR 关键字
AND 关键字表示“与”( &),即同时满足多个条件。 MySQL 还提供了 OR 关键字,表示“或”( ||),也可以连接多个查询条件,但是过滤时只要满足其中一个查询条件即可,具体语法格式如下所示。
下面将通过具体实例介绍 OR 关键字的使用方法。
从以上执行结果可看到,因为在 student 表中不存在年龄大于 25 岁的学生,所以只查出了两条年龄小于 20 岁的学生信息。 3.IN 和 NOT IN 关键字
MySQL 提供了 IN 关键字和 NOT IN 关键字,用于判断某个字段是否在指定集合中,如果不满足条件,数据则会被过滤掉,具体语法格式如下所示。
语法格式中, WHERE 子句中的字段名表示要过滤的字段。 [NOT]为可选项,表示不在集合范围中。下面通过具体实例来演示 IN 关键字和 NOT IN 关键字的用法。
在 student 表中查询学号为 1001、 1002 和 1003 的学生信息。
从以上执行结果可看到,使用 NOT IN 关键字查出了学号不为 1001、 1002 和 1003 的学生信息。 4.IS NULL 和 IS NOT NULL 关键字
在数据表中可能存在空值 NULL,空值 NULL 与 0 不同,也不同于空字符串。 IS NULL 关键字表示是空值, IS NOT NULL 关键字表示不为空值。因与 IN、 NOT IN 使用方式类似,所以此处不再通过实例演示其用法,读者可以自行操作。 5.BETWEEN AND 和 NOT BETWEEN AND 关键字
BETWEEN AND 关键字用于判断某个字段的值是否在指定范围内,若不在指定范围内,则会被过滤掉。 NOT BETWEEN AND 则表示在指定范围内的数据会被过滤掉。具体语法格式如下所示。
下面通过具体实例来演示 BETWEEN AND 关键字的用法。
6.LIKE 关键字
在实际的应用场景中,查询数据往往需要使用模糊查询,例如,查询名字中带有某个字母的学生。 MySQL 提供了 LIKE 关键字来对数据进行模糊查询,其语法格式如下所示。
语法格式中, NOT 为可选项,使用 NOT 时表示查询与字符串不匹配的值。“匹配字符串”用来指定要匹配的字符串,它可以是一个普通字符串,也可以是包含百分号( %)和下画线( _)的通配符字符串,其中百分号表示任意 0~ n 个字符,下画线表示任意一个字符。
接下来通过具体实例演示 LIKE 关键字的使用方法。