您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

WHERE 条件查询

前面介绍了如何对表数、更新、,本小节介绍如何在、更新、操作 WHERE 条件约束,使这些语句的操作更加准确,满足业务需求。WHERE 条件的操作符类型有如下:

1.单条件

以 teacher 表为例,年龄大于 18 的教师信息:

SELECT * FROM teacher WHERE age > ;

执行结果如下图:

再比如使用 LIKE 模糊身份证号以 020X 结尾的教师信息:

SELECT * FROM teacher WHERE id_number LIKE '%020X';

执行结果如下图:

2.AND 多条件

以 teacher 表为例,年龄大于 18 和 教师姓氏 的教师信息:

SELECT * FROM teacher WHERE age >  AND name LIKE  '王%';

执行结果如下图:

Tips:这里还想加更多的条件可以在后面继续跟 AND,LIKE 后面表达式中 % 表示指代任意。

3.OR 多条件

以 teacher 表为例,年龄大于 25 或 教师姓氏 的教师信息:

SELECT * FROM teacher WHERE age >  OR name LIKE  '王%';

执行结果如下图:

Tips:这里还想加更多的条件可以在后面继续跟 OR,若 ANDOR 混合使用则需要把同一组表达式用 () 包起来,如 : (age > 25 AND name LIKE '王%') OR (age < 20 AND name LIKE '刘%')

4.BETWEEN AND 更新数据

以 teacher 表为例,将 age 在 20 和 30 之教师身份证设置为:

UPDATE teacher SET id_number = '无' WHERE age BETWEEN  AND ;

Tips:注意 BETWEEN AND 包含两端的值。

为了演示方便,我们先给 teacher 表字段 email:

ALTER TABLE `item_name`.`teacher` ADD COLUMN `email` varchar() NULL AFTER `id_number`;

执行结果如下图:

清空表数据:

TRUNCATE TABLE teacher;

然后往 teacher 表插入几条测试数据:

INSERT INTO teacher(name,age,id_number,email)VALUES('姓名甲',,'42011720200604077X',NULL),('姓名乙',,'42011720200604099X','123@qq.com'),('姓名丙',,'42011720200604020X',NULL),('姓名丁',,'42011720200604022X','345@qq.com'),('姓名戊',,'42011720200603X',NULL)

然后 email 为 NULL 的教师信息结果集:

SELECT * FROM teacher WHERE email IS NULL;

执行结果如下图:

6.小结

本小节介绍了如果在、更新语句后面 WHERE 条件约束,需要注意的是当使用 ><、这样的操作符和空值比较的时候,NULL值与任何其它值的比较(即使是NULL)永远不会为 TRUE,例如要 name 为 NULL 的结果集要写成 name IS NULL,而不能使用 name=NULL


联系我
置顶