📝个人主页:哈__
期待您的关注
目录
一、国内主流数据库
国内主流数据库涵盖多种类型,在不同领域发挥着重要作用。分布式数据库中,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