当前位置: 首页 > news >正文

KingbaseES聚焦产品上线

KingbaseES聚焦产品上线:金仓数据库在线体验平台上线,开启数据库实践新征程

在这里插入图片描述

KingbaseES 在线体验平台是为数据库使用者、开发者、架构师及 DBA 打造的轻量化实践平台,无需本地安装数据库环境,通过浏览器即可快速上手,降低技术探索门槛,加速对金仓数据库功能特性的验证与学习,助力技术预研、选型验证及新手能力提升 。

KingbaseES在线体验平台注册

1、注册KingbaseES官方账户

在这里插入图片描述

2、手机号注册即可

在这里插入图片描述

3、服务与支持-KingbaseES在线体验平台

在这里插入图片描述

4、即可完成在线体验

在这里插入图片描述

KingbaseES在线体验平台体验

索引

索引是一种与表相关联的数据结构,是为了提高数据检索的性能而建立的。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视图查看相关索引索引

示例:sql复制

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;

视图

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

视图创建

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

  • 销售统计视图

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

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);
  • 库存预警视图

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

CREATE VIEW low_stock_items AS
SELECT i.I_ID,i.I_NAME,i.I_STOCK
FROM items i
WHERE i.I_STOCK < 60;
  • 客户消费记录视图

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

CREATE 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;
视图查询
  • 查询销售统计视图
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';
视图信息查询

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

select * from sys_views where schemaname='public';
删除视图

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

drop view customer_purchase_history;

函数

SQL函数在KingbaseES数据库中作为内置组件存在,适用于多种SQL语句,需注意区分于由PL/SQL编写的用户自定义函数

调用这些SQL函数时,若参数类型不符,KingbaseES会自动将其转换为函数所需的数据类型,确保执行无碍

创建函数

示例:计算订单的折扣金额

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;

查看订单ID=1的原价

SELECT * from orders where o_id=1; 

查看订单 ID=1 的折扣金额

SELECT calculate_discount_amount(1) AS discount_amount; 

2599.98*0.1=259.9980,符合预期

触发器

触发器通过在数据操作时自动执行任务,强化了数据完整性和系统的自动化能力。合理设计和使用触发器,可以提升应用的效率、可靠性和安全性,但在开发和维护过程中需综合考虑性能影响和复杂性问题。

下面已一个简单示例来说明

创建触发器

示例

  • 插入触发器

功能:每当插入一条新订单时,触发器会从商品表中减去相应数量的商品库存

\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;
/

查看当前库存情况

select * from items;

商品编号为1的库存为50

往order订单表中插入一条数据

INSERT INTO orders VALUES('11','2023-11-01', 1, 1, 1, 200),  

再试试查看订单情况

select * from items;

商品编号为1的库存为49,证明触发器生效了

删除触发器
drop trigger update_stock_AFTER_INSERT;

总结

KingbaseES 中,索引作为提升数据检索性能的数据结构,可通过CREATE INDEX建立 B-Tree、组合或唯一索引等,并支持查看、修改、重建及删除操作;查询操作涵盖简单查询、关联查询、分组查询、子查询及 WITH 子句等类型,能从表或视图中高效检索数据;视图是基表的逻辑映射,不存储实际数据,可通过CREATE VIEW创建销售统计、库存预警等视图以简化复杂查询;函数通过 PL/pgSQL 编写,如calculate_discount_amount函数可计算订单折扣金额;触发器在数据操作时自动执行,例如插入订单时触发库存更新,通过CREATE TRIGGER创建后可通过DROP TRIGGER删除,这些功能共同强化了数据库的性能、安全性与自动化能力。

http://www.xdnf.cn/news/1195777.html

相关文章:

  • docker与k8s的容器数据卷
  • 自由学习记录(74)
  • 多租户Kubernetes集群架构设计实践——隔离、安全与弹性扩缩容
  • MYSQL--再谈间隙锁和临键锁
  • RabbitMq 常用命令和REST API
  • 商品中心—1.B端建品和C端缓存
  • Python-初学openCV——图像预处理(四)——滤波器
  • 命令行和neovim的git操作软件-lazygit
  • sealos 方式安装k8s5节点集群
  • 自动标注软件X-AnyLabeling的使用教程
  • 基于动态增强的 LLM 置信度方法研究
  • C语言中:形参与实参的那些事
  • [SAP ABAP] ALV报表练习4
  • Matlab自学笔记六十五:解方程的数值解法(代码速成)
  • 文件IO——bmp图像处理
  • 磁悬浮轴承转子不平衡质量控制策略设计:原理、分析与智能实现
  • 基于java的在线教育平台管理系统、在线学习系统的设计与实现
  • 零基础学习性能测试第三章:jmeter性能组件应用(事件,并发,定时器)
  • 哈尔滨←→南昌的铁路要道
  • AWD的攻击和防御手段
  • idea中无法删除模块,只能remove?
  • 2025年7月26日训练日志
  • 最优估计准则与方法(4)最小二乘估计(LS)_学习笔记
  • 幸福网咖订座点餐小程序的设计与实现
  • element-plus安装以及使用
  • 《基于雅可比矢量近似的EIT触觉传感灵敏度非均匀校正》论文解读
  • 微分方程入门之入门之入门,纯笔记
  • 实现网页访问/接口调用KernelMemory
  • S7-200 SMART 数字量 I/O 组态指南:从参数设置到实战案例
  • Ubuntu系统 系统盘和数据盘扩容具体操作