openGauss学习笔记-68 openGauss 数据库管理-创建和管理普通表-向表中插入数据

news2025/1/24 2:14:49

文章目录

    • openGauss学习笔记-68 openGauss 数据库管理-创建和管理普通表-向表中插入数据
      • 68.1 背景信息
      • 68.2 操作步骤
        • 68.2.1 向表customer_t1中插入一行
        • 68.2.2 向表中插入多行
        • 68.2.3 从指定表插入数据到当前表
        • 68.2.4 删除备份表

openGauss学习笔记-68 openGauss 数据库管理-创建和管理普通表-向表中插入数据

在创建一个表后,表中并没有数据,在使用这个表之前,需要向表中插入数据。本小节介绍如何使用INSERT命令插入一行或多行数据,及从指定表插入数据。如果有大量数据需要批量导入表中,请参考导入数据

68.1 背景信息

服务端与客户端使用不同的字符集时,两者字符集中单个字符的长度也会不同,客户端输入的字符串会以服务端字符集的格式进行处理,所以产生的最终结果可能会与预期不一致。

表 1 客户端和服务端设置字符集的输出结果对比

操作过程服务端和客户端编码一致服务端和客户端编码不一致
存入和取出过程中没有对字符串进行操作输出预期结果输出预期结果(输入与显示的客户端编码必须一致)。
存入取出过程对字符串有做一定的操作(如字符串函数操作)输出预期结果根据对字符串具体操作可能产生非预期结果。
存入过程中对超长字符串有截断处理输出预期结果字符集中字符编码长度是否一致,如果不一致可能会产生非预期的结果。

上述字符串函数操作和自动截断产生的效果会有叠加效果,例如:在客户端与服务端字符集不一致的场景下,如果既有字符串操作,又有字符串截断,在字符串被处理完以后的情况下继续截断,这样也会产生非预期的效果。详细的示例请参见表2

img 说明:
数据库DBCOMPATIBILITY设为兼容TD模式,且td_compatible_truncation参数设置为on的情况下,才会对超长字符串进行截断。

执行如下命令建立示例中需要使用的表table1、table2。

openGauss=# CREATE TABLE table1(id int, a char(6), b varchar(6),c varchar(6));
openGauss=# CREATE TABLE table2(id int, a char(20), b varchar(20),c varchar(20));

表 2 示例

编号服务端字符集客户端字符集是否启用自动截断示例结果说明
1SQL_ASCIIUTF8openGauss=# INSERT INTO table1 VALUES(1,reverse(‘123AA78’),reverse(‘123AA78’),reverse(‘123AA78’));`ida
2SQL_ASCIIUTF8openGauss=# INSERT INTO table1 VALUES(2,reverse(‘123A78’),reverse(‘123A78’),reverse(‘123A78’));`ida
3SQL_ASCIIUTF8openGauss=# INSERT INTO table1 VALUES(3,‘87A123’,‘87A123’,‘87A123’);`ida
4SQL_ASCIIUTF8openGauss=# INSERT INTO table2 VALUES(1,reverse(‘123AA78’),reverse(‘123AA78’),reverse(‘123AA78’)); openGauss=# INSERT INTO table2 VALUES(2,reverse(‘123A78’),reverse(‘123A78’),reverse(‘123A78’));`ida

68.2 操作步骤

向表中插入数据前,意味着表已创建成功。创建表的步骤请参考创建和管理表

68.2.1 向表customer_t1中插入一行

数据值是按照这些字段在表中出现的顺序列出的,并且用逗号分隔。通常数据值是文本(常量),但也允许使用标量表达式。

openGauss=# INSERT INTO customer_t1(c_customer_sk, c_customer_id, c_first_name) VALUES (3769, 'hello', 'Grace');

如果用户已经知道表中字段的顺序,也可无需列出表中的字段。例如以下命令与上面的命令效果相同。

openGauss=# INSERT INTO customer_t1 VALUES (3769, 'hello', 'Grace');

如果用户不知道所有字段的数值,可以忽略其中的一些。没有数值的字段将被填充为字段的缺省值。例如:

openGauss=# INSERT INTO customer_t1 (c_customer_sk, c_first_name) VALUES (3769, 'Grace');

openGauss=# INSERT INTO customer_t1 VALUES (3769, 'hello');

用户也可以对独立的字段或者整个行明确缺省值:

openGauss=# INSERT INTO customer_t1 (c_customer_sk, c_customer_id, c_first_name) VALUES (3769, 'hello', DEFAULT);

openGauss=# INSERT INTO customer_t1 DEFAULT VALUES;

68.2.2 向表中插入多行

如果需要在表中插入多行,请使用以下命令:

openGauss=# INSERT INTO customer_t1 (c_customer_sk, c_customer_id, c_first_name) VALUES 
    (6885, 'maps', 'Joes'),
    (4321, 'tpcds', 'Lily'),
    (9527, 'world', 'James');

如果需要向表中插入多条数据,除此命令外,也可以多次执行插入一行数据命令实现。但是建议使用此命令可以提升效率。

68.2.3 从指定表插入数据到当前表

如果从指定表插入数据到当前表,例如在数据库中创建了一个表customer_t1的备份表customer_t2,现在需要将表customer_t1中的数据插入到表customer_t2中,则可以执行如下命令。

openGauss=# CREATE TABLE customer_t2
(
    c_customer_sk             integer,
    c_customer_id             char(5),
    c_first_name              char(6),
    c_last_name               char(8)
);

openGauss=# INSERT INTO customer_t2 SELECT * FROM customer_t1;

img 说明:
从指定表插入数据到当前表时,若指定表与当前表对应的字段数据类型之间不存在隐式转换,则这两种数据类型必须相同。

68.2.4 删除备份表

openGauss=# DROP TABLE customer_t2 CASCADE;

img 说明:
在删除表的时候,若当前需删除的表与其他表有依赖关系,需先删除关联的表,然后再删除当前表。

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

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

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

image-20230606173916836

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1006832.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python 图形化界面基础篇:添加复选框( Checkbutton )到 Tkinter 窗口

Python 图形化界面基础篇:添加复选框( Checkbutton )到 Tkinter 窗口 引言什么是 Tkinter 复选框( Checkbutton )?步骤1:导入 Tkinter 模块步骤2:创建 Tkinter 窗口步骤3&#xff1a…

【数据分享】2006-2021年我国城市级别的排水和污水处理相关指标(20多项指标)

《中国城市建设统计年鉴》中细致地统计了我国城市市政公用设施建设与发展情况,在之前的文章中,我们分享过基于2006-2021年《中国城市建设统计年鉴》整理的2006—2021年我国城市级别的市政设施水平相关指标、2006-2021年我国城市级别的各类建设用地面积数…

Vue3表单

文章目录 Vue3表单1. 概念2. 输入框3. 复选框4. 单选按钮5. select下拉列表5.1 下拉列表单选5.1 下拉列表多选时绑定到数组5.3 使用 v-for 循环输出选项 6. 值绑定7. 修饰符7.1 .lazy7.2 .number7.3 .trim Vue3表单 1. 概念 可以用 v-model 指令在表单 、 及 等元素上创建双向…

微信内测新功能:“微信分期”来了!

微信作为一款社交 App,早已成为了现在人们日常生活中不可缺少的一部分。 随着生态不断完善,它所涵盖的功能也是越来越多。 据镭射财经,微信近日正在测试一款名为“微信分期”的全系消费信贷产品。功能入口位于微信钱包中,资金方为…

预约微信小程序源码系统制作搭建 适用于多场景 支持万能DIY功能

分享一个预约微信小程序源码系统,适用于多种预约场景,含完整代码包前端后端详细的搭建教程,支持万能DIY功能,让你轻松开发制作一个属于自己的想要的预约小程序。 一、预约微信小程序源码系统制作搭建的基本步骤和注意事项&#xf…

【Flink实战】Flink 商品销量统计-实战Bahir Connetor实战存储 数据到Redis6.X

🚀 作者 :“大数据小禅” 🚀 文章简介 :Flink 商品销量统计-实战Bahir Connetor实战存储 数据到Redis6.X 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 目录导航 Flink怎么操作RedisFlink 商品销量统…

宿舍考勤安全系数?这个答案全国统一!

在现代教育和住宿管理中,确保学生或员工的宿舍考勤管理变得越来越重要。传统的考勤方法可能受到人为错误和滥用的威胁,同时也可能耗费大量时间和资源。 人脸识别技术已经在各个领域展现了强大的潜力。它不仅提高了安全性,还改善了考勤管理的效…

GP08|财务估值因子过滤实盘小市值

量化策略开发,高质量社群,交易思路分享等相关内容 大家好,今天我们来分享gp08策略。千呼万唤始出来,由于xxx原因(不便说,好奇的可以私聊我),我们从9月份开始,后面分享的策…

深入解析顺序表:揭开数据结构的奥秘,掌握顺序表的精髓

💓 博客主页:江池俊的博客⏩ 收录专栏:数据结构探索👉专栏推荐:✅C语言初阶之路 ✅C语言进阶之路💻代码仓库:江池俊的代码仓库🔥编译环境:Visual Studio 2022&#x1f38…

包装类、多线程的基本使用

包装类 1.基本数据类型对应的引用数据类型(包装类) 1.概述:所谓的包装类就是基本类型对应的类(引用类型),我们需要将基本类型转成包装类,从而让基本类型具有类的特性(说白了,就是将基本类型的数据转成包装类,就可以使用包装类中的方法来操作此数据)2.为啥要学包装类:a.将来有…

springboot上传文件到后台指定文件夹

第一步,在application.yml做一下配置,预设下载目录 files:upload:path: D:/SpringBootItem/springboot/files/ 其中有用到hutool工具依赖,如下在pom.xml中添加依赖,也可以选择不添加,自己修改下Controller中的代码即可…

批量采集头条号文章的工具-让我们更好地辨别信息好坏

大家好,今天我想和大家聊一聊一个在互联网时代备受瞩目的话题,那就是批量采集头条号的文章。作为一个热衷于信息获取和分享的人,我深知这一领域的挑战和机遇。 让我们来谈谈批量采集头条号的文章所面临的挑战。随着互联网的迅猛发展&#xff…

亚马逊API接口解析,实现获得AMAZON商品详情

要解析亚马逊API接口并实现获取亚马逊商品详情,你需要按照以下步骤进行操作: 了解亚马逊开发者中心:访问亚马逊开发者中心,并了解相关的API文档、开发者指南和规定。注册开发者账号:在亚马逊开发者中心上注册一个开发…

Java“牵手”京东商品详情数据,京东商品详情接口,京东API接口申请指南

京东商品详情API是京东平台提供给开发者的应用程序编程接口,通过API可以获取京东平台上商品详情信息。 京东商品详情API可以获取到商品的标题、价格、销量、评价、详情页等信息。开发者在京东开放平台注册开发者账号,并获得访问API接口的密钥后&#xf…

代码随想录算法训练营day46|139.单词拆分|多重背包基础理论| 背包总结

139.单词拆分 力扣题目链接 给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 示例 1&#xff1a…

关于批量安装多个apk

for %i in (apks地址/*.apk); do adb install %i https://www.cnblogs.com/lihongtaoya/p/15084378.html adb install -r apks地址/1.apk && adb install -r apks地址/2.apk install-multi-package - 暂时nok https://adbshell.com/commands 最新版本的platform-tool…

Dinky上路之旅

1、部署flink集群 1.1、flink-conf.yaml cat > flink-conf.yaml << EOF jobmanager.rpc.address: boshi-146 jobmanager.rpc.port: 6123 jobmanager.bind-host: 0.0.0.0 jobmanager.memory.process.size: 1600m taskmanager.bind-host: 0.0.0.0 # 修改为本机ip tas…

今日宜分享:科技十足主页面的高校官网颜值排行榜

科技十足主页面的高校官网颜值排行榜 全国985名单&#xff08;最新&#xff09;1. 北京&#xff08;8所&#xff09;2. 上海&#xff08;4所&#xff09;3. 湖南&#xff08;3所&#xff09;4. 陕西&#xff08;3所&#xff09;5. 湖北&#xff08;2所&#xff09;6. 山东&…

postgresql如何关闭自动提交设置

问题&#xff1a;代码运行报错&#xff1a; Caused by: org.postgresql.util.PSQLException: Cannot commit when autoCommit is enabled. 解决方法&#xff1a;修改postgresql配置文件&#xff0c;关闭自动提价设置

机器学习:PCA(Principal Component Analysis主成分)降维

参考&#xff1a;PCA降维原理 操作步骤与优缺点_TranSad的博客-CSDN博客 PCA降维算法_偶尔努力翻身的咸鱼的博客-CSDN博客 需要提前了解的数学知识&#xff1a; 一、PCA的主要思想 PCA&#xff0c;即主成分分析方法&#xff0c;是一种使用最广泛的数据降维算法。PCA的主要思想…