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

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

在这里插入图片描述
在这里插入图片描述

文章目录

  • 一、关于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.6 JSON_BUILD_OBJECT
      • 4.2.7 JSON_OBJECT
  • 五、总结
  • 致谢

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完整版金仓数据库。

下载地址:https://download.kingbase.com.cn/xzzx/index.htm

国产数据库崛起:从零到精通!KingbaseES金仓数据库超详细安装使用指南
    这里下载好的是iso镜像文件,直接双击打开,然后把内容复制出来。

在这里插入图片描述

2.2 安装配置

    单击 KINGBASE.EXE 开始安装!

在这里插入图片描述
    我这里选择默认的中文安装,点击 确定

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

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

国产数据库崛起:从零到精通!KingbaseES金仓数据库超详细安装使用指南
    我这里选择的完全安装,点击 下一步

国产数据库崛起:从零到精通!KingbaseES金仓数据库超详细安装使用指南
    我这里选择试用,点击 下一步

国产数据库崛起:从零到精通!KingbaseES金仓数据库超详细安装使用指南
    可以自定义安装路径,点击 下一步

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

国产数据库崛起:从零到精通!KingbaseES金仓数据库超详细安装使用指南
    默认数据文件就行,点击 下一步

国产数据库崛起:从零到精通!KingbaseES金仓数据库超详细安装使用指南
国产数据库崛起:从零到精通!KingbaseES金仓数据库超详细安装使用指南
    填写相关配置信息,system的密码自定义,字符集编码,选择的是UTF8;数据库兼容模式选择的是MySql;是否大小写敏感选择的是NO,存储块大小选择的是8K,点击 完成

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

三、可视化工具建库操作

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

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

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

3.2 建立数据连接

    点击菜单 数据库新建连接

国产数据库崛起:从零到精通!KingbaseES金仓数据库超详细安装使用指南
    填写好密码,点击测试链接,提示连接成功,并展示服务版本配置和驱动相关信息。

3.3 建立数据库

    右键 数据库新建数据库

国产数据库崛起:从零到精通!KingbaseES金仓数据库超详细安装使用指南    填写基本属性信息
国产数据库崛起:从零到精通!KingbaseES金仓数据库超详细安装使用指南
    数据库的创建代码

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;

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

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

3.4 建表

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

CREATE TABLE \"public\".\"jsontable\" ( \"id\" integer NULL, \"jsondata\" json NULL, \"jsonvarchar\" varchar NULL, \"jsonarray\" json NULL);

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

3.5 删表

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

DROP TABLE \"public\".\"jsontable\"

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

3.6 新增表数据

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

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]\');

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

3.7 查询表数据

    打开 SQL编辑器输入查询表数据SQL语句点击执行。表jsontable的数据就显示了。
国产数据库崛起:从零到精通!KingbaseES金仓数据库超详细安装使用指南

3.8 修改表数据

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

UPDATE `jsontable` SET id=4 WHERE id=1

国产数据库崛起:从零到精通!KingbaseES金仓数据库超详细安装使用指南
    金仓数据库的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构造函数。

准备数据,上面增删改查的时候数据已经教大家新增了: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层元素之间增加换行。

  • 用法描述:
row_to_json(record [, pretty_bool])
  • 示例描述:
    在这里插入图片描述
    国产数据库崛起:从零到精通!KingbaseES金仓数据库超详细安装使用指南
    国产数据库崛起:从零到精通!KingbaseES金仓数据库超详细安装使用指南
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格式的数据。

  • 用法描述:
to_json(anyelement)
  • 示例描述:
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。

  • 用法描述:
to_jsonb(anyelement)
  • 示例描述:
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 对象,通过转换,该参数列表由交替出现的键和值构成。
注意:参数列表的元素个数必须为偶数

  • 用法描述:
jsonb_build_object( VARIADIC \"any\")
  • 示例描述:
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:
jsonb_object(text[])---text数组必须包含偶数个元素

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

  • 示例描述1:
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:
jsonb_object( keys text[], values text[])keys数组和values数组维数需要一致

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

  • 示例描述2:
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 对象,通过转换,该参数列表由交替出现的键和值构成。
注意:参数列表的元素个数必须为偶数

  • 用法描述:
json_build_object( VARIADIC \"any\")
  • 示例描述:
参照JSONB_BUILD_OBJECT使用示例

4.2.7 JSON_OBJECT

  • 功能描述:

以JSON对象形式返回输入的键值对(可为空)。当任意键名为NULL或者参数个数为单数时报错。
使用前需要创建mysql_json插件。
mysql_json是KingbaseES的一个扩展插件,主要定义了兼容mysql的json系列操作函数。默认不加载mysql_json扩展插件。

  • 用法描述:
json_object([key,value[,key,value,…]])
  • 示例描述:
加载插件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专业版的,整体试用感觉不错!✨

致谢

        亲爱的朋友,无论前路如何漫长与崎岖,都请怀揣梦想的火种,因为在生活的广袤星空中,总有一颗属于你的璀璨星辰在熠熠生辉,静候你抵达。

         愿你在这纷繁世间,能时常收获微小而确定的幸福,如春日微风轻拂面庞,所有的疲惫与烦恼都能被温柔以待,内心永远充盈着安宁与慰藉。

        至此,文章已至尾声,而您的故事仍在续写,不知您对文中所叙有何独特见解?期待您在心中与我对话,开启思想的新交流。


在这里插入图片描述


     亲,码字不易,动动小手,欢迎 点赞 ➕ 收藏,如 🈶 问题请留言(评论),博主看见后一定及时给您答复,💌💌💌


- - - E N D - - -