数据库新选择?KingbaseES在线体验详解

欢迎来到我的博客,代码的世界里,每一行都是一个故事

🎏:你只管努力,剩下的交给时间

🏠 :小破站

数据库新选择?KingbaseES在线体验详解

前言

在数据库的世界里,Oracle、MySQL、PostgreSQL等老牌选手早已占据主流地位。但随着国产软件的崛起,KingbaseES作为一款国产自主可控的通用融合数据库产品,逐渐走进了更多企业的视野。作为一个数据库爱好者,我决定亲自体验KingbaseES的在线版本,看看它到底有何独特魅力。没想到,这次体验不仅让我感受到了国产数据库的实力,也让我对未来国产数据库的发展充满期待。

详细内容

1. KingbaseES简介

  • 国产自主研发:KingbaseES由电科金仓自主研发,符合国家信息安全要求,支持国产化软硬件环境。
  • 兼容性强:兼容PostgreSQL,支持丰富的SQL标准和扩展,方便迁移和二次开发。
  • 高性能与高可用:支持分布式架构、读写分离、负载均衡,满足企业级应用需求。
  • 安全保障:内置多层安全机制,包括访问控制、审计、加密等。

2. 在线体验平台介绍

  • KingbaseES官网提供了在线体验平台,无需安装即可通过浏览器操作数据库,适合快速上手和功能试用。
  • 支持SQL语句执行、数据表管理、存储过程调用等基本功能。
  • 提供示例数据库和数据,方便用户直接进行查询和实验。

在线地址:https://bbs.kingbase.com.cn/index,如下图选择服务与支持中的体验中心即可体验

在线体验

进入页面

当你进入 KingbaseES 在线体验平台首页时,会发现它无需本地安装数据库环境,直接通过网页即可在线编写和执行 SQL,快速体验国产数据库的核心功能。平台支持 Oracle、PostgreSQL、MySQL、SQL Server 等多种兼容模式,适合不同用户进行基础功能验证和学习,非常方便上手。

第一步:选择验证

这里你可以选择自己想体验的数据库,然后会弹出服务器兼容验证,直接点击左边的复制,再点击执行即可出现如下画面;

第二步:模式创建

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

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

涉及sql如下

sql 复制代码
# 创建数据库模式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');

第三步:创建表

这一步提供了详细的创建表结构,以及示例表,如订单表。当然还包括表结构的修改,以及数据的插入。

涉及sql如下

sql 复制代码
创建表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
);

第四步:创建索引

创建索引可以显著提升数据库的查询和排序效率,但会占用一定空间并影响写入性能,因此应优先为常用查询、排序或关联字段建立索引,避免滥用。值得一提的是,KingbaseES 在线体验平台还支持通过网页在线创建和管理索引,让用户可以方便地体验和验证索引带来的性能提升。

涉及sql如下

sql 复制代码
# 在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);

第五步:各种查询

KingbaseES 在线体验平台不仅支持基础的 SQL 查询,还可以在线实现多种查询方式,包括简单条件查询、表与表之间的关联查询、分组统计查询以及嵌套的子查询操作。用户无需本地安装数据库环境,就能在网页上灵活编写和执行各类 SQL 语句,全面体验数据库的强大查询能力和丰富功能。

涉及sql如下

sql 复制代码
# with子句
WITH customer_total_amount AS (
    SELECT 
        c.C_NAME,
        SUM(o.O_TOTAL_PRICE) AS total_amount
    FROM customers c
    JOIN orders o ON c.C_ID = o.C_ID
    GROUP BY c.C_NAME
)
SELECT * 
FROM customer_total_amount
ORDER BY total_amount DESC
LIMIT 5;

第六步:视图创建和管理

在 KingbaseES 在线体验平台中,用户还可以通过网页方便地创建和管理视图。视图可以将复杂查询结果封装成虚拟表,简化后续的数据访问和分析。平台支持在线编写视图的创建语句,并能直接查看和调用已创建的视图,帮助用户更高效地组织和复用查询逻辑,提升数据处理的灵活性和便捷性。

涉及sql如下:

sql 复制代码
# 销售统计视图
# 功能:按日期汇总订单金额和数量。
CREATE VIEW sales_summary AS
SELECT 
    DATE(o.O_DATE) AS order_date,
    COUNT(o.O_ID) AS order_count,
    SUM(o.O_TOTAL_PRICE) AS total_sales
FROM orders o
GROUP BY DATE(o.O_DATE);

第七步:函数创建与使用

在 KingbaseES 在线体验平台中,用户还可以在线创建和调用自定义函数。通过编写 SQL 或 PL/SQL 语句,用户能够将常用的计算逻辑或业务规则封装为函数,方便在查询和数据处理过程中重复使用。平台支持函数的创建、查看和调用,极大提升了数据处理的灵活性和开发效率。

涉及sql如下:

sql 复制代码
# 计算订单折扣金额
CREATE OR REPLACE FUNCTION calculate_discount_amount(_o_id INT)
RETURNS DECIMAL(8,2) AS $$
DECLARE 
    total_price DECIMAL(8,2);
BEGIN
    -- 从 orders 表中获取订单的总价
    SELECT O_TOTAL_PRICE INTO total_price 
    FROM orders 
    WHERE O_ID = _o_id;
    
    -- 假设折扣率为 10%
    RETURN total_price * 0.10;
END$$
LANGUAGE plpgsql;

第八步:触发器的使用

在 KingbaseES 在线体验平台中,用户同样可以在线创建和管理触发器。通过触发器,用户可以在表的数据插入、更新或删除等操作发生时,自动执行自定义的逻辑,实现数据自动校验、日志记录等功能。平台支持触发器的编写、查看和调试,让数据库自动化处理能力更加灵活和强大。

涉及sql如下:

sql 复制代码
# 插入触发器
# 功能:每当插入一条新订单时,触发器会从商品表中减去相应数量的商品库存。
\set SQLTERM /
CREATE TRIGGER update_stock_AFTER_INSERT 
AFTER INSERT ON orders
FOR EACH ROW
BEGIN
    UPDATE items 
    SET I_STOCK = I_STOCK - NEW.O_QUANTITY 
    WHERE I_ID = NEW.I_ID;
END;
/

个人demo实现

这个 Demo 以"用户下单"为业务场景,带你体验 KingbaseES 数据库的表创建、数据插入、索引优化、复杂查询和视图功能。适合初学者快速上手数据库的核心操作。

第1步:创建相关表

目的:建立用户表和订单表,模拟一个简单的电商业务数据结构。

sql 复制代码
-- 创建用户表,存储用户基本信息
CREATE TABLE users (
    id SERIAL PRIMARY KEY,           -- 用户ID,自增主键
    username VARCHAR(50) NOT NULL,   -- 用户名
    age INT,                         -- 年龄
    city VARCHAR(50)                 -- 所在城市
);

-- 创建订单表,存储用户下的订单
CREATE TABLE orders (
    id SERIAL PRIMARY KEY,           -- 订单ID,自增主键
    user_id INT,                     -- 下单用户ID
    product VARCHAR(100),            -- 商品名称
    amount DECIMAL(10,2),            -- 订单金额
    order_date DATE,                 -- 下单日期
    FOREIGN KEY (user_id) REFERENCES users(id)  -- 外键关联用户表
);

说明:

  • users 表保存用户信息,orders 表保存订单信息,通过 user_id 关联。

  • 这样设计便于后续做多表查询和数据分析。

第2步:插入测试数据

目的:为后续查询和演示准备一些样例数据。

sql 复制代码
-- 插入用户数据
INSERT INTO users (username, age, city) VALUES
('Alice', 28, 'Beijing'),
('Bob', 35, 'Shanghai'),
('Carol', 22, 'Guangzhou');

-- 插入订单数据
INSERT INTO orders (user_id, product, amount, order_date) VALUES
(1, 'Laptop', 5999.00, '2024-06-01'),
(1, 'Mouse', 99.00, '2024-06-02'),
(2, 'Phone', 3999.00, '2024-06-03'),
(3, 'Book', 49.00, '2024-06-04');

第3步:创建索引

目的:为订单表的 user_id 字段创建索引,加速用户订单的查询。

sql 复制代码
-- 为 orders 表的 user_id 字段创建索引
CREATE INDEX idx_orders_user_id ON orders(user_id);

说明:

  • 有了索引,后续通过 user_id 查询订单会更快,体验索引带来的性能提升。

第4步:复合查询(多表关联+条件+排序)

目的:体验 SQL 的多表关联、条件筛选和排序功能。

sql 复制代码
-- 查询所有来自北京的用户及其订单信息,按订单金额降序排列
SELECT u.username, u.city, o.product, o.amount, o.order_date
FROM users u
JOIN orders o ON u.id = o.user_id
WHERE u.city = 'Beijing'
ORDER BY o.amount DESC;

说明:

  • 通过 JOIN 关联用户和订单表,筛选出北京用户的订单,并按金额从高到低排序。

  • 这一步可以体验 KingbaseES 对多表查询和排序的支持。

第5步:创建视图,简化查询

目的:将常用的复杂查询封装成视图,方便后续直接调用。

第6步:修改表数据

目的:体验如何更新表中的数据,比如修改用户的城市信息或订单金额。

sql 复制代码
-- 将用户名为 Alice 的城市改为 Shanghai
UPDATE users SET city = 'Shanghai' WHERE username = 'Alice';

-- 将订单金额小于100的订单金额统一改为 88.00
UPDATE orders SET amount = 88.00 WHERE amount < 100;

第7步:删除表数据

目的:体验如何删除表中的部分数据,比如删除某个用户或订单。

sql 复制代码
-- 先删除 Bob 的所有订单
DELETE FROM orders WHERE user_id = (SELECT id FROM users WHERE username = 'Bob');

-- 再删除 Bob 用户
DELETE FROM users WHERE username = 'Bob';

说明:

  • DELETE 语句可以根据条件删除一行或多行数据,注意操作不可逆。

第8步:删除表

目的:体验如何彻底删除表结构和数据。

sql 复制代码
-- 删除订单表
DROP TABLE orders;

-- 删除用户表
DROP TABLE users;

-- 删除视图
DROP VIEW user_order_view;

总结

总的来说,KingbaseES 在线体验平台就像数据库界的"自助餐厅",不但能让你随手点单(写 SQL),还能让你现场DIY各种"菜品"(索引、视图、函数、触发器),每一样都能即点即试、现学现用。体验一圈下来,既饱了眼福又涨了知识,操作简单还不用洗碗------这波在线体验,真是既轻松又有料!好了,今天的"云端数据库游乐场"就逛到这里,欢迎大家亲自上手体验一番!

相关推荐
isNotNullX43 分钟前
什么是数据清洗?数据清洗有哪些步骤?
大数据·数据库·数据仓库·数据治理·元数据
雾林小妖1 小时前
Python+pymysql中select count(*)/select *使用方式
数据库·sql
你是橙子那我是谁1 小时前
Redis的list的底层原理
数据库·redis·list
合方圆~小文1 小时前
20倍光学镜头怎么实现20+20倍数实现
数据库·人工智能·硬件工程
阿杰学编程2 小时前
Go 语言中的条件判断和for 循环
java·数据库·golang
文牧之2 小时前
PostgreSQL的扩展lo
运维·数据库·postgresql
我科绝伦(Huanhuan Zhou)2 小时前
MOP数据库备份脚本生成工具
前端·css·数据库
步行cgn2 小时前
MySQL 中 DISTINCT 去重的核心注意事项详解
数据库·mysql
南棱笑笑生2 小时前
20250617在ubuntu20.04.6下编译飞凌OK3576-C_Linux6.1.75_用户资料_R1(更新日期_20241014)
数据库
花开月满西楼3 小时前
Android实例项目【智能家居系统】实现数据库登录注册+动画效果+网页跳转+短信发送!!!
android·数据库·智能家居