首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >磐维数据库的基本语法与使用

磐维数据库的基本语法与使用

原创
作者头像
炒香菇的书呆子
发布2024-12-28 23:59:14
发布2024-12-28 23:59:14
2.4K0
举报

磐维数据库(PanWeiDB),作为中国移动信息技术中心基于中国本土开源数据库打造的自研数据库产品,其内核能力基于华为openGauss开源软件,并进一步提升了系统稳定性。

磐维数据库简介

磐维数据库(PanWeiDB)是中国移动信息技术中心首个面向ICT基础设施的自研数据库产品。其产品内核能力基于华为openGauss开源软件,并进一步提升了系统稳定性。磐维数据库2.0,具有高性能、高可靠、高安全、高兼容等特点,能够为集中式、分布式、云原生、一体机等多种应用场景提供强大支撑。

磐维数据库的安装与连接

安装磐维数据库

磐维数据库的安装过程较为复杂,涉及到创建用户组和用户、配置内核参数、配置NTP服务保证时间同步、配置互信、创建安装目录、上传数据库安装文件并解压、编辑分布式安装配置的yml文件等多个步骤。

连接磐维数据库

磐维数据库可以通过命令行客户端工具(gsql)连接,也可以通过图形客户端工具(如DBeaver)连接。以下是通过gsql连接磐维数据库的示例:

代码语言:shell
复制
gsql -d hr -p 15400 -U cmdbuser -r

通过上述命令,我们可以以操作系统用户panweidb登录数据库主节点,并连接到数据库。

磐维数据库的基本语法

用户查询模式

在JDBC中,可以设置currentSchema参数来指定查询模式:

代码语言:java
复制
jdbc:panweidb://ip:port/database_name?currentSchema=schema_name

更好的方式是在数据库服务端,对业务db或者user进行永久性设置,参考命令如下:

代码语言:sql
复制
alter database my_db set search_path = my_schema_name;
alter user my_user set search_path = my_schema_name;
alter user my_user in database my_db set search_path to my_schema_name;

客户端编码

如果客户端编码与数据库服务端编码不一致,可以显式设置客户端编码。

查询表数据

使用gsql查询表数据的基本语法如下:

代码语言:sql
复制
SELECT * FROM table_name;

常用运维管理SQL命令

以下是一些常用的运维管理SQL命令:

  • 查看集群状态:gs_om -t status --detail
  • 启动数据库集群:gs_om -t start
  • 停止数据库集群:gs_om -t stop
  • 重启数据库集群:gs_om -t restart
  • 查询磐维数据库版本:SELECT pw_version();
  • 查询opengauss版本:SELECT opengauss_version();
  • 查询PG版本:SELECT version();

磐维数据库的upsert语法

磐维数据库支持upsert功能,允许DML语句插入一行数据或者在现存行的基础上更新数据行。以下是两种风格的upsert语法:

Oracle风格的upsert语法

代码语言:sql
复制
INSERT INTO table_name (column1, column2) VALUES (value1, value2) ON DUPLICATE KEY UPDATE column2 = EXCLUDED.column2;

PG风格的upsert语法

代码语言:sql
复制
INSERT INTO table_name (column1, column2) VALUES (value1, value2) ON CONFLICT(column1) DO UPDATE SET column2 = EXCLUDED.column2;

使用示例

以下是PG风格的upsert使用示例:

代码语言:sql
复制
CREATE TABLE test_upsert (id INT PRIMARY KEY, code VARCHAR UNIQUE, info VARCHAR);
INSERT INTO test_upsert (id, code, info) VALUES (1, 'code1', 'info');

-- 再次插入id为1的数据时使用upsert语句
INSERT INTO test_upsert (id, code, info) VALUES (1, 'code1', 'info extra1')
ON CONFLICT(id) DO UPDATE SET info = EXCLUDED.info;

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 磐维数据库简介
  • 磐维数据库的安装与连接
    • 安装磐维数据库
    • 连接磐维数据库
  • 磐维数据库的基本语法
    • 用户查询模式
    • 客户端编码
    • 查询表数据
    • 常用运维管理SQL命令
  • 磐维数据库的upsert语法
    • Oracle风格的upsert语法
    • PG风格的upsert语法
    • 使用示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档