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

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

时间:2023-09-14 22:32:02浏览次数:41  
标签:customer SET 更新 sk 表中 69 openGauss WHERE

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;

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

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

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

在这里省略了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; 

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

标签:customer,SET,更新,sk,表中,69,openGauss,WHERE
From: https://blog.51cto.com/shuchaoyang/7474892

相关文章

  • vue3 elementplus 列表中添加排序功能,移动的时候修改背景色
    <el-tablesize="medium":border="true":data="branchTableData":row-style="changeColor":stripe=falsestyle="width:100%;">......
  • Navicat远程链接openGauss数据库
    文章目录前言一、环境准备二、openGauss服务设置步骤2.1切换至用户openGauss2.2添加放行IP2.3修改加密方式3.4重启openGauss服务3.5创建远程连接角色备注总结 前言最近这段时间再整理openGauss数据库相关内容,在这里总结记录并分享一些基础的操作以及遇......
  • SQL基础总结(三):从表中检索数据
    本系列blog源自前年写的SQL学习笔记,汇总一下发上来。---------------------------------------------------------------使用DISTINCT消除重复的行。虽然空值是未知的,但彼此绝不相等,但DISTINCT认为空值是彼此相等的。对于DISTINCT操作,DBMS执行内部排序去识别并消除重复的行。排序......
  • Codeforces 1868C/1869E Travel Plan 题解 | 巧妙思路与 dp
    题目链接:TravelPlan题目大意:\(n\)个点的完全二叉树,每个点可以分配\(1\simm\)的点权,定义路径价值为路径中最大的点权,求所有路径的价值和。对于任意长度(这里主要指包括几个节点)的路径\(t\),最大点权不超过\(k\)的方案数有\(k^t\)个,因此最大点权恰好为\(k\)的方案数有......
  • openGauss学习笔记-68 openGauss 数据库管理-创建和管理普通表-向表中插入数据
    openGauss学习笔记-68openGauss数据库管理-创建和管理普通表-向表中插入数据在创建一个表后,表中并没有数据,在使用这个表之前,需要向表中插入数据。本小节介绍如何使用INSERT命令插入一行或多行数据,及从指定表插入数据。如果有大量数据需要批量导入表中,请参考导入数据。68.1背景......
  • openGauss数据库配置远程连接
     txdb=#showpassword_encryption_type;password_encryption_type--------------------------2(1row)txdb=#altersystemsetpassword_encryption_type=1;ALTERSYSTEMSET 远程连接修改:[rapids@rapids01txdb]$viminstall/data/dn/pg_hba.confipv4增加host  a......
  • 锁表查询,转载 https://www.toutiao.com/article/7275538336188695099/?channel=&sourc
    Oracle死锁与慢查询总结 查看死锁SELECTs.sid"会话ID",s.lockwait"等待锁",s.event"等待的资源/事件",--最近等待或正在等待的资源/事件DECODE(lo.locked_mode,0,'尚未获得锁',1,NULL,2,'行共享锁',3,'行排它锁',4,'共享表锁',5,�......
  • openGauss学习笔记-67 openGauss 数据库管理-创建和管理普通表-创建表
    openGauss学习笔记-67openGauss数据库管理-创建和管理普通表-创建表67.1背景信息表是建立在数据库中的,在不同的数据库中可以存放相同的表。甚至可以通过使用模式在同一个数据库中创建相同名称的表。创建表前请先规划存储模型。67.2创建表执行如下命令创建表。openGauss=#......
  • 如何在图表中配置一个能够在移动端响应的DataZoom组件?
    要在图表中配置一个能够在移动端响应的DataZoom组件,可以通过以下几个步骤实现:引入必要的依赖:确保在你的项目中引入了相关的图表库以及移动端响应式插件。常用的图表库有ECharts、Highcharts、Chart.js等,而移动端响应式插件通常是这些库本身已经内置的。创建图表容器:在HTML中......
  • openGauss数据库tpcc测试
     建表语句CREATETABLESPACEexample2relativelocation'tablespace2';CREATETABLESPACEexample3relativelocation'tablespace3';createtablebmsql_config(cfg_namevarchar(30),cfg_valuevarchar(50));createtablebmsql_wa......