openGauss
开源数据库
openGauss社区官网
开源社区
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
补充:
第一次连接数据库时候,需要先修改 omm 用户密码,新密码要求包含大小写、字符和数字,假设我这里设置密码为 Bigdata@123
postgres=# alter role omm identified by 'Bigdata@123' replace '*********@***'; ALTER ROLE
创建数据库用户
默认只有 openGauss 安装时创建的管理员用户可以访问初始数据库,您还可以创建其他数据库用户帐号。
postgres=# CREATE USER tbug WITH PASSWORD "Bigdata@123"; CREATE ROLE
如上创建了一个用户名为 tbug,密码为 Bigdata@123 的用户。
创建数据库
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
出现上述页面就表示成功连接上之前创建的 db1 数据库。
步骤二:创建 SCHEMA
CREATE SCHEMA tbug AUTHORIZATION tbug;
CREATE SCHEMA
步骤三:创建表
创建如下 Student 表
sqlCREATE 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”。
查看数据库中的表
sqldb1=> \d
查看 student 表详细信息
db1=> \d student
可以看到自动创建的主键索引信息以及其存储结构(B 树)。
3.插入数据
向表中插入三条数据
插入数据
sqlINSERT 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', '男', '软件工程');
查看表格数据
sqlselect * from student;
补充
假设性别字段长度设置为 varchar2(2),那么后面插入数据时候会出现下面情况
可以看到数据插入失败,原因是字段值太长,那么这时候可以考虑编码问题,假如用的是 GBK 编码,那么一个汉字长度就是 2 个 varchar2,这时候是够用的,但是假如编码格式为 UTF-8,这时候一个汉字长度就是 3 个 varchar2,如何查看数据库编码格式呢?执行如下命令:
db1=> \encoding
可以看到数据库编码格式为 UTF-8,这时候性别字段就需要修改为至少 3 个 varchar2。
4.查询数据
查询所有
sqldb1=> select * from student;
条件查询
查询姓名为“张三”的所有字段
sqlselect * from student where sname='张三';
查询张三的学号、年龄及性别
sqlselect sno,sage,ssex from student where sname='张三';
模糊查询
LIKE 运算符
在 SQL 中可以使用“_”和“%”通配符实现 LIKE 运算,通配符是一种在 WHERE 子句中拥有特殊意义的字符,“%”通配符可以匹配 0 到多个任意字符,“_”通配符的功能与“%”类似,其仅匹配任意一个字符。如需匹配两个字符,则使用“_ _”。
查询专业名称以“网”开头的数据:
sqlselect * from student where sdept like "网%";
IN 运算符
IN 运算符也称为“成员条件运算符”,用于判断一个值是否在一个指定的数据集合之内。
查询专业为网络工程、软件工程的学生
sqlselect * from student where sdept in('网络工程','软件工程');
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))sqlalter table student add sphone varchar2(15); \d student
修改字段
修改字段名
ALTER TABLE <表名> RENAME COLUMN A to B
将 sphone 修改为 stel
sqlalter 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 字段
sqlalter table student drop column stel; \d student
四:使用感想
使用完 openGauss 数据库之后不得不感慨国产数据库正在兴起,如今我们要警惕西方对我们的封锁,做好自己的数据库如果西方在这一块对我们进行封锁那我们还能有自己的替代品,希望高校能够逐渐使用我们的国产数据库进行教学并鼓励学生进行自我创新。 openGauss 数据库是一款很优秀的数据库,不过在安装便利性、生态完整性、使用便利性方面还有很大的进步空间,相信在我们大家的努力下早晚有一天国产数据库能够媲美 Oracle、MySQL 等主流数据库,同时也希望 openGauss 数据库能够做的越来越好。