openGauss数据库实战分享

一:openGauss 数据库简介


想必大家都了解华为这个企业,华为在手机、通信、汽车研发、操作系统研发等方面都有很大的成就,如果不是受到了制裁,估计华为现在能取得更好的成绩。华为这一品牌大家都知道,但是华为的 openGauss 数据库可能并不是很多人了解过,我也只是在之前的鲲鹏竞赛中才了解到这款数据库。

openGauss 数据库是华为公司在深度融合技术应用于数据库领域多年经验的基础上,结合企业级场景要求,推出的新一代企业级开源数据库。openGauss 提供面向多核架构的极致性能、全链路的业务、数据安全、基于 AI 的调优和高效运维的能力。作为华为参与研发的国产数据库,openGauss 具有很高的性能和可用性。openGauss 数据库具有如下特点:

  • openGauss 是一个数据库管理系统。
  • openGauss 数据库是关系型的。
  • openGauss 软件是开源的。
  • openGauss 数据库具有高性能、高可用、高安全、易运维、全开放的特点。

二:openGauss 安装注意事项


1.操作系统选择

openGauss 支持以脚本方式进行极简安装,安装起来并不是很费力,唯一觉得不好的就是目前其只支持在 Linux 上面进行安装,并不支持在 Windows 上进行安装,假如个人需要在 Windows 上使用可以安装一个虚拟机,需要注意的是,对于 X86 架构的系统,我推荐使用 Centos 系统,因为这个系统比较常用,但是必须要安装 Centos 7.6 系统,安装其他版本可能会导致后面部署失败。

2.系统配置

安装好操作系统之后,还需要注意系统的配置信息。假如使用虚拟机进行安装的话,最低配置都需要 2 核 4G,不然到最后使用 omm 用户进行数据库初始化时候会出问题。

此外,在安装 Centos 之后要将网络连接选择为 NAT 模式(共享主机的 IP 地址),不然访问不了外网,并且不能使用 DHCP 配置,不然 IP 地址一直变的话就没法玩了,后面使用 FinalShell 时候也会很麻烦,我的系统配置信息见下图。

3.工具选择

关于 openGauss 数据库的安装过程可以自行参照官方文档的安装教程或者到百度上进行搜索,为了安装和使用更方便,可以下载一个 SSH 工具进行操作,无论是安装数据库还是操作数据库都会更方便,关于 SSH 工具有很多选择,比如 SSH Secure Shell Client、Xshell、FinalShell 等,我使用的是 FinalShell,FinalShell 是免费的,而且安装操作起来也很方便,关于具体的安装连接过程可以自行百度一下,成功连接后显示信息

三:openGauss 数据库实战


1.连接数据库

步骤一:以操作系统用户 omm 登录数据库主节点

su - omm

步骤二:启动服务

gs_om -t start

步骤三:连接数据库(注意端口号)

gsql -d postgres -p 26000

补充:

  1. 第一次连接数据库时候,需要先修改 omm 用户密码,新密码要求包含大小写、字符和数字,假设我这里设置密码为 Bigdata@123

    postgres=# alter role omm identified by 'Bigdata@123' replace '*********@***';
    ALTER ROLE
    
  2. 创建数据库用户

    默认只有 openGauss 安装时创建的管理员用户可以访问初始数据库,您还可以创建其他数据库用户帐号。

    postgres=# CREATE USER tbug WITH PASSWORD "Bigdata@123";
    CREATE ROLE
    

    如上创建了一个用户名为 tbug,密码为 Bigdata@123 的用户。

  3. 创建数据库

    postgres=# CREATE DATABASE db1 OWNER tbug;
    CREATE DATABASE
    

    创建完 db_tpcc 数据库后,就可以按如下方法退出 postgres 数据库,使用新用户连接到此数据库执行接下来的创建表等操作。当然,也可以选择继续在默认的 postgres 数据库下做后续的体验。

    postgres=#  \q
    

2.数据表的创建

步骤一:连接上自己创建的数据库

gsql -d db1 -p 26000 -U tbug -W Bigdata@123  -r

<!-- ![输入图片说明](../../../../data/img/image-20221112193433708.png) -->

出现上述页面就表示成功连接上之前创建的 db1 数据库。

步骤二:创建 SCHEMA

CREATE SCHEMA tbug AUTHORIZATION tbug;
CREATE SCHEMA

步骤三:创建表

  1. 创建如下 Student 表

    CREATE TABLE STUDENT
    (
    Sno VARCHAR2(17)PRIMARY KEY ,
    Sname VARCHAR2(10) NOT NULL ,
    Sage INT ,
    Ssex VARCHAR2(3) ,
    Sdept VARCHAR2(20)
    );
    

    可以看到提示出现: CREATE TABLE / PRIMARY KEY will create implicit index “student\_pkey” for table “student”

    它表示系统为主键自动创建了一个隐含的索引“student_pkey”。

  2. 查看数据库中的表

    db1=> \d
    
  1. 查看 student 表详细信息

    db1=> \d student
    
可以看到自动创建的主键索引信息以及其存储结构(B 树)。

3.插入数据

向表中插入三条数据

  1. 插入数据

    INSERT INTO STUDENT(Sno, Sname, Sage, Ssex, Sdept) VALUES ('1906145218', '张三', '19', '男', '网络安全');
    INSERT INTO STUDENT(Sno, Sname, Sage, Ssex, Sdept) VALUES ('1904154568', '李四', '20', '女', '网络工程');
    INSERT INTO STUDENT(Sno, Sname, Sage, Ssex, Sdept) VALUES ('1910245451', '王五', '21', '男', '软件工程');
    
  1. 查看表格数据

    select * from student;
    
  2. 补充

    假设性别字段长度设置为 varchar2(2),那么后面插入数据时候会出现下面情况

可以看到数据插入失败,原因是字段值太长,那么这时候可以考虑编码问题,假如用的是 GBK 编码,那么一个汉字长度就是 2 个 varchar2,这时候是够用的,但是假如编码格式为 UTF-8,这时候一个汉字长度就是 3 个 varchar2,如何查看数据库编码格式呢?执行如下命令:```
db1=> \encoding
```可以看到数据库编码格式为 UTF-8,这时候性别字段就需要修改为至少 3 个 varchar2。

4.查询数据

  1. 查询所有

    db1=> select * from student;
    
  2. 条件查询

    查询姓名为“张三”的所有字段

    select * from student where sname='张三';
    

    查询张三的学号、年龄及性别

    select sno,sage,ssex from student where sname='张三';
    
  3. 模糊查询

    • LIKE 运算符

      在 SQL 中可以使用“_”和“%”通配符实现 LIKE 运算,通配符是一种在 WHERE 子句中拥有特殊意义的字符,“%”通配符可以匹配 0 到多个任意字符,“_”通配符的功能与“%”类似,其仅匹配任意一个字符。如需匹配两个字符,则使用“_ _”。

      查询专业名称以“网”开头的数据:

      select * from student where sdept like "网%";
      
    • IN 运算符

      IN 运算符也称为“成员条件运算符”,用于判断一个值是否在一个指定的数据集合之内。

      查询专业为网络工程、软件工程的学生

      select * from student where sdept in('网络工程','软件工程');
      
  4. BETWEEN…AND 运算符

    在 WHERE 子句中,可以采用 between…and 运算符选取介于两个值之间的数据,这些值可以是数字和日期类型(取值范围包括边界值)。

    查询年龄在 20 至 22 岁之间的学生:

    select * from student where sage between 20 and 22;
    

5.修改数据

在 SQL 中,要修改某一字段的值可以使用 ALTER 语句加上条件来进行修改。

修改王五的年龄为 25

update student set sage = 25 where sname='王五';
select * from student;

6.删除数据

在 SQL 中,要删除某一记录可以使用 DELETE 语句加上条件来进行修改。

删除王五的信息

delete from student where sname='王五';
select * from student;

7.修改字段

  • 增加字段

    ALTER TABLE <表名> ADD <新字段名><数据类型>[约束条件]

    对语法格式的说明如下:

    1.<表名> 为数据表的名字;

    2.<新字段名> 为所要添加的字段的名字;

    3.<数据类型> 为所要添加的字段能存储数据的数据类型;

    4.[约束条件] 是可选的,用来对添加的字段进行约束。

    SQL 默认在表的最后位置添加新字段,如果希望在开头位置(第一列的前面)添加新字段,那么可以使用 FIRST 关键字,语法格式如下:

    ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] FIRST;
    在 student 表中添加字段(sphone,varchar2(15))

    alter table student add sphone varchar2(15);
    \d student
    
  • 修改字段

    • 修改字段名

      ALTER TABLE <表名> RENAME COLUMN A to B

      将 sphone 修改为 stel

      alter table student rename column sphone to stel;
      \d student
      
    • 修改字段类型

      ALTER TABLE 【表名】 ALTER 【字段名】 type 【字段新类型】;将stel字段长度修改为11```sql
      alter table student alter stel type varchar2(11);
      \d student
      ```
      
    • 删除字段

      ALTER TABLE <表名> DROP COLUMN <字段名>

      删除 stel 字段

        alter table student drop column stel;
      \d student
      

四:使用感想

使用完 openGauss 数据库之后不得不感慨国产数据库正在兴起,如今我们要警惕西方对我们的封锁,做好自己的数据库如果西方在这一块对我们进行封锁那我们还能有自己的替代品,希望高校能够逐渐使用我们的国产数据库进行教学并鼓励学生进行自我创新。
openGauss 数据库是一款很优秀的数据库,不过在安装便利性、生态完整性、使用便利性方面还有很大的进步空间,相信在我们大家的努力下早晚有一天国产数据库能够媲美 Oracle、MySQL 等主流数据库,同时也希望 openGauss 数据库能够做的越来越好。

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

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

相关文章

PaddleOCR识别框架解读[06] DBNet 阈值图与概率图标签的生成

文章目录 概率图 probability map 标签阈值图 threshold map 标签DB: Real-time Scene Text Detection with Differentiable Binarization网络整体流程一. Label generationprobability map生成threshold map 生成二. Differentiable Binarization可微二值化2.1 传统二值化和DB…

前端面试练习24.3.7

目录 1.类型转换练习 2.数据之间运算 算术运算 比较运算 逻辑运算 3.动态执行JS&#xff08;类似eval方法&#xff09; 1.eval()方法 2.setTimeout 3.创建DOM节点进行添加 4.Function的最后一个参数当作函数体直接运行 4.promise工具函数练习 5.统计字符频率写法的发…

js的类等于什么操作产生的?

class 类定义提升 class如和产生的对象&#xff1f; 类定义 实际上&#xff0c;类是“特殊的函数”&#xff0c;就像你能够定义的函数表达式和函数声明一样&#xff0c;类语法有两个组成部分&#xff1a;类表达式和类声明。 提升 函数声明和类声明之间的一个重要区别在于&am…

基于springboot+vue的医疗挂号管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

vcruntime140.dll丢失的修复办法详细介绍以及详细步骤

当电脑丢失vcruntime140.dll文件时&#xff0c;电脑会出现关于vcruntime140.dll丢失的错误提示&#xff0c;vcruntime140.dll文件包含许多重要的函数和资源&#xff0c;若缺少或丢失该文件&#xff0c;可能会导致电脑出现异常状况。今天就来和大家说说如果电脑出现关于vcruntim…

获取别人店铺的所有商品API接口

使用淘宝淘口令接口的步骤通常包括&#xff1a; 注册成为淘宝开放平台的开发者&#xff1a;在淘宝开放平台网站上注册账号并完成认证。 创建应用以获取API密钥&#xff1a;在您的开发者控制台中创建一个应用&#xff0c;并获取用于API调用的密钥&#xff0c;如Client ID和Clie…

【JavaEE初阶 -- 计算机核心工作机制】

这里写目录标题 1.冯诺依曼体系2.CPU是怎么构成的3.指令表4.CPU执行代码的方式5.CPU小结&#xff1a;6.编程语言和操作系统7. 进程/任务&#xff08;Process/Task&#xff09;8.进程在系统中是如何管理的9. CPU分配 -- 进程调度10.内存分配 -- 内存管理11.进程间通信 1.冯诺依曼…

javaweb学习(day07-手动实现tomcat)

一、引入案例 1 小案例 引出对 Tomcat 底层实现思考 1.1 完成小案例 1.1.1 运行效果 1.2 maven简要介绍 我们准备使用 Maven 来 创建一个 WEB 项目 , 先 简单给小伙伴介绍一下 Maven 是 什 么 , 更加详细的使用&#xff0c;我们还会细讲 , 现在先使用一把 1.3 创…

vue中常用的指令和自定义指令

在Vue中&#xff0c;常用的指令有v-bind、v-on、v-for、v-if、v-show等。自定义指令可以通过Vue.directive()方法来创建。 下面是常用指令和自定义指令的代码示例&#xff1a; v-bind&#xff1a;用于动态绑定HTML属性 <div v-bind:class"{active: isActive}"&…

多个变量指向同一个数组

多个变量中的内存地址是一样的&#xff0c;都是指向当前的数组&#xff0c;存储当前数组对象的地址&#xff0c;因此修改是对当前数组的值进行修改 数组中存储的是null&#xff0c;那么他将不会指向任何数组对象 System.out.println(arr) 输出结果为null&#xff0c;里面没有…

Vue+OpenLayers7入门到实战:webgl图层叠加大量Icon图片到地图,解决叠加超大数据量图片导致浏览器卡住变慢的问题

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7 前言 之前已经讲了如何地图中如何添加大量点到webgl图层优化大量点浏览器页面卡顿的问题。本章介绍补充一下叠加大量图片图标要素到地图的情况下的问题。 二、依赖和使用 "ol": "7.5.2"使用npm安装依…

Vue+OpenLayers7入门到实战:OpenLayers7如何使用gifler库来实现gif动态图图片叠加到地图上

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7 前言 OpenLayers7本身不支持gif图片作为图标要素显示到地图上,所以需要通过其他办法来实现支持gif图片。 本章介绍如何使用OpenLayers7在地图上使用gifler库先生成canvas画板,然后通过canvas画板的重绘事件来重新渲染地图…

leetcode 热题 100_最大子数组和

题解一&#xff1a; 动态规划&#xff1a;这是一道经典的动态规划题。维护一个dp数组&#xff0c;dp[i]表示0~i组成的数组的最大子数组和。当数组长度为1时&#xff0c;最大和连续子数组是它本身&#xff0c;也就是dp[i]nums[i]。当数组长度每增加1时&#xff0c;最大和连续子数…

LVGL在VScode中安装模拟器运行配置笔记教程

1、LVGL模拟器工程搭建 LVGL(Light and Versatile Graphics Library,轻巧而多功能的图形库)是一个免费的开放源代码图形库,它提供创建具有易于使用的图形元素,精美的视觉效果和低内存占用的嵌入式GUI所需的一切。本文主要讲述如何实现在VScode中实现LVGL模拟器环境的搭建运行。…

遗传算法理解与代码实战(一)- demo(python手写代码)

遗传算法&#xff08;Genetic Algorithm, GA&#xff09;是模拟自然界中生物进化的机制来搜索最优解的方法。遗传算法属于进化计算的一部分&#xff0c;它借鉴了达尔文的自然选择和孟德尔的遗传学原理。 1、算法背景 遗传算法的灵感来源于生物进化过程。在自然界中&#xff0…

Linux CentOS系统安装Spug并结合内网穿透实现远程访问本地运维平台

目录 前言 1. Docker安装Spug 2 . 本地访问测试 3. Linux 安装cpolar 4. 配置Spug公网访问地址 5. 公网远程访问Spug管理界面 6. 固定Spug公网地址 结语 作者简介&#xff1a; 懒大王敲代码&#xff0c;计算机专业应届生 今天给大家聊聊Linux CentOS系统安装Spug并结合…

嵌入式学习day31 网络

网络: 数据传输,数据共享 1.网络协议模型: OSI协议模型 应用层 实际发送的数据 表示层 发送的数据是否加密 会话层 是否建立会话连接 传输层 数据传输的方式&#xff08;数据报…

Upload 上传(图片/文件),回显(图片),下载(文件)

1.前端技术&#xff1a;V3 Ant Design Vue 2.后端技术&#xff1a;Java 图片上传/回显&#xff1a; 文件上传回显&#xff1a; 表结构&#xff1a;单文件/图片上传为A表对文件C表 &#xff08;A表field字段 对应 C表id字段&#xff09; 如图&#xff1a;A表中的 vehicle_d…

OracleXE112、plsqldev1207的安装和基本配置

OracleXE112、plsqldev1207的安装和基本配置 OracleXE112、plsqldev1207的安装和基本配置Oracle安装oracle是什么Oracle两个版本下载安装包 安装OracleXE112_Win64注意&#xff1a;安装到空目录下&#xff1b;输入口令&#xff08;记住啊&#xff01;&#xff09;安装成功&…