零门槛探索国产数据库硬核实力 —— 金仓数据库在线体验平台体验记

1、 金仓数据库在线体验平台

最近,我发现了一个超棒的数据库宝藏 —— 金仓数据库在线体验平台。它在金仓社区上线后,凭借 “零门槛体验 + 多场景交互” 的特点,迅速吸引了众多数据库爱好者的目光,我也忍不住去体验了一番。

2、 如何使用

打开浏览器,输入网址https://bbs.kingbase.com.cn,进入金仓社区,按照【服务与支持】→【KingbaseES 在线体验平台】的位置导航,轻松找到了这个平台。

无需安装任何软件,直接就能开启企业级数据库的探索之旅,这种便捷性真是让人惊喜,对于我这种不想被繁琐安装步骤束缚的人来说,简直太友好了。

进入平台后,最让我眼前一亮的是它独创的 Oracle/PostgreSQL/MySQL/SQL Server 四模合一环境。在开启体验之前,可以根据自己的需求和熟悉程度自由选择数据库模式,这一点极大地满足了不同用户的多样化需求。我先尝试了 MySQL 模式,惊喜地发现它完美支持 AUTO_INCREMENT、LIMIT 分页、ON DUPLICATE KEY UPDATE 等功能,这些都是在实际开发中经常用到的,而且使用起来和原生 MySQL 几乎没有差别,系统视图也支持 information_schema.tables 视图,结构与原库一致,让人倍感亲切。

接着,我切换到 Oracle 模式,原生运行 ROWNUM 分页、DECODE () 函数及 PL/SQL 块的特性让我轻松完成了一些复杂的数据处理任务。

再试试 SQL Server 模式,T-SQL 流程控制(如 IF...ELSE)及全局临时表(## 前缀)的兼容,让我能够顺畅地进行逻辑编程和数据存储管理。平台实现了四大主流数据库 95% 以上核心特性兼容,这种强大的兼容性,无论是对于技术预研还是选型验证,都提供了极大的便利。

对于新手来说,平台的场景化引导教学功能堪称贴心。跟随向导任务,我从零开始创建模式、表、函数、触发器等,每一个步骤都有详细的说明和引导,就像有一位专业的老师在身边指导一样。在这个过程中,我快速熟悉了金仓数据库的各项操作,原本觉得复杂的数据库操作,在这样的引导下变得简单易懂,大大降低了学习成本。

平台的即写即验沙箱功能更是让我眼前一亮。选定兼容模式后,我直接输入 SQL 语句,系统会自动检测语法并即时输出执行结果,配合 “零配置 + 场景化” 设计,我仅仅用了 15 分钟,就完成了从建表到复杂查询的全流程操作。这种实时交互的模式,让我能够快速验证自己的想法,在技术选型、迁移预研时,再也不用花费大量时间搭建环境,直接在沙箱中就能高效完成验证,工作效率得到了大幅提升。

这次体验金仓数据库在线体验平台,让我深刻感受到了国产数据库的硬核实力。

它不仅功能强大、兼容性高,而且操作便捷、对新手友好,无论是数据库使用者、开发者、架构师还是 DBA,都能在这里找到适合自己的学习和实践方式。如果你也对数据库感兴趣,不妨来金仓社区,开启这场零门槛的云端实践之旅,相信你一定会和我一样,被它的魅力所折服!

演示窗口,左边是教程,右边是练习窗体:

3、 从0到1 展示各种功能

模式的创建和管理

模式又被称为schema,它是用于组织和命名数据库对象(如表、视图、函数等)的逻辑容器。 模式是数据库中组织和管理数据库对象的重要机制,它提供了一种逻辑上的命名空间,具备如下优点:

可以避免命名冲突,允许在同一数据库中的不同模式下创建同名对象。 便于权限管理和隔离,每个模式分配不同的访问权限,以此控制用户或角色对特定模式中对象的访问权限,提高数据库的安全性。

下面将介绍模式常见的集中使用方式:

创建模式

CREATE SCHEMA 用于在当前数据库中创建模式,创建模式时指定的模式名必须与当前数据库中任何现有模式的名称不同。

示例: 创建数据库模式s1,s2。

create schema s1;
create schema s2;

查看模式列表

可以通过查看sys_namespace视图查看当前数据库的模式信息。

select * from sys_namespace where nspname in ('s1','s2');

使用模式

若要在指定模式下创建对象或者访问指定模式下的对象,需要使用模式名限定的对象名。该名称包含模式名以及对象名,他们之间用 . 号分开。

示例:

在S1下创建test表。

create table s1.test(id int,name varchar(20) );

向表中插入数据。

insert into s1.test values ('1','kingbase');

查询表中数据。

select * from s1.test;

更改模式

kingbaseES支持使用 alter schema 语句可以更改模式的相关属性。

示例:

将schema s2重新命名为s2_new。

alter schema s2 rename to s2_new;

查询新模式信息

select * from sys_namespace where nspname='s2_new';

删除模式

kingbaseES支持使用 drop schema 命令进行删除。

drop schema s2_new cascade ;

表是KingbaseES数据库中最基本的操作对象。一个表描述了一个实体对象,它记录了实体对象的重要信息。KingbaseES数据库表对象类型是关系表,关系表由简单的列组成,是最常见的表类型。

表的管理包括创建表、修改表和删除表等操作,以及普通表、分区表等的管理。

创建表

创建表customers客户表

CREATE TABLE customers (C_ID INT AUTO_INCREMENT PRIMARY KEY,C_NAME VARCHAR(50) NOT NULL,C_ADDRESS TEXT NOT NULL,C_PHONE VARCHAR(15) NOT NULL
);

创建分区表items商品表

CREATE TABLE items (I_ID INT PRIMARY KEY,I_NAME VARCHAR(100) NOT NULL,I_PRICE DECIMAL(10,2) NOT NULL,I_STOCK INT NOT NULL
)
PARTITION BY RANGE (I_PRICE)
(PARTITION p_low VALUES LESS THAN (200),PARTITION p_medium VALUES LESS THAN (500),PARTITION p_high VALUES LESS THAN (1000),PARTITION p_high_price VALUES LESS THAN (MAXVALUE)
);

创建orders订单表表


CREATE TABLE orders (O_ID INT ,O_DATE DATE NOT NULL,C_ID INT NOT NULL,I_ID INT NOT NULL,O_QUANTITY INT NOT NULL,O_TOTAL_PRICE DECIMAL(10,2) NOT NULL,FOREIGN KEY (C_ID) REFERENCES customers(C_ID),FOREIGN KEY (I_ID) REFERENCES items(I_ID)
);

修改表结构

使用ALTER TABLE语句,给订单表添加一个主键。

ALTER TABLE orders ADD CONSTRAINT pk_orders PRIMARY KEY(O_ID);

使用ALTER TABLE语句,给订单表添加一个列comment列。

alter table orders add column  comment varchar(20);

插入示例数据

使用INSERT 命令用于向表中插入数据。

示例

向customers表中插入数据。

INSERT INTO customers (C_NAME, C_ADDRESS, C_PHONE) VALUES
('Alice Smith', '123 Main St, City A', '123-456-7890'),
('Bob Johnson', '456 Oak Ave, City B', '234-567-8901'),
('Charlie Brown', '789 Pine Rd, City C', '345-678-9012'),
('Diana White', '321 Elm St, City D', '456-789-0123'),
('Edward Green', '654 Birch Dr, City E', '567-890-1234'),
('Frances Hill', '987 Maple Ln, City F', '678-901-2345'),
('George Wright', '432 Cedar Rd, City G', '789-012-3456'),
('Helen King', '135 Willow St, City H', '890-123-4567'),
('Ian Miller', '246 Oak Dr, City I', '901-234-5678'),
('Judy Davis', '368 Pine Ave, City J', '012-345-6789');

向items表中插入数据。

INSERT INTO items (O_IDI_ID, I_NAME, I_PRICE, I_STOCK) VALUES
('1','Laptop', 1299.99, 50),
('2','Phone', 699.99, 75),
('3','Tablet', 299.99, 30),
('4','Monitor', 199.99, 100),
('5','Keyboard', 79.99, 80),
('6','Mouse', 49.99, 100),
('7','Speaker', 129.99, 40),
('8','Headphones', 159.99, 60),
('9','Printer', 239.99, 30),
('10','Scanner', 179.99, 40);

向custimers表中插入数据。


INSERT INTO orders (O_ID, O_DATE, C_ID, I_ID, O_QUANTITY, O_TOTAL_PRICE) VALUES
('1','2023-10-01', 1, 1, 2, 2599.98),  
('2','2023-10-02', 2, 2, 1, 699.99),   
('3','2023-10-03', 3, 3, 3, 899.97),   
('4','2023-10-04', 4, 4, 5, 999.95),   
('5','2023-10-05', 5, 5, 4, 319.96),   
('6','2023-10-06', 6, 6, 2, 99.98),    
('7','2023-10-07', 7, 7, 1, 129.99),   
('8','2023-10-08', 8, 8, 3, 479.97),   
('9','2023-10-09', 9, 9, 1, 239.99),   
('10','2023-10-10', 10, 10, 5, 899.95); 

索引

索引是一种与表相关联的数据结构,是为了提高数据检索的性能而建立的。KingbaseES索引为表数据提供快速存取路径。索引适用于一范围的行查询或指定行的查询。索引可建立在一个表的一列或多列上,一旦建立,将由 KingbaseES 数据库自动维护和使用,对用户是完全透明的,系统的优化器会根据统计信息确定是否使用索引来提高系统性能。索引逻辑和物理上都独立于与其相关联的表数据。因此,可以删除或创建索引,但不会对索引表产生影响。

创建索引

kingbaseES使用 create index 语句来创建普通b-tree索引。

示例

在customers表的c_name列上创建索引。

create index indx_c_name on customers(c_name);

在itms分区表中的i_price列上创建本地索引。

 create index indx_i_price  on items (i_price) local;

在order表的o_id和o_date列上创建组合索引。

create index idx_o_i_d on orders (o_id, o_date);

使用create unique index语句在orders表中为o_id列创建唯一索引。

create unique index  o_u_id on  orders (o_id);

查看索引

通过使用select语句查询sys_indexes视图查看相关索引索引。

示例

select * from sys_indexes where schemaname='public';

修改索引

使用alter index语句可以o_u_id索引的相关属性信息。

示例

使用alter index语句将o_u_id索引重命名为indx_rename_u_id:

alter index o_u_id rename to indx_rename_u_id;

使用alter index语句将indx_rename_u_id设置索引填充因子

alter index indx_rename_u_id set (fillfactor = 60);

重建索引

使用reindex index语句重建indx_i_price索引:

reindex index indx_c_name;

使用reindex table语句重建表上所有索引:

reindex table orders;

删除索引

使用 drop index 语句删除索引:

drop index indx_rename_u_id;

查询

查询是从一个或多个表或视图中检索数据的操作。顶级SELECT语句称为查询,嵌套在另一个SQL语句中的查询称为子查询。本节描述一些查询与子查询类型以及如何使用它们。

SELECT 命令的一般语法是:

[WITH with_queries] SELECT select_list FROM table_expression [sort_specification]

示例查询

  • 简单查询

查询所有订单信息。

SELECT O_ID, O_DATE, C_ID, I_ID, O_QUANTITY, O_TOTAL_PRICE FROM orders;
  • 关联查询

查询客户的姓名和他们下的订单总数。

SELECT I_NAME, I_STOCK FROM items GROUP BY I_NAME, I_STOCK;
  • 分组查询

查询每个商品的库存情况(按价格分类)。

SELECT c.C_NAME, COUNT(o.O_ID) AS order_count FROM customers c JOIN orders o ON c.C_ID = o.C_ID GROUP BY c.C_NAME;
  • 子查询

查询订单金额大于 500 的订单信息。


SELECT * FROM orders WHERE O_TOTAL_PRICE > ( SELECT AVG(O_TOTAL_PRICE) FROM orders);
  • with子句

计算每个客户的总消费金额,并筛选出消费金额最高的前5名客户


WITH customer_total_amount AS (SELECT c.C_NAME,SUM(o.O_TOTAL_PRICE) AS total_amountFROM customers cJOIN orders o ON c.C_ID = o.C_IDGROUP BY c.C_NAME
)
SELECT * 
FROM customer_total_amount
ORDER BY total_amount DESC
LIMIT 5;

使用总结

金仓数据库在线体验平台以 “零门槛、高兼容、强交互” 的特点,展现了国产数据库的技术实力。无论是新手学习数据库基础,还是开发者进行技术选型与迁移验证,平台均能提供高效的实践环境。推荐访问金仓社区开启云端数据库探索之旅,体验多模兼容与实时验证的便捷性。

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

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

相关文章

Linux基本操作指令和vim编译器

基本指令 查看日期与日历 data 指令 显示日期 用法1:data CST:China Standard Time 时区,中国标准时间 用法2: data 指定格式 常用格式: “%Y-%m-%d”(%F): 2025-06-16“%H:%M:%S”(%T): 20:19:45“%F%T”用法3&am…

“从HTTP到TCP/IP的旅程“-----深入浅出Java Web通信

先放结构图: 一、引言:网络通信就像寄快递 想象一下我们在网上买了一本书,整个配送过程是这样的: 应用层:你在购物网站填好收货地址(HTTP请求)传输层:快递公司把包裹打包&#xf…

docker build使用代理以实现构建过程中下载Github源码等操作

在通过Dockerfile构建docker容器的过程中,经常会需要在构建过程中拉取Github上的代码。当宿主机配好代理,但容器内是一个隔离的环境,若想在容器内访问,则需再打通容器和宿主机之间的代理配置。 方法一: 若宿主机上的…

Docker 快速搭建一个基于 GPT-Vis 组件的统计图表生成服务

以下是对工具简单介绍: 可以在服务端使用 GPT-Vis 统计图表组件直接渲染成图片支持Docker一键部署,提供统计图表渲染生成API接口支持多种GPT-Vis支持的组件,包括折线图、柱形图、饼图、面积图、条形图、直方图、散点图、词云图、雷达图、思维…

hal库练习1

要求:一个按键实现呼吸灯的控制,一个按键控制LED灯的闪烁,串口发送数据控制灯的开关 定时器配置 1.选择需要的定时器2.配置基础参数(根据时钟树给定时器输入的时钟)3.打开中断4.在主函数里打开中断 定时器扫描按键 …

java线程(4)

程序(program) 是为完成制定任务,用某种语言编写的一组指令的集合.简单的话说:就是我们写的代码. 进程 1.进程是指进行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存空间,当我们使用迅雷,又启动了一个进程,操作系统将为迅雷分配新的内存空间. 2、…

02《F8Framework》核心入口 FF8.cs

FF8.cs类是 F8Framework的核心入口 采用单例模式 提供对各个功能模块的全局访问 【特点】通过静态类FF8统一访问所有功能 1.模块化设计: 每个功能独立 通过 ModuleCenter 统一管理 2.懒加载机制: …

【硬件】相机的硬件测试

相机测试 author: Alla Imatest 提供超过 30 种测试项目,主要包括: 1)图像基础参数‌:MTF(调制传递函数)、畸变、均匀性、动态范围 2)色彩与光学特性‌:白平衡误差、饱和度、gamma …

Profinet与Modbus TCP协议转换技术:西门子S7-1500(主站)和欧姆龙NJ PLC的高效数据交换

一、项目背景 某大型现代化智慧农业养殖场致力于打造全方位智能化的养殖环境。其养殖系统中,环境监测与调控部分选用了西门子S7-1500PLC作为Profinet协议主站。该PLC凭借强大的运算能力和丰富的功能模块,能够精准地采集和处理养殖场内的温度、湿度、空气…

希尔伯特变换,实信号转复信号的FPGA实现思路

希尔伯特变换将实信号转复信号的原理 将实信号的相位推迟90度后作为复信号的虚部。 错误实现方式 实信号经过希尔伯特滤波后得到复信号的虚部,之后直接与实信号组成复信号。而由于滤波器本身会对信号延时,故I路与Q路并不是相差90度,所以此方…

多模态大语言模型演进:从视觉理解到具身智能的技术突破

多模态大语言模型演进:从视觉理解到具身智能的技术突破 多模态大语言模型(MLLMs)正在重塑人工智能的边界,实现从"看见"到"理解"再到"行动"的全链条智能。本文将深入解析苹果最新多模态研究进展,揭示视觉-语言模型十年演进的技术脉络,剖析…

window显示驱动开发—渲染管道

支持 Direct3D 版本 10 的图形硬件可以使用共享可编程着色器核心进行设计。 GPU) (图形处理单元可以编程着色器核心,这些着色器核心可以跨构成呈现管道的功能块进行计划。 这种负载均衡意味着硬件开发人员不需要使用每种着色器类型,而只需要使用执行呈现…

时序数据库Apache IoTDB核心技术深度解析

一、引言 ‌背景‌:5G技术加速了IoT领域的发展,物联网设备数据的收集、存储和计算需求日益增长。Apache IoTDB作为一款专为物联网时序数据设计的软件系统,在2020年被Apache基金会认可为顶级项目。 二、IoT领域发展趋势 ‌5G与IoT‌&#x…

Next.js面试题:API深度解析

Next.js面试题:API深度解析 Next.js 通过 App Router 的引入彻底改变了 Web 开发范式。在这个新时代,深入理解 Next.js 的 API 函数不再只是锦上添花,而是技术面试中的关键区分点。这些函数构成了构建高性能、可扩展、现代化 Web 应用的基石…

Docker-MCP quickstart

项目概述 Docker-MCP 是一个 支持mcp的Docker 管理服务器,它允许 客户端 通过 MCP(Model Control Protocol)接口直接与 Docker 进行交互。该项目提供了一套工具,使 AI 助手能够创建容器、部署 Docker Compose 、获取容器日志以及…

git 的变基操作(适合一个功能进行了多次commit提交,提交记录过多不美观)

git提交的 commit 的记录很多,想多个 commit 进行合并,对代码进行整理,帮助更好的阅读代码 IDEA 的操作步骤: 这里,给出你想进行合并的记录 hash 值,完了点击“Rebase”进行合并 点击后,会进行…

【完整源码+数据集+部署教程】路边广告牌实例分割系统源码和数据集:改进yolo11-SEAMHead

研究背景与意义 研究背景与意义 随着城市化进程的加快,路边广告牌作为重要的商业宣传媒介,越来越多地出现在城市的各个角落。它们不仅承担着信息传播的功能,还对城市的视觉环境产生了深远的影响。然而,随着广告牌数量的激增&…

C++ 中文件 IO 操作详解

在C中,文件操作是通过流(stream)来实现的。标准库提供了三种主要的文件流类来处理文件IO操作: ofstream:用于写入文件(output file stream)ifstream:用于读取文件(input file stream&#xff0…

第32节 Node.js 全局对象

在Node.js中我们可以直接访问到全局对象。 这些对象在所有模块里都是可用的,有些对象不是在全局作用域而是在模块作用域里,这些情况将在本文的内容中进行介绍。 global {Object} 全局命名空间对象。 在浏览器中,全局作用域就是顶级域。如…

Linux文件属性和权限概述-linux026

Linux文件属性和权限概述 Linux 系统作为多用户操作系统,通过文件属性和权限机制来控制不同用户对文件和目录的访问,从而保证系统的安全性。不同的用户对同一文件可以有不同的访问权限,这些权限包括 读取(read)、写入…