当前位置: 首页 > 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.dtcms.com/a/301139.html

相关文章:

  • 卫星图像语义分割与区域相似度比较研究
  • 顺序表算法题
  • 【自动化运维神器Ansible】Ansible常用模块之hostname模块详解
  • Qt C++动态库SDK在Visual Studio 2022使用(C++/C#版本)
  • ae烟雾-分形杂色
  • Python——入门
  • 金融科技里的信用评分、指纹识别、面部识别、虹膜识别
  • 地震成果数据在线可视化功能实现之高级篇
  • 枚举中间位置基础篇
  • Mysql中的索引详解
  • 「iOS」————MRC
  • 【Linux系统编程】环境变量,进程地址空间与进程控制
  • OpenResty 高并发揭秘:架构优势与 Linux 优化实践
  • IIS发布.NET9 API 常见报错汇总
  • 设计模式(九)结构型:组合模式详解
  • STM32的蓝牙通讯(HAL库)
  • 【ELasticsearch】温、冷数据节点能是同一个节点吗
  • 探秘 Nginx 的工作原理
  • Python Pandas.qcut函数解析与实战教程
  • 前后端分离:架构模式与实践
  • 设计模式(十二)结构型:享元模式详解
  • 基于黑马教程——微服务架构解析(一)
  • 20250727让飞凌OK3576-C开发板在Rockchip的原厂Android14下通过耳机播音
  • [AI8051U入门第十步]W5500-客户端
  • JVM工具
  • day062-监控告警方式与Grafana优雅展示
  • Android基础(一) 运行HelloWorld
  • 在 github.com 与 sourceforge.net 上创建免费个人静态网站、博客的区别
  • CART算法-理论部分
  • FreeCAD开发楼梯参数化三维模型和钢格栅