• openGauss学习笔记-69 openGauss 数据库管理-创建和管理普通表-更新表中数据


    openGauss学习笔记-69 openGauss 数据库管理-创建和管理普通表-更新表中数据

    修改已经存储在数据库中数据的行为叫做更新。用户可以更新单独一行、所有行或者指定的部分行。还可以独立更新某个字段,而其他字段则不受影响。

    使用UPDATE命令更新现有行,需要提供以下三种信息:

    • 表的名称和要更新的字段名
    • 字段的新值
    • 要更新哪些行

    SQL通常不会为数据行提供唯一标识,因此无法直接声明需要更新哪一行。但是可以通过声明一个被更新的行必须满足的条件来更新数据行。只有在表里存在主键的时候,才可以通过主键指定一个独立的行。

    建立表和插入数据的步骤请参考创建表向表中插入数据

    需要将表customer_t1中c_customer_sk为9527的地域重新定义为9876:

    openGauss=# UPDATE customer_t1 SET c_customer_sk = 9876 WHERE c_customer_sk = 9527;
    
    • 1

    这里的表名称也可以使用模式名修饰,否则会从默认的模式路径找到这个表。SET后面紧跟字段和新的字段值。新的字段值不仅可以是常量,也可以是变量表达式

    比如,把所有c_customer_sk的值增加100:

    openGauss=# UPDATE customer_t1 SET c_customer_sk = c_customer_sk + 100;
    
    • 1

    在这里省略了WHERE子句,表示表中的所有行都要被更新。如果出现了WHERE子句,那么只有匹配其条件的行才会被更新。

    在SET子句中的等号是一个赋值,而在WHERE子句中的等号是比较。WHERE条件不一定是相等测试,许多其他的操作符也可以使用。

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

    openGauss=# UPDATE customer_t1 SET  c_customer_id = 'Admin', c_first_name = 'Local' WHERE c_customer_sk = 4421; 
    
    • 1

    批量更新或删除数据后,会在数据文件中产生大量的删除标记,查询过程中标记删除的数据也是需要扫描的。故多次批量更新/删除后,标记删除的数据量过大会严重影响查询的性能。建议在批量更新/删除业务会反复执行的场景下,定期执行VACUUM FULL以保持查询性能。

    👍 点赞,你的认可是我创作的动力!

    ⭐️ 收藏,你的青睐是我努力的方向!

    ✏️ 评论,你的意见是我进步的财富!

    图片

  • 相关阅读:
    HTML和CSS如何记忆
    10 个 Python 自动探索性数据分析神库!
    8、动态SQL
    MySQL基本操作和基于MySQL基本操作的综合实例项目
    Vue框架--Vue中的样式绑定
    如何备份 Docker 卷
    阿里云99元服务器2核2G3M带宽_4年396元_新老用户同享
    【UCIe】UCIe 相关术语名词缩写释义
    linux继续循环案例测试ping网络,目录下的文件权限循环输出
    Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4
  • 原文地址:https://blog.csdn.net/shuchaoyang/article/details/132891747