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

🎏:你只管努力,剩下的交给时间
🏠 :小破站
数据库新选择?KingbaseES在线体验详解
- 前言
- 详细内容
- 1. KingbaseES简介
- 2. 在线体验平台介绍
- 在线体验
- 进入页面
- 第一步:选择验证
- 第二步:模式创建
- 第三步:创建表
- 第四步:创建索引
- 第五步:各种查询
- 第六步:视图创建和管理
- 第七步:函数创建与使用
- 第八步:触发器的使用
- 个人demo实现
- 第1步:创建相关表
- 第2步:插入测试数据
- 第3步:创建索引
- 第4步:复合查询(多表关联+条件+排序)
- 第5步:创建视图,简化查询
- 第6步:修改表数据
- 第7步:删除表数据
- 第8步:删除表
- 总结
前言
在数据库的世界里,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如下
# 创建数据库模式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如下
创建表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如下
# 在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如下
# with子句
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;
第六步:视图创建和管理
在 KingbaseES 在线体验平台中,用户还可以通过网页方便地创建和管理视图。视图可以将复杂查询结果封装成虚拟表,简化后续的数据访问和分析。平台支持在线编写视图的创建语句,并能直接查看和调用已创建的视图,帮助用户更高效地组织和复用查询逻辑,提升数据处理的灵活性和便捷性。
涉及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如下:
# 计算订单折扣金额
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如下:
# 插入触发器
# 功能:每当插入一条新订单时,触发器会从商品表中减去相应数量的商品库存。
\set SQLTERM /
CREATE TRIGGER update_stock_AFTER_INSERT
AFTER INSERT ON orders
FOR EACH ROW
BEGINUPDATE items SET I_STOCK = I_STOCK - NEW.O_QUANTITY WHERE I_ID = NEW.I_ID;
END;
/
个人demo实现
这个 Demo 以“用户下单”为业务场景,带你体验 KingbaseES 数据库的表创建、数据插入、索引优化、复杂查询和视图功能。适合初学者快速上手数据库的核心操作。
第1步:创建相关表
目的:建立用户表和订单表,模拟一个简单的电商业务数据结构。
-- 创建用户表,存储用户基本信息
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, -- 下单用户IDproduct VARCHAR(100), -- 商品名称amount DECIMAL(10,2), -- 订单金额order_date DATE, -- 下单日期FOREIGN KEY (user_id) REFERENCES users(id) -- 外键关联用户表
);
说明:
-
users 表保存用户信息,orders 表保存订单信息,通过 user_id 关联。
-
这样设计便于后续做多表查询和数据分析。
第2步:插入测试数据
目的:为后续查询和演示准备一些样例数据。
-- 插入用户数据
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 字段创建索引,加速用户订单的查询。
-- 为 orders 表的 user_id 字段创建索引
CREATE INDEX idx_orders_user_id ON orders(user_id);
说明:
- 有了索引,后续通过 user_id 查询订单会更快,体验索引带来的性能提升。
第4步:复合查询(多表关联+条件+排序)
目的:体验 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步:修改表数据
目的:体验如何更新表中的数据,比如修改用户的城市信息或订单金额。
-- 将用户名为 Alice 的城市改为 Shanghai
UPDATE users SET city = 'Shanghai' WHERE username = 'Alice';-- 将订单金额小于100的订单金额统一改为 88.00
UPDATE orders SET amount = 88.00 WHERE amount < 100;
第7步:删除表数据
目的:体验如何删除表中的部分数据,比如删除某个用户或订单。
-- 先删除 Bob 的所有订单
DELETE FROM orders WHERE user_id = (SELECT id FROM users WHERE username = 'Bob');-- 再删除 Bob 用户
DELETE FROM users WHERE username = 'Bob';
说明:
- DELETE 语句可以根据条件删除一行或多行数据,注意操作不可逆。
第8步:删除表
目的:体验如何彻底删除表结构和数据。
-- 删除订单表
DROP TABLE orders;-- 删除用户表
DROP TABLE users;-- 删除视图
DROP VIEW user_order_view;
总结
总的来说,KingbaseES 在线体验平台就像数据库界的“自助餐厅”,不但能让你随手点单(写 SQL),还能让你现场DIY各种“菜品”(索引、视图、函数、触发器),每一样都能即点即试、现学现用。体验一圈下来,既饱了眼福又涨了知识,操作简单还不用洗碗——这波在线体验,真是既轻松又有料!好了,今天的“云端数据库游乐场”就逛到这里,欢迎大家亲自上手体验一番!