文章目录
一、前言
在数据库领域,KingbaseES(简称KES)作为一款备受关注的国产通用数据库产品,凭借其强大的功能和自主知识产权,逐渐在市场中崭露头角。而金仓数据库在线体验平台的推出,更是为广大开发者和数据库爱好者提供了一个零门槛学习和功能验证的绝佳机会。本文将通过实战测评的方式,深入探索KingbaseES在线体验平台的各项功能,帮助读者快速了解并上手这款优秀的数据库产品。
二、KingbaseES在线体验平台简介
金仓数据库管理系统KingbaseES是由中电科金仓(北京)科技股份有限公司研发的通用数据库产品。它具有自主知识产权,并获得了自主原创资质认证。KingbaseES以其高性能、高可用性和安全性,广泛应用于政府、金融、电信等多个行业。
2.1 平台特色
- 零门槛学习:用户无需在本地安装KingbaseES数据库环境,直接通过浏览器即可进行SQL编写、调试与执行。平台提供了交互式教学场景模板,极大地降低了用户的学习难度和环境搭建的复杂度。
- 功能验证:支持数据库版本的核心特性体验,允许用户自定义SQL语句。同时,内置实时反馈机制,能够显著提升学习效率。
2.2 平台适用人群
- 初学者:对于刚刚接触数据库的初学者来说,KingbaseES在线体验平台是一个理想的起点。它可以帮助用户快速掌握SQL语言的基本语法和操作。
- 开发者:开发者可以通过该平台验证KingbaseES的核心功能,为实际项目开发提供参考和实验环境。
- 数据库管理员:数据库管理员可以利用平台进行性能测试、备份恢复等操作,熟悉KingbaseES的运维管理功能。
三、平台注册与登录
3.1 注册流程
- 访问金仓数据库在线体验平台的官方网站。
- 点击页面右上角的“注册”按钮,进入注册页面。
- 在注册页面中,填写必要的信息,包括用户名、密码、邮箱地址等。
- 点击“注册”按钮,完成注册流程。
3.2 登录流程
- 在平台首页,点击“登录”按钮。
- 输入已注册的用户名和密码,点击“登录”按钮。
- 登录成功后,即可进入平台的主界面。
四、交互式教学场景模板
KingbaseES在线体验平台提供了基础的教学,我们可以按照官方示例一步步操作,帮助你快速掌握数据的基本知识!!!
点击执行,下方就会显示出结果了
接下来我们点击下一步教程
模式的创建和管理
模式又被称为schema,它是用于组织和命名数据库对象(如表、视图、函数等)的逻辑容器。 模式是数据库中组织和管理数据库对象的重要机制,它提供了一种逻辑上的命名空间,具备如下优点:
可以避免命名冲突,允许在同一数据库中的不同模式下创建同名对象。 便于权限管理和隔离,每个模式分配不同的访问权限,以此控制用户或角色对特定模式中对象的访问权限,提高数据库的安全性。
下面将介绍模式常见的集中使用方式:
4.1 创建模式
CREATE SCHEMA 用于在当前数据库中创建模式,创建模式时指定的模式名必须与当前数据库中任何现有模式的名称不同。
示例: 创建数据库模式s1,s2。
create schema s1;
create schema s2;
4.2 查看模式列表
可以通过查看sys_namespace视图查看当前数据库的模式信息。
select * from sys_namespace where nspname in ('s1','s2');
4.3 使用模式
若要在指定模式下创建对象或者访问指定模式下的对象,需要使用模式名限定的对象名。该名称包含模式名以及对象名,他们之间用 . 号分开。
示例:
在S1下创建test表。
create table s1.test(id int,name varchar(20) );
向表中插入数据。
insert into s1.test values ('1','kingbase');
查询表中数据。
select * from s1.test;
4.4 更改模式
kingbaseES支持使用 alter schema 语句可以更改模式的相关属性。
示例:
将schema s2重新命名为s2_new。
alter schema s2 rename to s2_new;
查询新模式信息
select * from sys_namespace where nspname='s2_new';
4.5 删除模式
kingbaseES支持使用 drop schema 命令进行删除。
drop schema s2_new cascade ;
4.6 表管理
表的概念:
- 表是KingbaseES数据库中最基本的操作对象,描述实体对象的重要信息
- 关系表由简单的列组成,是最常见的表类型
创建表
-- 创建客户表
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)
);
修改表
-- 添加主键
ALTER TABLE orders ADD CONSTRAINT pk_orders PRIMARY KEY(O_ID);
-- 添加列
ALTER TABLE orders ADD COLUMN comment VARCHAR(20);
插入数据
-- 插入客户数据
INSERT INTO customers (C_NAME, C_ADDRESS, C_PHONE) VALUES
('Alice Smith', '123 Main St, City A', '123-456-7890'),
...;
-- 插入商品数据
INSERT INTO items (I_ID, I_NAME, I_PRICE, I_STOCK) VALUES
(1,'Laptop', 1299.99, 50),
...;
-- 插入订单数据
INSERT INTO orders (O_ID, O_DATE, C_ID, I_ID, O_QUANTITY, O_TOTAL_PRICE) VALUES
(1,'2023-10-01', 1, 1, 2, 2599.98),
...;
4.7 索引管理
索引概念:
- 提高数据检索性能的数据结构
- 对用户透明,由数据库自动维护
索引操作
-- 创建索引
CREATE INDEX indx_c_name ON customers(c_name);
CREATE INDEX indx_i_price ON items(i_price) LOCAL;
CREATE INDEX idx_o_i_d ON orders(o_id, o_date);
-- 创建唯一索引
CREATE UNIQUE INDEX o_u_id ON orders(o_id);
-- 修改索引
ALTER INDEX o_u_id RENAME TO indx_rename_u_id;
ALTER INDEX indx_rename_u_id SET (fillfactor = 60);
-- 重建索引
REINDEX INDEX indx_c_name;
REINDEX TABLE orders;
-- 删除索引
DROP INDEX indx_rename_u_id;
4.8 查询操作
查询类型
-- 简单查询
SELECT * 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;
-- 子查询
SELECT * FROM orders WHERE O_TOTAL_PRICE > (SELECT AVG(O_TOTAL_PRICE) FROM orders);
-- WITH子句
WITH customer_total_amount AS (...)
SELECT * FROM customer_total_amount ORDER BY total_amount DESC LIMIT 5;
4.9 视图管理
视图操作
-- 创建视图
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);
-- 查询视图
SELECT * FROM sales_summary WHERE order_date = '2023-10-01';
-- 删除视图
DROP VIEW customer_purchase_history;
4.10 函数与触发器
函数
-- 创建函数
CREATE OR REPLACE FUNCTION calculate_discount_amount(_o_id INT)
RETURNS DECIMAL(8,2) AS $$
BEGIN
-- 函数逻辑
END$$
LANGUAGE plpgsql;
-- 调用函数
SELECT calculate_discount_amount(1) AS discount_amount;
触发器
-- 创建触发器
CREATE TRIGGER update_stock_AFTER_INSERT
AFTER INSERT ON orders
FOR EACH ROW
BEGIN
UPDATE items
SET I_STOCK = I_STOCK - NEW.O_QUANTITY
WHERE I_ID = NEW.I_ID;
END;
-- 删除触发器
DROP TRIGGER update_stock_AFTER_INSERT;
五、总结
💡 一句话总结
KingbaseES这个在线体验平台简直太香了!完全不用安装配置,打开浏览器就能玩转企业级数据库,真·零门槛学习神器!👍
🧑💻 适合哪些人?
-
萌新小白:想学数据库但怕麻烦?来这儿就对了!
-
开发老司机:新项目选型?先来这试试水!
-
DBA大佬:想验证新特性?比本地测试方便多了!
🤔 实际体验如何?
-
流畅度:⭐️⭐️⭐️⭐️(偶尔卡顿但能接受)
-
功能完整性:⭐️⭐️⭐️⭐️⭐️(企业版功能全开放)
-
教程学习曲线:⭐️⭐️⭐️⭐️⭐️(内容完整,易上手)