> 技术文档 > ​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​


文章目录

  • 一、前言
  • 二、软件下载
    • 2.1 下载安装包
    • 2.2 下载授权文件
  • 三. 安装KingbaseES数据库
    • 3.1 解压安装包
    • 3.2 运行安装程序
    • 3.3 安装步骤详解
      • 步骤1:欢迎界面
      • 步骤2:许可协议
      • 步骤3:添加授权文件
      • 步骤4:选择安装路径
      • 步骤5:选择安装类型
      • 步骤6:安装预览
      • 步骤7:安装进度
      • 步骤8:创建快捷方式
      • 步骤9:完成安装
  • 四、创建数据库实例
    • 4.1 启动管理工具
    • 4.2 实例配置
    • 4.3 完成创建
  • 五、KStudio开发管理工具使用
    • 5.1 工具介绍
    • 5.2 启动KStudio
    • 5.3 创建数据库连接
      • 方法1:通过菜单创建
      • 方法2:通过工具栏创建
      • 连接配置
    • 5.4 界面功能
    • 5.5 数据库对象管理
      • 创建数据库
      • 创建表
      • 数据浏览和编辑
  • 六、 SQL入门使用
    • 6.1 ksql命令行工具配置
    • 6.2 启动ksql命令行工具
      • 6.2.1 基本启动方式
      • 6.2.2 常用启动参数
      • 6.2.3 连接示例
    • 6.3 ksql基础操作
      • 6.3.1 连接和退出
      • 6.3.2 基本命令
        • 数据库相关命令
        • 表和模式相关命令
        • 用户和权限相关命令
    • 6.4 数据库和表操作
      • 6.4.1 创建数据库
      • 6.4.2 创建表
      • 6.4.3 查看表结构
      • 6.4.4 修改表结构
    • 6.5 数据操作
      • 6.5.1 插入数据
      • 6.5.2 查询数据
      • 6.5.3 连接查询
      • 6.5.4 更新数据
      • 6.5.5 删除数据
    • 6.6 高级查询示例
      • 6.6.1 子查询
      • 6.6.2 窗口函数
    • 6.7 ksql实用命令
      • 6.7.1 元命令
      • 6.7.2 文件操作
      • 6.7.3 环境设置
  • 七、结语

本教程详细介绍了国产数据库KingbaseES V9R1C10在Windows系统下的完整安装配置流程,包含授权文件获取、安装步骤图解、实例创建和KStudio开发工具使用指南。教程特别针对初学者设计了SQL入门操作章节,涵盖数据库创建、表管理、数据增删改查等基础操作,并提供了丰富的实用命令和高级查询示例。通过30分钟的学习,您将掌握KingbaseES的核心功能,包括ksql命令行工具配置、环境变量设置、数据库连接管理等关键技能。本教程适用于数据库管理员、开发人员和国产数据库迁移用户,是学习KingbaseES的必备指南。

一、前言

KingbaseES是一个企业级关系型数据库管理系统,具有高性能、高可用、高安全等特点。本教程将详细介绍KingbaseES V9R1C10版本在Windows环境下的完整安装过程,以及KStudio开发管理工具的使用方法和SQL入门操作,帮助初学者快速上手这款国产数据库。

二、软件下载

2.1 下载安装包

首先我们需要进入到电科金仓数据库的下载页面:点击跳转

选择V9R1C10版本,下载X64_Windows版本的安装包。

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

2.2 下载授权文件

点击授权文件链接跳转到授权文件下载页面:

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

授权文件说明
KingbaseES数据库授权文件分为开发版、标准版、专业版和企业版。根据版本定位不同,以数据库首次启动为首日开始计算:

  • 开发版:时长限制为365天
  • 标准版、专业版、企业版:时长限制为90天

根据需要选择相应的授权文件,这里选择开发版,点击开发版-365天进行下载。

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

下载完成的授权文件以.dat为扩展名,在后续安装过程中需要使用。

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

三. 安装KingbaseES数据库

3.1 解压安装包

下载的KingbaseES安装包是.iso格式的镜像文件,需要使用解压工具进行解压。

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

3.2 运行安装程序

解压后进入KingbaseES_V009R001C010B0004_Win64_install目录,右键点击setup.bat,选择\"以管理员身份运行\"。

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

3.3 安装步骤详解

步骤1:欢迎界面

进入安装向导欢迎页面,点击【下一步】继续。

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

步骤2:许可协议

仔细阅读许可协议,选中我接受《许可协议条款》,点击【下一步】。

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

步骤3:添加授权文件

点击【浏览】按钮,选择之前下载的.dat授权文件,然后点击【下一步】。

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

步骤4:选择安装路径

可以使用默认路径,也可以自定义安装路径。建议选择有足够空间的磁盘分区,点击【下一步】。

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

步骤5:选择安装类型

推荐选择【完全安装】,这样可以获得完整的功能组件。

安装类型 包含组件 适用场景 完全安装 数据库服务器、高可用组件、接口、数据库开发管理工具、数据库迁移工具、数据库部署工具 需要完整功能的开发或生产环境 服务器安装 仅数据库服务器 仅需数据库服务的轻量级部署 定制安装 可自由选择各种组件 需要特定功能组合的特殊需求场景

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

步骤6:安装预览

确认安装信息无误后,点击【安装】开始安装过程。

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

步骤7:安装进度

等待安装进度完成,这个过程可能需要几分钟时间。

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

步骤8:创建快捷方式

选中【创建快捷方式】,选择【所有用户】,程序组选择【Default】,点击【下一步】。

快捷方式说明

  • 用户范围:选择\"当前用户\"仅对当前账户有效;选择\"所有用户\"对设备上所有用户可用
  • 程序组:可以自定义快捷方式的分组名称

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

步骤9:完成安装

选中【初始化数据库】选项,点击【完成】。

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

四、创建数据库实例

4.1 启动管理工具

安装完成后会自动弹出金仓数据库管理工具,选择【单节点列表】,点击【创建新实例】。

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

4.2 实例配置

在创建实例界面中,需要配置以下参数:

  • 实例名称:自定义实例名称
  • 端口号:默认54321,可根据需要修改
  • 用户名和密码:设置数据库管理员账户
  • 兼容模式:根据需要选择兼容模式(如MySQL、Oracle、PostgreSQL等)

配置完成后点击【下一步】。

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

4.3 完成创建

确认配置信息无误后,选择【创建后立即执行】和【创建后注册为系统服务】,点击【执行】。

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

创建完成后,在单节点列表中可以看到新创建的实例,状态显示为\"运行中\"表示创建成功。

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

五、KStudio开发管理工具使用

5.1 工具介绍

KingbaseES提供了多种客户端工具,存放在ClientTools的guitools目录下:C:\\Kingbase\\ES\\V9\\ClientTools\\guitools

工具说明

  • DeployTools:集群部署工具,用于远程部署集群节点服务
  • KDts:数据库迁移工具,支持同异构数据源之间的数据迁移
  • KStudio:开发管理工具,提供图形化界面管理数据库

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

5.2 启动KStudio

进入KStudio目录,双击KStudio.exe启动开发管理工具。

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

5.3 创建数据库连接

方法1:通过菜单创建

单击菜单栏中的数据库新建连接

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

方法2:通过工具栏创建

点击工具栏中的连接图标。
​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

连接配置

在连接配置对话框中填写以下信息:

  • 数据库版本:选择KingbaseES V9
  • 主机IP:localhost或127.0.0.1
  • 端口:54321(或创建实例时设置的端口)
  • 数据库:TEST(默认数据库)
  • 用户名:SYSTEM(或创建实例时设置的用户名)
  • 密码:创建实例时设置的密码
  • 连接名:自定义连接名称
  • 连接类型:选择合适的连接类型

配置完成后点击【测试连接】,连接成功后点击【完成】。

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

5.4 界面功能

KStudio主界面主要包含以下几个区域,顶部功能区,左侧导航区,中部工作区,底部状态区

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

5.5 数据库对象管理

创建数据库

  1. 点击连接名称
  2. 右键数据库选择新建数据库
  3. 输入数据库名称和相关配置
  4. 点击【确定】完成创建
    ​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

创建表

  1. 展开数据库节点,选择数据库
  2. 选择模式
  3. 右键表,点击新建表
  4. 在表设计器中定义字段、数据类型、约束等
  5. 点击【保存】完成表创建
    ​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

数据浏览和编辑

  1. 右键点击表名
  2. 选择查询数据编辑数据
  3. 在数据网格中查看或修改数据
  4. 使用【提交】保存更改
    ​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

六、 SQL入门使用

ksql 是 KingbaseES 数据库的命令行连接工具,支持本地和远程两种连接方式。
本地连接: ksql 连接到同一台计算机运行的 KingbaseES 数据库。
远程连接: ksql 通过网络访问另一台计算机运行的 KingbaseES 数据库。

6.1 ksql命令行工具配置

在使用ksql命令行工具之前,需要先配置环境变量以便系统能够找到ksql可执行文件。
在系统变量Path里面配置kingbase的bin目录
​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​
打开命令提示符,输入以下命令验证配置:
ksql --version
如果显示版本信息,说明环境变量配置成功。
​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

6.2 启动ksql命令行工具

6.2.1 基本启动方式

# 使用默认参数连接ksql# 指定连接参数ksql -h localhost -p 54321 -d TEST -U SYSTEM# 使用完整参数格式ksql --host=localhost --port=54321 --dbname=TEST --username=SYSTEM

6.2.2 常用启动参数

参数 长格式 说明 -h --host 数据库服务器主机名或IP地址 -p --port 数据库服务器端口号 -d --dbname 要连接的数据库名 -U --username 连接用户名 -W --password 强制提示输入密码 -f --file 执行指定的SQL文件 -c --command 执行单个SQL命令后退出 -l --list 列出所有可用数据库

6.2.3 连接示例

# 连接到本地数据库ksql -h localhost -p 54321 -d TEST -U SYSTEM -W# 执行SQL文件ksql -h localhost -p 54321 -d TEST -U SYSTEM -f script.sql# 执行单个命令ksql -h localhost -p 54321 -d TEST -U SYSTEM -c \"SELECT version();\"

​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​

6.3 ksql基础操作

6.3.1 连接和退出

-- 连接成功后会显示提示符TEST=#-- 退出ksql\\q-- 或者\\quit-- 或者使用Ctrl+C

6.3.2 基本命令

数据库相关命令
-- 查看当前数据库SELECT current_database();-- 查看所有数据库\\l-- 或者\\list-- 连接到其他数据库\\c database_name-- 或者\\connect database_name-- 查看数据库版本SELECT version();
表和模式相关命令
-- 查看当前模式下的所有表\\dt-- 查看所有模式下的表\\dt *.*-- 查看表结构\\d table_name-- 查看表的详细信息\\d+ table_name-- 查看所有模式\\dn-- 查看视图\\dv
用户和权限相关命令
-- 查看所有用户\\du-- 查看当前用户SELECT current_user;-- 查看会话用户SELECT session_user;

6.4 数据库和表操作

6.4.1 创建数据库

-- 创建数据库CREATE DATABASE mydb;-- 创建数据库并指定所有者CREATE DATABASE mydb OWNER SYSTEM;-- 创建数据库并指定编码CREATE DATABASE mydb WITH OWNER = SYSTEM ENCODING = \'UTF8\' TABLESPACE = pg_default;-- 连接到新创建的数据库\\c mydb

6.4.2 创建表

-- 创建学生表CREATE TABLE students ( id SERIAL PRIMARY KEY, name VARCHAR(50) NOT NULL, age INTEGER CHECK (age > 0 AND age < 120), gender CHAR(1) CHECK (gender IN (\'M\', \'F\')), email VARCHAR(100) UNIQUE, phone VARCHAR(20), create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP);-- 创建课程表CREATE TABLE courses ( course_id SERIAL PRIMARY KEY, course_name VARCHAR(100) NOT NULL, course_code VARCHAR(20) UNIQUE NOT NULL, credits INTEGER CHECK (credits > 0), teacher VARCHAR(50), description TEXT, create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP);-- 创建选课表(多对多关系)CREATE TABLE enrollments ( enrollment_id SERIAL PRIMARY KEY, student_id INTEGER NOT NULL, course_id INTEGER NOT NULL, grade DECIMAL(3,1) CHECK (grade >= 0 AND grade <= 100), enroll_date DATE DEFAULT CURRENT_DATE, status VARCHAR(20) DEFAULT \'ACTIVE\', FOREIGN KEY (student_id) REFERENCES students(id) ON DELETE CASCADE, FOREIGN KEY (course_id) REFERENCES courses(course_id) ON DELETE CASCADE, UNIQUE(student_id, course_id));

6.4.3 查看表结构

-- 查看表结构\\d students-- 查看表的详细信息(包括索引、约束等)\\d+ students-- 查看表的创建语句\\d students

6.4.4 修改表结构

-- 添加列ALTER TABLE students ADD COLUMN address TEXT;ALTER TABLE students ADD COLUMN birth_date DATE;-- 修改列数据类型ALTER TABLE students ALTER COLUMN name TYPE VARCHAR(100);-- 修改列默认值ALTER TABLE students ALTER COLUMN update_time SET DEFAULT CURRENT_TIMESTAMP;-- 删除列ALTER TABLE students DROP COLUMN phone;-- 重命名列ALTER TABLE students RENAME COLUMN birth_date TO birthday;-- 添加约束ALTER TABLE students ADD CONSTRAINT chk_email_format CHECK (email LIKE \'%@%.%\');-- 删除约束ALTER TABLE students DROP CONSTRAINT chk_email_format;-- 创建索引CREATE INDEX idx_students_name ON students(name);CREATE INDEX idx_students_email ON students(email);

6.5 数据操作

6.5.1 插入数据

-- 插入单条记录INSERT INTO students (name, age, gender, email) VALUES (\'张三\', 20, \'M\', \'zhangsan@example.com\');-- 插入多条记录INSERT INTO students (name, age, gender, email, address) VALUES(\'李四\', 21, \'F\', \'lisi@example.com\', \'北京市朝阳区\'),(\'王五\', 19, \'M\', \'wangwu@example.com\', \'上海市浦东新区\'),(\'赵六\', 22, \'F\', \'zhaoliu@example.com\', \'广州市天河区\'),(\'钱七\', 20, \'M\', \'qianqi@example.com\', \'深圳市南山区\'),(\'孙八\', 23, \'F\', \'sunba@example.com\', \'杭州市西湖区\');-- 插入课程数据INSERT INTO courses (course_name, course_code, credits, teacher, description) VALUES(\'数据库原理\', \'DB101\', 3, \'张教授\', \'关系数据库理论与实践\'),(\'Java程序设计\', \'JAVA201\', 4, \'李教授\', \'Java语言基础与面向对象编程\'),(\'数据结构\', \'DS101\', 3, \'王教授\', \'线性表、树、图等数据结构\'),(\'操作系统\', \'OS201\', 4, \'刘教授\', \'进程管理、内存管理、文件系统\'),(\'计算机网络\', \'NET301\', 3, \'陈教授\', \'TCP/IP协议栈与网络编程\');-- 插入选课数据INSERT INTO enrollments (student_id, course_id, grade) VALUES(1, 1, 85.5),(1, 2, 92.0),(2, 1, 78.5),(2, 3, 88.0),(3, 2, 95.5),(3, 4, 82.0),(4, 1, 90.0),(4, 5, 87.5),(5, 3, 93.0),(5, 4, 89.5);

6.5.2 查询数据

-- 基本查询SELECT * FROM students;-- 指定列查询SELECT name, age, email FROM students;-- 条件查询SELECT name, age FROM students WHERE age > 20;SELECT * FROM students WHERE gender = \'F\' AND age >= 21;-- 模糊查询SELECT * FROM students WHERE name LIKE \'张%\';SELECT * FROM students WHERE email LIKE \'%@example.com\';-- 排序查询SELECT * FROM students ORDER BY age DESC;SELECT * FROM students ORDER BY age ASC, name DESC;-- 分页查询SELECT * FROM students LIMIT 3;SELECT * FROM students LIMIT 3 OFFSET 2;-- 去重查询SELECT DISTINCT gender FROM students;SELECT DISTINCT teacher FROM courses;-- 聚合查询SELECT COUNT(*) as total_students FROM students;SELECT gender, COUNT(*) as count, AVG(age) as avg_age FROM students GROUP BY gender;SELECT AVG(grade) as avg_grade, MAX(grade) as max_grade, MIN(grade) as min_gradeFROM enrollments;-- 分组过滤SELECT course_id, COUNT(*) as student_count, AVG(grade) as avg_gradeFROM enrollments GROUP BY course_idHAVING COUNT(*) > 1;

6.5.3 连接查询

-- 内连接查询SELECT s.name, c.course_name, e.gradeFROM students sINNER JOIN enrollments e ON s.id = e.student_idINNER JOIN courses c ON e.course_id = c.course_id;-- 左连接查询(显示所有学生,包括未选课的)SELECT s.name, c.course_name, e.gradeFROM students sLEFT JOIN enrollments e ON s.id = e.student_idLEFT JOIN courses c ON e.course_id = c.course_id;-- 右连接查询(显示所有课程,包括无人选的)SELECT s.name, c.course_name, e.gradeFROM students sRIGHT JOIN enrollments e ON s.id = e.student_idRIGHT JOIN courses c ON e.course_id = c.course_id;-- 复杂连接查询SELECT s.name as student_name, s.age, c.course_name, c.teacher, e.grade, CASE WHEN e.grade >= 90 THEN \'优秀\' WHEN e.grade >= 80 THEN \'良好\' WHEN e.grade >= 70 THEN \'中等\' WHEN e.grade >= 60 THEN \'及格\' ELSE \'不及格\' END as grade_levelFROM students sJOIN enrollments e ON s.id = e.student_idJOIN courses c ON e.course_id = c.course_idORDER BY e.grade DESC;

6.5.4 更新数据

-- 更新单条记录UPDATE students SET age = 21 WHERE name = \'张三\';-- 更新多个字段UPDATE students SET age = 23, email = \'zhangsan_new@example.com\', update_time = CURRENT_TIMESTAMPWHERE id = 1;-- 批量更新UPDATE students SET age = age + 1 WHERE gender = \'M\';-- 基于连接的更新UPDATE enrollments SET grade = grade + 5 WHERE student_id IN ( SELECT id FROM students WHERE age < 21) AND grade < 95;

6.5.5 删除数据

-- 删除指定记录DELETE FROM enrollments WHERE grade < 60;-- 条件删除DELETE FROM students WHERE age < 18;-- 基于子查询的删除DELETE FROM enrollments WHERE student_id IN ( SELECT id FROM students WHERE name = \'张三\');-- 清空表数据(保留表结构)TRUNCATE TABLE enrollments;

6.6 高级查询示例

6.6.1 子查询

-- 单行子查询SELECT name FROM students WHERE age = (SELECT MAX(age) FROM students);-- 多行子查询SELECT name FROM students WHERE id IN (SELECT student_id FROM enrollments WHERE grade > 90);-- 相关子查询SELECT s.name, s.age, (SELECT AVG(grade) FROM enrollments e WHERE e.student_id = s.id) as avg_gradeFROM students s;-- EXISTS子查询SELECT name FROM students sWHERE EXISTS ( SELECT 1 FROM enrollments e WHERE e.student_id = s.id AND e.grade > 85);

6.6.2 窗口函数

-- 排名函数SELECT name, age, ROW_NUMBER() OVER (ORDER BY age DESC) as row_num, RANK() OVER (ORDER BY age DESC) as rank, DENSE_RANK() OVER (ORDER BY age DESC) as dense_rankFROM students;-- 分组排名SELECT s.name, c.course_name, e.grade, ROW_NUMBER() OVER (PARTITION BY e.course_id ORDER BY e.grade DESC) as rank_in_courseFROM students sJOIN enrollments e ON s.id = e.student_idJOIN courses c ON e.course_id = c.course_id;-- 累计函数SELECT name, age, SUM(age) OVER (ORDER BY age) as cumulative_age, AVG(age) OVER (ORDER BY age ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as running_avgFROM students;

6.7 ksql实用命令

6.7.1 元命令

-- 帮助命令\\?-- 时间统计\\timing on -- 开启查询时间统计\\timing off -- 关闭查询时间统计-- 输出格式\\x on -- 开启扩展显示模式(垂直显示)\\x off -- 关闭扩展显示模式-- 分页显示\\pset pager on -- 开启分页\\pset pager off -- 关闭分页-- 设置输出格式\\pset format aligned -- 对齐格式\\pset format unaligned -- 非对齐格式\\pset format csv -- CSV格式

6.7.2 文件操作

-- 执行SQL文件\\i script.sql\\include script.sql-- 将查询结果输出到文件\\o output.txtSELECT * FROM students;\\o -- 关闭输出重定向-- 复制表数据到文件\\copy students TO \'students.csv\' WITH CSV HEADER;-- 从文件导入数据\\copy students FROM \'students.csv\' WITH CSV HEADER;

6.7.3 环境设置

-- 查看当前设置\\set-- 设置变量\\set AUTOCOMMIT off\\set ECHO_HIDDEN on-- 设置环境变量\\setenv LANG zh_CN.UTF-8-- 执行系统命令\\! dir -- Windows下查看目录\\! ls -la -- Linux下查看目录

七、结语

通过本教程,我们完成了KingbaseES V9R1C10数据库在Windows环境下的完整安装配置,学习了KStudio开发管理工具的基本使用方法,并掌握了SQL的入门操作。KingbaseES作为一款优秀的国产数据库,在功能特性和性能表现上都达到了企业级应用的要求。

希望本教程能够帮助您快速入门KingbaseES数据库,在国产数据库的学习和应用道路上迈出坚实的第一步。随着对数据库理解的不断深入,相信您能够充分发挥KingbaseES的强大功能,为企业的数字化转型贡献力量。