• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

Postgresql新手上路之更新数据

发布: 2007-7-04 17:55 | 作者: admin | 来源:  网友评论 | 查看: 9次 | 进入软件测试论坛讨论

领测软件测试网

   修改已经存储在数据库中的数据的行为叫做更新。你可以更新 独立的行,也可以更新表中所有的行,还可以更新其中的一部分行。 我们可以独立地更新每个字段,而其他的字段则不受影响。

    要执行一次更新,你需要三种信息:

 

   表的名字和要更新的字段名,

   字段的新数值,

   要更新的是哪行。


    我们在 Chapter 5 里说过,SQL 通常并不为数据行提供唯一标识。 因此我们无法直接声明需要更新哪一行。但是, 我们可以通过声明一个要更新的行必须满足的条件。 只有在表里面存在主键的时候(不管你叫它什么),我们才能可靠地指定一个独立的行, 方法是选取一个匹配主键的行。图形化的数据库访问工具依赖这个东西来让我们可以独立地更新某些行。

    比如,这条命令更新价格为5的所有产品的的价格为10:

UPDATE products SET price = 10 WHERE price = 5;

    这样做可能导致零行,一行或者更多数据行被更新。 如果我们试图做一个不匹配任何数据行的更新,那也不算错误。

    让我们仔细看看这个命令。首先是关键字 UPDATE, 然后跟着表名字。和平常一样,表名字也可以是用模式修饰的, 否则就会从路径中把它找出来。然后是关键字 SET, 后面跟着字段名,一个等号以及新的字段数值。新的字段数值可以是任意标量表达式, 而不仅仅是常量。比如,如果你想把所有产品的价格提高 10%,你可以用:

UPDATE products SET price = price * 1.10;

    如你所见,用于新值的表达式也可以引用行中现有的数值。我们还忽略了 WHERE 子句。如果我们忽略了这个子句, 那么就意味着表中的所有行都要更新。如果出现了WHERE 子句, 那么只有匹配它后面的条件的行被更新。请注意在 SET 子句中的等号是一个赋值, 而在 WHERE 子句中的等号是比较,不过这样并不会导致任何歧义。 当然条件 WHERE 不一定非得是相等测试。 许多其他操作符也都可以使用(参阅 Chapter 9)。 但是表达式必须得出一个布尔结果。

    你还可以在一个 UPDATE 命令中更新更多的字段, 方法是在 SET 子句中列出更多赋值。比如:

UPDATE mytable SET a = 5, b = 3, c = 1 WHERE a > 0;

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网