首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >国产数据库崛起:从零到精通!KingbaseES金仓数据库超详细安装使用指南

国产数据库崛起:从零到精通!KingbaseES金仓数据库超详细安装使用指南

原创
作者头像
xcLeigh
发布2025-04-22 12:52:00
发布2025-04-22 12:52:00
1.1K0
举报
文章被收录于专栏:前沿技术分享前沿技术分享

KingbaseES 是中电科金仓(北京)科技股份有限公司研发的,具有自主知识产权的通用数据库产品。该产品是面向全行业、全客户关键应用的企业级大型通用数据库管理系统,适用于事务处理类应用、数据分析类应用、海量时序数据采集检索等应用场景,可用做管理信息系统、业务及生产系统、决策支持系统、多维数据分析、全文检索、地理信息系统、图片搜索、时序数据等的承载数据库。 今天给大家出一个金仓数据库KingbaseES超详细安装使用指南,从数据库下载、安装到可视化IDE KStudio工具的建库及使用。

一、关于KingbaseES金仓数据库

KingbaseES 是中电科金仓(北京)科技股份有限公司研发的,具有自主知识产权的通用数据库产品。该产品面向事务处理类应用,兼顾各类数据分析类应用,可用做管理信息系统、业务及生产系统、决策支持系统、多维数据分析、全文检索、地理信息系统、图片搜索、时序数据等的承载数据库。

作为KingbaseES产品系列最新一代版本,KingbaseES V9在系统的可靠性、可用性、性能和兼容性等方面进行了重大改进,它包括以下主要技术特性:

🌞 高度容错,稳定可靠

针对企业级关键业务应用的可持续服务需求,KingbaseES V9提供可在电力、金融、电信等核心业务系统中久经考验的容错功能体系,通过如数据备份、恢复、同步复制、多数据副本等高可用技术,确保数据库7×24小时不间断服务,实现99.999%的系统可用性。

🌞 应用迁移,简单高效

针对从异构数据库将应用迁移到KingbaseES的场景,KingbaseES V9一方面通过智能便捷的数据迁移工具,实现无损、快速数据迁移;另一方面,KingbaseES V9还提供高度符合标准(如SQL、ODBC、JDBC等)、并兼容主流数据库(如Oracle、SQLServer、MySQL等)语法的服务器端、客户端应用开发接口,可最大限度地降低迁移成本。

🌞 人性设计,简单易用

KStudio版本提供了全新设计的集成开发环境(IDE)和集成管理平台,能有效降低数据库开发人员和管理人员的使用成本,提高开发和管理效率。

🌞 性能强劲,扩展性强

针对企业业务增长带来的数据库并发处理压力,该版本提供了包括并行计算、索引覆盖等技术在内的多种性能优化手段,此外提供了基于读写分离的负载均衡技术,让企业能从容应对高负载大并发的业务。

二、下载安装

2.1 下载数据库

金仓官网提供了金仓各产品各版本的安装包、补丁包、对应的工具、接口驱动、授权文件等下载服务。可以通过页面中的筛选栏选择所需产品及版本进行下载,我这里下载的是windows版本的x64完整版金仓数据库。

这里下载好的是iso镜像文件,直接双击打开,然后把内容复制出来。

2.2 安装配置

单击 KINGBASE.EXE 开始安装!

我这里选择默认的中文安装,点击 确定

单击 下一步

单击 下一步

我这里选择的完全安装,点击 下一步

我这里选择试用,点击 下一步

可以自定义安装路径,点击 下一步

点击 安装

默认数据文件就行,点击 下一步

填写相关配置信息,system的密码自定义,字符集编码,选择的是UTF8;数据库兼容模式选择的是MySql;是否大小写敏感选择的是NO,存储块大小选择的是8K,点击 完成

这里数据库就安装完成了,完成了测试的第一步,接下来咱们一起去看看数据应用那块吧!

三、可视化工具建库操作

3.1 打开数据库开发管理工具(KStudio)

KingbaseES KStudio 是金仓数据库(KingbaseES)官方推出的专业数据库开发管理工具,提供可视化操作界面,支持数据库对象管理、SQL编辑与调试、数据导入导出、性能监控等功能。用户可通过KStudio轻松完成表、视图、存储过程等对象的创建与维护,并利用智能语法提示、执行计划分析等特性提升开发效率。同时,工具兼容主流数据库语法,支持多环境连接与批量任务处理,是DBA和开发人员管理KingbaseES数据库的得力助手,助力企业实现数据高效运维与开发。

3.2 建立数据连接

点击菜单 数据库 》新建连接

填写好密码,点击测试链接,提示连接成功,并展示服务版本配置和驱动相关信息。

3.3 建立数据库

右键 数据库 》新建数据库

填写基本属性信息

数据库的创建代码

代码语言:sql
复制
CREATE DATABASE `xcLeigh` WITH OWNER = `system` ENCODING 'UTF8' TEMPLATE `template0`
 TABLESPACE = `sys_default`
 lc_collate = 'zh_CN.UTF-8'
 lc_ctype = 'zh_CN.UTF-8'
 connection_limit = -1
 allow_connections = TRUE
 is_template = FALSE;

点击确定,数据库就建好了

3.4 建表

打开 SQL编辑器 》输入建表SQL语句 》点击执行。表jsontable就创建成功了。

代码语言:sql
复制
CREATE TABLE "public"."jsontable" (
        "id" integer NULL,
        "jsondata" json NULL,
        "jsonvarchar" varchar NULL,
        "jsonarray" json NULL
);

3.5 删表

打开 SQL编辑器 》输入删表SQL语句 》点击执行。表jsontable就删除成功了。

代码语言:sql
复制
DROP TABLE "public"."jsontable"

3.6 新增表数据

打开 SQL编辑器 》输入插入数据的SQL语句》点击执行。表jsontable的数据就新增成功了。

代码语言:sql
复制
INSERT INTO public.jsontable ("id","jsondata","jsonvarchar","jsonarray") VALUES
         (1,'{"f2":{"f3":1},"f4":{"f5":99,"f6":"foo"}}','{"f2": {"f3": 1}, "f4": {"f5": 99, "f6": "foo"}}','[1,true,[1,[2,3]],null,{"f1":1,"f2":[7,8,9]},false,"stringy"]'),
         (2,'{"a":[1,2,3,4,5]}','{"a": [1, 2, 3, 4, 5]}','[1,2,3,4,5]'),
         (3,'{"a":1, "b": ["2", "a b"],"c": {"d":4, "e": "ab c"}}','{"a": 1, "b": ["2", "a b"], "c": {"d": 4, "e": "ab c"}}','[{"f1":1,"f2":null},2,null,3]');

3.7 查询表数据

打开 SQL编辑器 》输入查询表数据SQL语句》点击执行。表jsontable的数据就显示了。

3.8 修改表数据

打开 SQL编辑器 》输入修改数据的SQL语句 》点击执行。表jsontable的数据就修改完成了。

代码语言:sql
复制
UPDATE `jsontable` SET id=4 WHERE id=1

金仓数据库的sql语句跟oracle、mysql等sql语句差不多,基本上都能很快上手!上面演示的增删改查功能,是不是相当简单?国产数据库的崛起已经步入轨道,快来一起翻开国产数据库的新篇章吧!

四、数据库JSON系列应用教程

JSON(JavaScript Object Notation)作为一种流行的数据格式,采用可读性非常好的轻量级文本,只需要更少的编码,处理速度更快,用于在现代Web和移动应用程序中交换数据。此外,JSON能打通关系型和非关系型数据存储之间的界限,为业务提供更好的架构选择。

JSON 数据类型是用来存储 JSON(JavaScript Object Notation)数据的。KingbaseES为存储JSON数据提供了两种类型:JSON和 JSONB。JSON 和 JSONB 几乎接受完全相同的值集合作为输入。

这两种类型的主要区别为:

JSON类型把输入的数据原封不动地存储在数据库中(当然在存放前会做JSON的语法检查),使用的时候需要重新解析数据。

JSONB类型在存放时就把JSON解析成二进制格式了,使用的时候不需要再次解析。

下面主要探讨Json构造函数。

4.1 Json构造函数

在对数据库的使用中,可能需要把关系数据或者一个行对象转为JSON对象或JSON数组,KingbaseES提供了JSON构造函数来生成JSON数据。

本部分将主要介绍Kingbase数据库的Json构造函数。

代码语言:sql
复制
准备数据,上面增删改查的时候数据已经教大家新增了:
CREATE TABLE "public"."jsontable" (
        "id" integer NULL,
        "jsondata" json NULL,
        "jsonvarchar" varchar NULL,
        "jsonarray" json NULL
);

INSERT INTO public.jsontable ("id","jsondata","jsonvarchar","jsonarray") VALUES
         (1,'{"f2":{"f3":1},"f4":{"f5":99,"f6":"foo"}}','{"f2": {"f3": 1}, "f4": {"f5": 99, "f6": "foo"}}','[1,true,[1,[2,3]],null,{"f1":1,"f2":[7,8,9]},false,"stringy"]'),
         (2,'{"a":[1,2,3,4,5]}','{"a": [1, 2, 3, 4, 5]}','[1,2,3,4,5]'),
         (3,'{"a":1, "b": ["2", "a b"],"c": {"d":4, "e": "ab c"}}','{"a": 1, "b": ["2", "a b"], "c": {"d": 4, "e": "ab c"}}','[{"f1":1,"f2":null},2,null,3]');

JSON函数,使用JSON数据类型构造函数来解析文档的JSON输入(标量、对象或者数组),返回一个JSON类型的实例。

4.1.1 ROW_TO_JSON

功能描述:

把行作为一个 JSON对象返回。如果pretty_bool为真,将在第1层元素之间增加换行。

用法描述:

代码语言:sql
复制
row_to_json(record [, pretty_bool])

示例描述:

代码语言:sql
复制
demo=# select row_to_json(row(1,'foo'));
     row_to_json     
---------------------
 {"f1":1,"f2":"foo"}
(1 行记录)

demo=# select row_to_json(row(id,jsonvarchar)) from jsontable;
                                       row_to_json                                       
-----------------------------------------------------------------------------------------
 {"f1":1,"f2":"{\"f2\": {\"f3\": 1}, \"f4\": {\"f5\": 99, \"f6\": \"foo\"}}"}
 {"f1":2,"f2":"{\"a\": [1, 2, 3, 4, 5]}"}
 {"f1":3,"f2":"{\"a\": 1, \"b\": [\"2\", \"a b\"], \"c\": {\"d\": 4, \"e\": \"ab c\"}}"}
(3 行记录)

demo=# select row_to_json(row(id,jsonvarchar) , true) from jsontable;
                                   row_to_json                                    
----------------------------------------------------------------------------------
 {"f1":1,                                                                        +
  "f2":"{\"f2\": {\"f3\": 1}, \"f4\": {\"f5\": 99, \"f6\": \"foo\"}}"}
 {"f1":2,                                                                        +
  "f2":"{\"a\": [1, 2, 3, 4, 5]}"}
 {"f1":3,                                                                        +
  "f2":"{\"a\": 1, \"b\": [\"2\", \"a b\"], \"c\": {\"d\": 4, \"e\": \"ab c\"}}"}
(3 行记录)

4.1.2 TO_JSON

功能描述:

将anyelement转换为JSON格式的数据。

用法描述:

代码语言:sql
复制
to_json(anyelement)

示例描述:

代码语言:sql
复制
demo=#  select to_json(true);
 to_json 
---------
 true
(1 行记录)

demo=# select to_json('abcd'::text); 
 to_json 
---------
 "abcd"
(1 行记录)

demo=# select to_json(array['a','b']);
  to_json  
-----------
 ["a","b"]
(1 行记录)

demo=#  select to_json(id) from jsontable ;
 to_json 
---------
 1
 2
 3
(3 行记录)

4.1.3 TO_JSONB

功能描述:

JSON函数,将任何SQL值转换为JSONB。

用法描述:

代码语言:sql
复制
to_jsonb(anyelement)

示例描述:

代码语言:sql
复制
demo=# select to_jsonb(true);
 to_jsonb 
----------
 true
(1 行记录)

demo=# select to_jsonb('abcd'::text);      
 to_jsonb 
----------
 "abcd"
(1 行记录)

demo=# select to_jsonb(array['a','b']);    
  to_jsonb  
------------
 ["a", "b"]
(1 行记录)

demo=#  select to_jsonb(id) from jsontable ;
 to_jsonb 
----------
 1
 2
 3
(3 行记录)

4.2.4 JSONB_BUILD_OBJECT

功能描述

JSON处理函数,将可变参数列表构造成一个JSON 对象,通过转换,该参数列表由交替出现的键和值构成。 注意:参数列表的元素个数必须为偶数

用法描述:

代码语言:sql
复制
jsonb_build_object( VARIADIC "any")

示例描述:

代码语言:sql
复制
demo=# select JSONB_BUILD_OBJECT(id , name) from comtable ;
 JSONB_BUILD_OBJECT 
--------------------
 {"1": "a"}
 {"2": "b"}
 {"3": "c"}
(3 行记录)

-- 元素个数必须为偶数

demo=# select JSONB_BUILD_OBJECT(id) from comtable ;       
错误:  参数列表的元素个数必须为偶数
提示:  jsonb_build_object()的参数必须包含可替代的键和对应的值.

4.2.5 JSONB_OBJECT

功能描述1:

JSONB处理函数,从文本数组中构造JSON对象。该数组必须是具有偶数个成员的一维数组(成员被当做交替出现的键值对),或者是一个二维数组(每一个内部数组只有两个元素,可以被看做键值对,所有的值均被转换为JSON字符串)。

用法描述1:

代码语言:sql
复制
jsonb_object(text[])
---text数组必须包含偶数个元素

函数必须可以使具有偶数个成员的一维数组(成员被当做交替出现的键值对),或者是一个二维数组(每一个内部数组刚好有两个元素,可以被看做键值对)。

示例描述1:

代码语言:sql
复制
demo=# SELECT jsonb_object(array[id::text ,name::text]) from comtable ;
 jsonb_object 
--------------
 {"1": "a"}
 {"2": "b"}
 {"3": "c"}
(3 行记录)

-- 数组必须包含偶数个元素

demo=# SELECT jsonb_object(array[id::text]) from comtable ;            
错误:  数组必须包含偶数个元素

demo=# SELECT jsonb_object('{a, b, "def", c, 3.5}');   
错误:  数组必须包含偶数个元素

功能描述2:

JSON处理函数,从文本数组中构造JSON对象。从两个独立的数组得到键值对。在其他方面和一个参数的形式相同。

用法描述2:

代码语言:sql
复制
jsonb_object( keys text[], values text[])
keys数组和values数组维数需要一致

从两个独立的数组得到键/值对。在其他方面和一个参数的形式相同。

示例描述2:

代码语言:sql
复制
demo=# SELECT jsonb_object(array[id],array[name]) from comtable ;      
 jsonb_object 
--------------
 {"1": "a"}
 {"2": "b"}
 {"3": "c"}
(3 行记录)

-- keys和values数组维数需要一致

demo=# SELECT jsonb_object(array[id ,id],array[name]) from comtable ;  
错误:  不匹配的数组维数

demo=# SELECT jsonb_object('{a,b}', '{1,2,3}');
错误:  不匹配的数组维数
### 4.2.6 JSON_BUILD_OBJECT

功能描述:

JSON处理函数,将可变参数列表构造成一个JSON 对象,通过转换,该参数列表由交替出现的键和值构成。 注意:参数列表的元素个数必须为偶数

用法描述:

代码语言:sql
复制
json_build_object( VARIADIC "any")

示例描述:

代码语言:sql
复制
参照JSONB_BUILD_OBJECT使用示例

4.2.7 JSON_OBJECT

功能描述:

以JSON对象形式返回输入的键值对(可为空)。当任意键名为NULL或者参数个数为单数时报错。 使用前需要创建mysql_json插件。

mysql_json是KingbaseES的一个扩展插件,主要定义了兼容mysql的json系列操作函数。默认不加载mysql_json扩展插件。

用法描述:

代码语言:sql
复制
json_object([key,value[,key,value,…]])

示例描述:

代码语言:sql
复制
加载插件
CREATE EXTENSION mysql_json;

注意:创建扩展前,需要关闭禁用多态函数参数,执行’set ora_forbid_func_polymorphism to off;’ 。

五、总结

📣 KingbaseES作为国产自主研发的通用数据库,🔥在可靠性、兼容性和易用性方面表现突出。🎈它支持高可用架构,通过数据备份、同步复制等技术确保 99.999% 的系统稳定性,🌞适用于金融、电信等关键业务场景。同时,KingbaseES V9高度兼容Oracle、MySQL、SQLServer等主流数据库语法,提供智能迁移工具,大幅降低企业迁移成本。其内置的并行计算、读写分离等优化技术,有效应对高并发与大数据分析需求,满足事务处理与数据分析的双重挑战。

📣 此外,KingbaseES提供KStudio可视化IDE,💎简化数据库开发与管理流程,支持表、视图、存储过程等对象的便捷操作。JSON数据处理、全文检索、地理信息系统等高级功能进一步扩展了应用场景。无论是安装部署还是SQL操作,🏆KingbaseES都保持了低学习门槛,助力用户快速上手。国产数据库的崛起正逐步打破国外技术垄断✨,KingbaseES凭借其高性能和自主可控优势,成为企业级数据库的理想选择。

📣 优化方面,每次下载数据库需要填写公司信息,这点稍微有点多余,让不少用户望而止步,不过问题不大,数据库的稳定性、可靠性、兼容性方面表现还是相当给力的,这次试用是windows10专业版的,整体试用感觉不错!✨

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、关于KingbaseES金仓数据库
  • 二、下载安装
    • 2.1 下载数据库
    • 2.2 安装配置
  • 三、可视化工具建库操作
    • 3.1 打开数据库开发管理工具(KStudio)
    • 3.2 建立数据连接
    • 3.3 建立数据库
    • 3.4 建表
    • 3.5 删表
    • 3.6 新增表数据
    • 3.7 查询表数据
    • 3.8 修改表数据
  • 四、数据库JSON系列应用教程
    • 4.1 Json构造函数
      • 4.1.1 ROW_TO_JSON
      • 4.1.2 TO_JSON
      • 4.1.3 TO_JSONB
      • 4.2.4 JSONB_BUILD_OBJECT
      • 4.2.5 JSONB_OBJECT
      • 4.2.7 JSON_OBJECT
  • 五、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档