備案號鏈接工信部網(wǎng)站免費創(chuàng)建個人博客網(wǎng)站

🎏:你只管努力,剩下的交給時間
🏠 :小破站
數(shù)據(jù)庫新選擇?KingbaseES在線體驗詳解
- 前言
- 詳細內(nèi)容
- 1. KingbaseES簡介
- 2. 在線體驗平臺介紹
- 在線體驗
- 進入頁面
- 第一步:選擇驗證
- 第二步:模式創(chuàng)建
- 第三步:創(chuàng)建表
- 第四步:創(chuàng)建索引
- 第五步:各種查詢
- 第六步:視圖創(chuàng)建和管理
- 第七步:函數(shù)創(chuàng)建與使用
- 第八步:觸發(fā)器的使用
- 個人demo實現(xiàn)
- 第1步:創(chuàng)建相關(guān)表
- 第2步:插入測試數(shù)據(jù)
- 第3步:創(chuàng)建索引
- 第4步:復合查詢(多表關(guān)聯(lián)+條件+排序)
- 第5步:創(chuàng)建視圖,簡化查詢
- 第6步:修改表數(shù)據(jù)
- 第7步:刪除表數(shù)據(jù)
- 第8步:刪除表
- 總結(jié)
前言
在數(shù)據(jù)庫的世界里,Oracle、MySQL、PostgreSQL等老牌選手早已占據(jù)主流地位。但隨著國產(chǎn)軟件的崛起,KingbaseES作為一款國產(chǎn)自主可控的通用融合數(shù)據(jù)庫產(chǎn)品,逐漸走進了更多企業(yè)的視野。作為一個數(shù)據(jù)庫愛好者,我決定親自體驗KingbaseES的在線版本,看看它到底有何獨特魅力。沒想到,這次體驗不僅讓我感受到了國產(chǎn)數(shù)據(jù)庫的實力,也讓我對未來國產(chǎn)數(shù)據(jù)庫的發(fā)展充滿期待。
詳細內(nèi)容
1. KingbaseES簡介
- 國產(chǎn)自主研發(fā):KingbaseES由電科金倉自主研發(fā),符合國家信息安全要求,支持國產(chǎn)化軟硬件環(huán)境。
- 兼容性強:兼容PostgreSQL,支持豐富的SQL標準和擴展,方便遷移和二次開發(fā)。
- 高性能與高可用:支持分布式架構(gòu)、讀寫分離、負載均衡,滿足企業(yè)級應用需求。
- 安全保障:內(nèi)置多層安全機制,包括訪問控制、審計、加密等。
2. 在線體驗平臺介紹
- KingbaseES官網(wǎng)提供了在線體驗平臺,無需安裝即可通過瀏覽器操作數(shù)據(jù)庫,適合快速上手和功能試用。
- 支持SQL語句執(zhí)行、數(shù)據(jù)表管理、存儲過程調(diào)用等基本功能。
- 提供示例數(shù)據(jù)庫和數(shù)據(jù),方便用戶直接進行查詢和實驗。
在線地址:https://bbs.kingbase.com.cn/index,如下圖選擇服務(wù)與支持中的體驗中心即可體驗
在線體驗
進入頁面
當你進入 KingbaseES 在線體驗平臺首頁時,會發(fā)現(xiàn)它無需本地安裝數(shù)據(jù)庫環(huán)境,直接通過網(wǎng)頁即可在線編寫和執(zhí)行 SQL,快速體驗國產(chǎn)數(shù)據(jù)庫的核心功能。平臺支持 Oracle、PostgreSQL、MySQL、SQL Server 等多種兼容模式,適合不同用戶進行基礎(chǔ)功能驗證和學習,非常方便上手。
第一步:選擇驗證
這里你可以選擇自己想體驗的數(shù)據(jù)庫,然后會彈出服務(wù)器兼容驗證,直接點擊左邊的復制,再點擊執(zhí)行即可出現(xiàn)如下畫面;
第二步:模式創(chuàng)建
模式又被稱為schema,它是用于組織和命名數(shù)據(jù)庫對象(如表、視圖、函數(shù)等)的邏輯容器。 模式是數(shù)據(jù)庫中組織和管理數(shù)據(jù)庫對象的重要機制,它提供了一種邏輯上的命名空間,具備如下優(yōu)點:
可以避免命名沖突,允許在同一數(shù)據(jù)庫中的不同模式下創(chuàng)建同名對象。 便于權(quán)限管理和隔離,每個模式分配不同的訪問權(quán)限,以此控制用戶或角色對特定模式中對象的訪問權(quán)限,提高數(shù)據(jù)庫的安全性。
涉及sql如下
# 創(chuàng)建數(shù)據(jù)庫模式s1,s2
create schema s1;
create schema s2;
# 可以通過查看sys_namespace視圖查看當前數(shù)據(jù)庫的模式信息。
select * from sys_namespace where nspname in ('s1','s2');
# 在S1下創(chuàng)建test表。
create table s1.test(id int,name varchar(20) );
# 插入數(shù)據(jù)
insert into s1.test values ('1','kingbase');
第三步:創(chuàng)建表
這一步提供了詳細的創(chuàng)建表結(jié)構(gòu),以及示例表,如訂單表。當然還包括表結(jié)構(gòu)的修改,以及數(shù)據(jù)的插入。
涉及sql如下
創(chuàng)建表customers客戶表
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
);
第四步:創(chuàng)建索引
創(chuàng)建索引可以顯著提升數(shù)據(jù)庫的查詢和排序效率,但會占用一定空間并影響寫入性能,因此應優(yōu)先為常用查詢、排序或關(guān)聯(lián)字段建立索引,避免濫用。值得一提的是,KingbaseES 在線體驗平臺還支持通過網(wǎng)頁在線創(chuàng)建和管理索引,讓用戶可以方便地體驗和驗證索引帶來的性能提升。
涉及sql如下
# 在customers表的c_name列上創(chuàng)建索引
create index indx_c_name on customers(c_name);
# 在itms分區(qū)表中的i_price列上創(chuàng)建本地索引
create index indx_i_price on items (i_price) local;
# 在order表的o_id和o_date列上創(chuàng)建組合索引。
create index idx_o_i_d on orders (o_id, o_date);
第五步:各種查詢
KingbaseES 在線體驗平臺不僅支持基礎(chǔ)的 SQL 查詢,還可以在線實現(xiàn)多種查詢方式,包括簡單條件查詢、表與表之間的關(guān)聯(lián)查詢、分組統(tǒng)計查詢以及嵌套的子查詢操作。用戶無需本地安裝數(shù)據(jù)庫環(huán)境,就能在網(wǎng)頁上靈活編寫和執(zhí)行各類 SQL 語句,全面體驗數(shù)據(jù)庫的強大查詢能力和豐富功能。
涉及sql如下
# with子句
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;
第六步:視圖創(chuàng)建和管理
在 KingbaseES 在線體驗平臺中,用戶還可以通過網(wǎng)頁方便地創(chuàng)建和管理視圖。視圖可以將復雜查詢結(jié)果封裝成虛擬表,簡化后續(xù)的數(shù)據(jù)訪問和分析。平臺支持在線編寫視圖的創(chuàng)建語句,并能直接查看和調(diào)用已創(chuàng)建的視圖,幫助用戶更高效地組織和復用查詢邏輯,提升數(shù)據(jù)處理的靈活性和便捷性。
涉及sql如下:
# 銷售統(tǒng)計視圖
# 功能:按日期匯總訂單金額和數(shù)量。
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);
第七步:函數(shù)創(chuàng)建與使用
在 KingbaseES 在線體驗平臺中,用戶還可以在線創(chuàng)建和調(diào)用自定義函數(shù)。通過編寫 SQL 或 PL/SQL 語句,用戶能夠?qū)⒊S玫挠嬎氵壿嫽驑I(yè)務(wù)規(guī)則封裝為函數(shù),方便在查詢和數(shù)據(jù)處理過程中重復使用。平臺支持函數(shù)的創(chuàng)建、查看和調(diào)用,極大提升了數(shù)據(jù)處理的靈活性和開發(fā)效率。
涉及sql如下:
# 計算訂單折扣金額
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;-- 假設(shè)折扣率為 10%RETURN total_price * 0.10;
END$$
LANGUAGE plpgsql;
第八步:觸發(fā)器的使用
在 KingbaseES 在線體驗平臺中,用戶同樣可以在線創(chuàng)建和管理觸發(fā)器。通過觸發(fā)器,用戶可以在表的數(shù)據(jù)插入、更新或刪除等操作發(fā)生時,自動執(zhí)行自定義的邏輯,實現(xiàn)數(shù)據(jù)自動校驗、日志記錄等功能。平臺支持觸發(fā)器的編寫、查看和調(diào)試,讓數(shù)據(jù)庫自動化處理能力更加靈活和強大。
涉及sql如下:
# 插入觸發(fā)器
# 功能:每當插入一條新訂單時,觸發(fā)器會從商品表中減去相應數(shù)量的商品庫存。
\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;
/
個人demo實現(xiàn)
這個 Demo 以“用戶下單”為業(yè)務(wù)場景,帶你體驗 KingbaseES 數(shù)據(jù)庫的表創(chuàng)建、數(shù)據(jù)插入、索引優(yōu)化、復雜查詢和視圖功能。適合初學者快速上手數(shù)據(jù)庫的核心操作。
第1步:創(chuàng)建相關(guān)表
目的:建立用戶表和訂單表,模擬一個簡單的電商業(yè)務(wù)數(shù)據(jù)結(jié)構(gòu)。
-- 創(chuàng)建用戶表,存儲用戶基本信息
CREATE TABLE users (id SERIAL PRIMARY KEY, -- 用戶ID,自增主鍵username VARCHAR(50) NOT NULL, -- 用戶名age INT, -- 年齡city VARCHAR(50) -- 所在城市
);-- 創(chuàng)建訂單表,存儲用戶下的訂單
CREATE TABLE orders (id SERIAL PRIMARY KEY, -- 訂單ID,自增主鍵user_id INT, -- 下單用戶IDproduct VARCHAR(100), -- 商品名稱amount DECIMAL(10,2), -- 訂單金額order_date DATE, -- 下單日期FOREIGN KEY (user_id) REFERENCES users(id) -- 外鍵關(guān)聯(lián)用戶表
);
說明:
-
users 表保存用戶信息,orders 表保存訂單信息,通過 user_id 關(guān)聯(lián)。
-
這樣設(shè)計便于后續(xù)做多表查詢和數(shù)據(jù)分析。
第2步:插入測試數(shù)據(jù)
目的:為后續(xù)查詢和演示準備一些樣例數(shù)據(jù)。
-- 插入用戶數(shù)據(jù)
INSERT INTO users (username, age, city) VALUES
('Alice', 28, 'Beijing'),
('Bob', 35, 'Shanghai'),
('Carol', 22, 'Guangzhou');-- 插入訂單數(shù)據(jù)
INSERT INTO orders (user_id, product, amount, order_date) VALUES
(1, 'Laptop', 5999.00, '2024-06-01'),
(1, 'Mouse', 99.00, '2024-06-02'),
(2, 'Phone', 3999.00, '2024-06-03'),
(3, 'Book', 49.00, '2024-06-04');
第3步:創(chuàng)建索引
目的:為訂單表的 user_id 字段創(chuàng)建索引,加速用戶訂單的查詢。
-- 為 orders 表的 user_id 字段創(chuàng)建索引
CREATE INDEX idx_orders_user_id ON orders(user_id);
說明:
- 有了索引,后續(xù)通過 user_id 查詢訂單會更快,體驗索引帶來的性能提升。
第4步:復合查詢(多表關(guān)聯(lián)+條件+排序)
目的:體驗 SQL 的多表關(guān)聯(lián)、條件篩選和排序功能。
-- 查詢所有來自北京的用戶及其訂單信息,按訂單金額降序排列
SELECT u.username, u.city, o.product, o.amount, o.order_date
FROM users u
JOIN orders o ON u.id = o.user_id
WHERE u.city = 'Beijing'
ORDER BY o.amount DESC;
說明:
-
通過 JOIN 關(guān)聯(lián)用戶和訂單表,篩選出北京用戶的訂單,并按金額從高到低排序。
-
這一步可以體驗 KingbaseES 對多表查詢和排序的支持。
第5步:創(chuàng)建視圖,簡化查詢
目的:將常用的復雜查詢封裝成視圖,方便后續(xù)直接調(diào)用。
第6步:修改表數(shù)據(jù)
目的:體驗如何更新表中的數(shù)據(jù),比如修改用戶的城市信息或訂單金額。
-- 將用戶名為 Alice 的城市改為 Shanghai
UPDATE users SET city = 'Shanghai' WHERE username = 'Alice';-- 將訂單金額小于100的訂單金額統(tǒng)一改為 88.00
UPDATE orders SET amount = 88.00 WHERE amount < 100;
第7步:刪除表數(shù)據(jù)
目的:體驗如何刪除表中的部分數(shù)據(jù),比如刪除某個用戶或訂單。
-- 先刪除 Bob 的所有訂單
DELETE FROM orders WHERE user_id = (SELECT id FROM users WHERE username = 'Bob');-- 再刪除 Bob 用戶
DELETE FROM users WHERE username = 'Bob';
說明:
- DELETE 語句可以根據(jù)條件刪除一行或多行數(shù)據(jù),注意操作不可逆。
第8步:刪除表
目的:體驗如何徹底刪除表結(jié)構(gòu)和數(shù)據(jù)。
-- 刪除訂單表
DROP TABLE orders;-- 刪除用戶表
DROP TABLE users;-- 刪除視圖
DROP VIEW user_order_view;
總結(jié)
總的來說,KingbaseES 在線體驗平臺就像數(shù)據(jù)庫界的“自助餐廳”,不但能讓你隨手點單(寫 SQL),還能讓你現(xiàn)場DIY各種“菜品”(索引、視圖、函數(shù)、觸發(fā)器),每一樣都能即點即試、現(xiàn)學現(xiàn)用。體驗一圈下來,既飽了眼福又漲了知識,操作簡單還不用洗碗——這波在線體驗,真是既輕松又有料!好了,今天的“云端數(shù)據(jù)庫游樂場”就逛到這里,歡迎大家親自上手體驗一番!