目前演示的几个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. DDX_Control、SubclassWindow和SubclassDlgItem

    文章参考地址:http://blog.sina.com.cn/s/blog_86fe5b440101au88.html:http://www.cnblogs.com/riskyer/p/3424278 ...

  2. 关于label标签的作用

    label标签的定义和用法: <label> 标签为 input 元素定义标注(标记). label 元素不会向用户呈现任何特殊效果.不过,它为鼠标用户改进了可用性.如果您在 label ...

  3. android OTA升级包制作

    0.签名 java -Xmx2048m -jar out/host/linux-x86/framework/signapk.jar -w build/target/product/security/t ...

  4. ng父组件调用子组件的方法

    https://www.pocketdigi.com/20170204/1556.html 组件之间方法的调用统一用中间人调用.数据传递直接input和output即可

  5. node读取文件夹名

    const fs = require('fs'); const join = require('path').join; /** * * @param startPath 起始目录文件夹路径 * @r ...

  6. NSMutableArray遍历删除注意事项

      for (int i = 0; i < [array count]; i++) { [array removeObjectAtIndex:i]; } 上面的遍历由于在remove操作之后ar ...

  7. javascript继承有5种实现方式

    1.对象冒充 function Parent(username){ this.username = username; this.hello = function(){ alert(this.user ...

  8. Hadoop之计数器与自定义计数器及Combiner的使用

    1,计数器: 显示的计数器中分为四个组,分别为:File Output Format Counters.FileSystemCounters.File Input Format Counters和Ma ...

  9. Exceptioninthread"main"java.lang.ClassNotFoundsException的问题

    报错如下: Exceptioninthread"main"java.lang.ClassNotFoundsException 大致可以判断出是无法定位到main方法,应该是用mav ...

  10. 解决mysql报错:- Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ'

    mysql执行报错: - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated c ...