关注

最近发现的一款在线数据库KingbaseES

  📝个人主页:哈__

期待您的关注 

目录

一、国内主流数据库

二、KingbaseES简介

三、KingbaseES在线测试

3.1 检查数据库版本及服务状态

 3.2 创建数据库表格 

3.3 插入数据

 3.4 全部数据查询

3.5 索引

3.6 DML

3.6.1 数据查询

3.7 视图

3.7.1 视图创建

 3.7.2 视图查询

3.7.3 视图删除 


一、国内主流数据库

国内主流数据库涵盖多种类型,在不同领域发挥着重要作用。分布式数据库中,OceanBase 由蚂蚁集团自主研发,采用分布式架构在通用服务器上实现金融级可靠性与数据一致性,具备数据强一致、高可用、高性能等特点,兼容 SQL 标准和主流关系数据库,适用于金融、电商等对数据一致性要求高的场景;TiDB 是 PingCAP 研发的开源分布式关系型数据库,支持在线弹性扩展、强一致性分布式事务,能兼容 MySQL 协议与生态,适合互联网、企业级应用的复杂业务场景;阿里云的 PolarDB 基于存储计算分离架构,软硬件结合实现秒级弹性、海量存储,100% 兼容 MySQL 和 PostgreSQL,也支持 Oracle 语法,适用于需要高性能与灵活扩展的企业级应用。

数据库方面,openGauss 是华为推出的开源关系型数据库,融合企业级场景需求,具备高性能、高可用、高安全等特性,在金融、电信等对可靠性要求高的领域应用广泛;达梦数据库(DM)作为国产自研数据库,支持多种硬件架构和操作系统,具备高性能事务处理能力,在政务、能源等行业有较多落地案例;电科金仓的 KingbaseES 数据库(非开源),兼容多种主流数据库语法,提供高可用集群方案,服务于党政、金融等关键领域。

此外,腾讯云的 CynosDB 也是重要成员,基于分布式存储和计算分离架构,兼容 MySQL 和 PostgreSQL,支持自动扩缩容,适合互联网业务和企业级应用;华为的 GaussDB 系列涵盖多个产品,如 GaussDB (for MySQL) 面向事务型场景,GaussDB (for AP) 专注数据分析,满足不同业务需求。这些数据库凭借自主可控、高性能、高可靠性等优势,在国内各行业数字化转型中扮演着关键角色,不断推动国产数据库技术的发展与应用普及。

二、KingbaseES简介

金仓数据库管理系统KingbaseES(简称KES)是中电科金仓(北京)科技股份有限公司(简称电科金仓)研发的、具有自主知识产权、获得自主原创资质认证的通用数据库产品。

该数据库对于常见的MySQL、SQLServer等都有很好的兼容性。并且拥有在线体验平台。

官方给出的测试地址如下:https://bbs.kingbase.com.cn/index

在页面中找到服务与支持中的体验中心即可在线体验数据库,当然也可以选择下载安装。

这里我进行兼容性测试,使用的是MySQL。

三、KingbaseES在线测试

进入到上方的页面,能看到是在线体验平台。我使用的是MySQL的测试,因为我使用MySQL比较多。点击开始体验,跟着流程来。

3.1 检查数据库版本及服务状态

 可以看到,现在用的数据库驱动是MySQL。

 3.2 创建数据库表格 

这些DDL语言已经很熟悉了。在这里我们创建出三个表格,一个为客户表,另外一个为商品表,还有一个是订单表。

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
);


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)
);



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)
);

3.3 插入数据

把表建完后,我们按照实例中的代码插入一些数据。

 3.4 全部数据查询

 我们分别输入上边的三行代码查看结果。

select * from customers;

select * from items;

 

select * from orders;

 界面还是不错的,比我之前用的那个SQLServer的好多了。

3.5 索引

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

以下是一些示例。

3.6 DML

3.6.1 数据查询

查询是从一个或多个表或视图中检索数据的操作。顶级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名客户

sql复制

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;

 这里的内容不在一一展示了。

3.7 视图

视图是一个或多个表的逻辑表示形式。与表不同,视图既不分配存储空间,也不包含数据,而是通过定义的一个查询,从它所引用的基表中提取或派生出数据。视图的数据来自它所依赖基表,基表可以是表或其他视图。在视图上执行的所有操作实际上都指向基表。

3.7.1 视图创建

通过create view命令来进行创建视图,示例如下

  • 销售统计视图

功能:按日期汇总订单金额和数量。


CREATE OR REPLACE 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);

  • 库存预警视图

功能:监控库存量低于 10 的商品。


CREATE OR REPLACE VIEW low_stock_items AS
SELECT 
    i.I_ID,
    i.I_NAME,
    i.I_STOCK
FROM items i
WHERE i.I_STOCK < 60;

  • 客户消费记录视图

功能:展示客户的订单历史和总消费金额。


CREATE OR REPLACE VIEW customer_purchase_history AS
SELECT 
    c.C_NAME,
    o.O_DATE,
    i.I_NAME,
    o.O_QUANTITY,
    o.O_TOTAL_PRICE
FROM customers c
JOIN orders o ON c.C_ID = o.C_ID
JOIN items i ON o.I_ID = i.I_ID;

 3.7.2 视图查询

  • 查询销售统计视图。
SELECT * FROM sales_summary  WHERE order_date = '2023-10-01';
  • 查询库存预警视图。
SELECT * FROM low_stock_items;
  • 查询Alice Smith的订单历史和总消费金额。
SELECT * FROM customer_purchase_history  WHERE C_NAME = 'Alice Smith';

3.7.3 视图删除 

通过drop view命令来进行删除视图对象。

示例

drop view customer_purchase_history;

 除了这些功能外,平台还支持函数、触发器等。大家可以自行测试一下。

转载自CSDN-专业IT技术社区

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/qq_61024956/article/details/148720376

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--