在update语句中使用where子句的目的是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在update语句中使用where子句的目的是啥?相关的知识,希望对你有一定的参考价值。

为了明确你更新是哪条数据,就像select语句一样不是也可以where 里的条件来查询自己想要的数据么。在update语句中也是一样的,不加的话就是全部数据都更新了。来自:求助得到的回答 参考技术A 目的是确定需要更新的数据啊,不加where的话代表全表更新 参考技术B where的目的就是告诉数据库,什么样的数据需要修改。满足where条件的数据被修改。来自:求助得到的回答 参考技术B 只更新符合where条件的记录,其他不变。 参考技术C where后面的语句是条件 说明只更新根据where条件过滤的数据

带WHERE子句的UPDATE语句

目前演示的几个UPDATE语句都是一次性更新所有行的数据,这无法满足只更新符合特定条件的行的需求,比如“将Tom 的年龄修改为12 岁”。要实现这样的功能只要使用WHERE 子句就可以了,在WHERE 语句中我们设定适当的过滤条件,这样UPDATE 语句只会更新符合WHERE子句中过滤条件的行,而其他行的数据则不被修改。

执行下边的UPDATE语句:


UPDATE T_Person SET FAge = 12 WHERE FNAME="Tom"

执行完此SQL语句后执行SELECT * FROM T_Person来查看表中的数据的变化:

可以看到只有第一行中的FAGE 被更新了。WHERE子句“WHERE FNAME="Tom"”表示我们只更新FNAME字段等于"Tom"的行。由于FNAME 字段等于"Tom"的只有一行,所以仅有一行记录被更新,但是如果有多个符合条件的行的话将会有多行被更新,比如下面UPDATE 语句将所有年龄为25 的人员的备注信息修改为“BlaBla”:


UPDATE T_Person SET FRemark = "BlaBla" WHERE FAge =25

执行完此SQL语句后执行SELECT * FROM T_Person来查看表中的数据的变化。

目前为止我们演示的都是非常简单的WHERE 子句,我们可以使用复杂的WHERE 语句来满足更加复杂的需求,比如下面的UPDATE 语句就用来将FNAME 等于’Jim’或者’LXF’的行的FAge字段更新为22:


UPDATE T_Person SET FAge = 22 WHERE FName ="jim" OR FName="LXF"

执行完此SQL语句后执行SELECT * FROM T_Person来查看表中的数据的变化。

这里我们使用OR逻辑运算符来组合两个条件来实现复杂的过滤逻辑,我们还可以使用OR、NOT等运算符实现更加复杂的逻辑,甚至能够使用模糊查询、子查询等实现高级的数据过滤。

以上是关于在update语句中使用where子句的目的是啥?的主要内容,如果未能解决你的问题,请参考以下文章

带WHERE子句的UPDATE语句

SQL中使用UPDATE更新数据时一定要记得WHERE子句

在 Oracle SQL 中,除了外连接之外,where 子句中的 (+) 运算符的目的是啥?

如何在 SQL UPDATE 语句 WHERE 子句中读取脏值

PostgreSQL WHERE 子句

PostgreSQL WHERE 子句