目前演示的几个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等运算符实现更加复杂的逻辑,甚至能够使用模糊查询、子查询等实现高级的数据过滤。

带WHERE子句的UPDATE语句的更多相关文章

  1. 带WHERE子句的DELETE语句

    由于前面我们执行“DELETE FROM T_Person”语句将数据表T_Person中的数据全部 删除了,为了演示带WHERE 子句的DELETE 语句,我们需要重新插入一些数据到T_Person ...

  2. 利用带关联子查询Update语句更新数据

    Update是T-sql中再简单不过的语句了,update table set column=expression  [where condition],我们都会用到.但update的用法不仅于此,真 ...

  3. SQL语句-UPDATE语句

    Update语句 update语句用于修改表中已经存在的数据 单表修改语句结构 多表修改语句结构 update语句的常规用法 update students set sname='abcd',gend ...

  4. SQL基础语法—update语句

    1 update语句介绍 update语句用来修改表中的数据内容 Single-table syntax: UPDATE [LOW_PRIORITY] [IGNORE] table_reference ...

  5. 一条update语句到底加了多少锁?带你深入理解底层原理

    迎面走来了你的面试官,身穿格子衫,挺着啤酒肚,发际线严重后移的中年男子. 手拿泡着枸杞的保温杯,胳膊夹着MacBook,MacBook上还贴着公司标语:"我爱加班". 面试开始,直 ...

  6. PL/SQL Challenge 每日一题:2014-3-14 11gR2中带RELIES_ON子句的RESULT_CACHE函数

    PL/SQL Challenge 每日一题:2014-3-14 11gR2中带RELIES_ON子句的RESULT_CACHE函数 最先答对且答案未经编辑的puber将获得纪念章一枚(答案不可编辑但可 ...

  7. Select For update语句浅析 (转)

    Select … for update语句是我们经常使用手工加锁语句.通常情况下,select语句是不会对数据加锁,妨碍影响其他的DML和DDL操作.同时,在多版本一致读机制的支持下,select语句 ...

  8. 在MySQL中阻止UPDATE语句没有添加WHERE条件的发生

    如果在生产环境中使用UPDATE语句更新表数据,此时如果忘记携带本应该添加的WHERE条件,那么..Oh,no…后果可能不堪设想.那么有没有什么办法可以阻止这样的事情发生,又不使用任何的审核工具呢.. ...

  9. SQLite Update 语句(http://www.w3cschool.cc/sqlite/sqlite-update.html)

    SQLite Update 语句 SQLite 的 UPDATE 查询用于修改表中已有的记录.可以使用带有 WHERE 子句的 UPDATE 查询来更新选定行,否则所有的行都会被更新. 语法 带有 W ...

随机推荐

  1. 雪碧图background-position的rem用法

    background的雪碧图配合rem就正常写即可,要加上background-size,大小为sprites的原图尺寸,宽高为一帧的尺寸.例如: .player{ width: 2.32rem; / ...

  2. JS格式化时间(支持小程序,兼容IOS)

    })-(\d{})-(\d{})T(\d{}):(\d{}):(\d{})/ /** * @function format time * @param val, format * @return {s ...

  3. Dilworth定理证明

    命题:偏序集能划分成的最少的全序集的个数与最大反链的元素个数相等. (离散数学结构第六版课本P245:把一个偏序集划分成具有全序的子集所需要的最少子集个数与元素在偏序下都是不可比的最大集合的基数之间有 ...

  4. Different Integers 牛客多校第一场只会签到题

    Given a sequence of integers a1, a2, ..., an and q pairs of integers (l1, r1), (l2, r2), ..., (lq, r ...

  5. git 的证书重新设置,以及如何让git 记住提交的用户名和密码

    1.git 的证书的重新设置的命令是: git config --system --unset credential.helper 2.保存git的用户名和密码注意这里是全局保存 git config ...

  6. 几种list集合的区别

    SDK提供了有序集合接口java.util.List的几种实现,其中三种最为人们熟知的是Vector.ArrayList和LinkedList.有关这些List类的性能差别是一个经常被问及的问题.在这 ...

  7. hadoop更换硬盘

    hadoop服务器更换硬盘操作步骤(datanode hadoop目录${HADOOP_HOME}/bin    日志位置:/var/log/hadoop)1.登陆服务器,切换到mapred用户,执行 ...

  8. css属性选择器应用

    代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3. ...

  9. linux crontab执行shell脚本中包含相对路径的问题

    实例一 test.sh文件 echo `date`>test.log 配置crontab 设置 */1 * * * * sh /data/test.sh 在/data/目录下,未找到test.l ...

  10. linux下解压,压缩命令大全---方便新手查看

    本文最后讲述如何在打包时排除某些文件 .tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) --- ...