呵呵,园里的兄弟我又来写简单的文章了,希望大家不吝赐教。这次要说的是sql里面的update语句。说到这里,肯定会有很多兄弟不满意了,不就是update语句吗?谁不会写啊,update table set column=expression  [where search_condition 啊。

但真的update语句就仅仅这样吗?它的精髓它的原理是什么呢?我们通过例子来说明:
假设有一张成绩表,只有两个字段,姓名和成绩。怎样用一个sql语句查询出某个学生的姓名,成绩以及在表中的排名?
呵呵,这个问题是上次我发过的,详情见http://www.cnblogs.com/jimmyhsu/archive/2005/03/03/111884.aspx

结果可以去那里看。现在改改问题,假设这张成绩表有三个字段,姓名、成绩和排名,现在只有姓名和成绩有值,怎样将他们的排名更新上去呢?

有朋友可能会提出类似解决方案:先还是用查询语句查询出来,然后通过游标更新排名。
有没有更好的解决方案呢?当然是有的,答案就是用update语句。
 
update 成绩表 set 排名=(select count(*)+1 from 成绩表 where a.成绩<成绩)
from 成绩表 a

可以看到,只用一个语句就实现了。同时我们也可以发现它跟我们平常写的update语句不同,多了from。其实update语句的原理和select语句很类似,完整的update语句应该是update table set column=expression from table [where search_condition] ,可见后面的一截完全就是个查询语句。当update的table和查询的table(也就是from后面的table)完全一致的时候则可以省略,写成我们最常见的update table set column=expression [where search_condition] 。

上面仅仅是举了个例子来说明update的用法,真正在开发的时候,灵活恰当地使用update可以达到事半功倍的效果哦。

转载于:https://www.cnblogs.com/jimmyhsu/archive/2005/05/24/161387.html

也许是被忽略的update语句相关推荐

  1. 动手为王:由一条UPDATE语句引发的一波三折深入实践(含PPT)

    关注我们获得更多精彩 编辑说明:这篇文章源自我几年前的一个演讲,当时我在『甲骨文技术大会』分享了一个关于SQL的主题,其中的一个案例推演了几个步骤,后来本文作者『刘晨』做了验证.实验,并且分享在他的博 ...

  2. ORACLE 多表关联 UPDATE 语句

    为了方便起见,建立了以下简单模型,和构造了部分测试数据: 在某个业务受理子系统BSS中, SQL 代码 --客户资料表 create table customers ( customer_id num ...

  3. 数据库中Select For update语句的解析

    ----------- Oracle -----------------– Oracle 的for update行锁 键字: oracle 的for update行锁 SELECT-FOR UPDAT ...

  4. java sql update用法_使用if else条件将SQL UPDATE语句转换为php(codeigniter)

    condition 3: a. LAMA 和 ESTIMASI 均为空 . b. LAMA 为空 c. ESTIMASI 为空 如果要根据 LAMA 和 ESTIMASI 的值更新表中的所有行,可以使 ...

  5. 多表关联的update语句

    MSSql的多表关联的update语句 例如A表 存在一下字段: AID A1 A2 A3 A4 B表中存在字段: BID B1 B2 B3 B4 如果实现用B表的所有字段更新A表中相应的字段,在MS ...

  6. oracle动态update语句

    1.今天公司项目提交更新表单出错,这个bug交给了我. 2.OK,debugger一下,发现提交的时候后台打印出错,提示大概就是这样  SQLException '17004'  其实很简单,这种错误 ...

  7. SQL Server UPDATE语句用于更新数据

    SQL Server UPDATE语句用于更新数据,下面就为您详细介绍SQL Server UPDATE语句语法方面的知识,希望可以让您对SQL Server UPDATE语句有更多的了解. 现实应用 ...

  8. Access update语句 提示 操作必须使用一个可更新的查询Access update语句 提示 操作必须使用一个可更新的查询

    <script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.cr ...

  9. 数据库中update怎么用事例_〔数据库〕— UPDATE语句的使用

    [TOC] 1.总体原则 1)更新的时候一定要加where条件,否则必然引起该字段的所有记录更新 2)跨表更新时,set和where时,尽量减少扫描次数,从而提高优化 为了方便起见,建立了以下简单模型 ...

最新文章

  1. mongodb-创建索引
  2. PHP之高性能I/O框架:Libevent(二)
  3. POJ 2152 Fire(树形DP)
  4. Visual C++——黄维通《 Visual C++面向对象与可视化程序设计》——例题9-3
  5. 密度聚类dbscan_DBSCAN —基于密度的聚类方法的演练
  6. 如果你扯了团队后腿,你应该内疚
  7. Centos7 Docker 目录挂载_入门试炼06
  8. realme Pad通过认证:搭载7100mAh大容量电池
  9. 功能丰富的Perl:用Perl读写Excel文件
  10. 安装nuxt_一天上手Nuxt基于vue服务端渲染
  11. Python代码实现验证码识别
  12. 微信编辑器有哪些呢?
  13. CDA数据分析师 - 备考指南
  14. 解决Github不能下载,下载速度慢的小妙招
  15. Win11热键冲突怎么解决?
  16. 最长的指定瑕疵度的元音字串 —— 最优解法(C++实现)
  17. NO.35——qq音乐全站分布式爬虫(一)
  18. Dubbo源码分析(三) -- Dubbo的服务发现源码深入解析4万字长文
  19. element-ui弹出层置于遮罩层下面问题
  20. 利用Cookie显示上次登录时间

热门文章

  1. poj1548 Robots
  2. linux搭建--ubuntu使用qemu-kvm,libvirt搭建虚拟机,并搭建libvmi来虚拟机自省(三)
  3. vue filter对象_学习vue源码(3) 手写Vue.directive、Vue.filter、Vue.component方法
  4. python批量分析表格_示例python 批量操作excel统计销售榜品牌及销售额
  5. sap系统操作流程财务软件_金蝶财务软件的操作流程汇总
  6. PCB设计用什么软件好?
  7. Mac-连接Windows远程桌面软件
  8. Spring Boot实践--CommandLineRunner接口
  9. mysql 主主+ Keepalived 高可用
  10. 团队-及格成绩查询系统-设计文档