如何在金仓数据库KingbaseES中新建一个数据库?新建一个表?给表添加一个字段?

如何在KingbaseES(金仓数据库)中新建一个数据库?新建一个表?给表添加一个字段?

摘要

KingbaseES(金仓数据库)新建数据库、创建表、添加字段全流程实战指南,涵盖 KES 数据库属性、sys_database 系统表查询、sys_database_size 磁盘空间监控;基于图形界面快速创建数据库、表及字段;SQL 语句详解:CREATE DATABASEcreatedbCREATE TABLEALTER TABLE ADD COLUMN;模板库(template0/template1)、编码(UTF8/GBK/GB18030)、表空间管理、权限配置、DDL 脚本生成;适用于 ksql/psql 客户端、命令行工具和可视化管理工具的数据库对象管理与数据定义语言(DDL)最佳实践。

目录

  1. 问题
  2. 文档概述
  3. 数据库属性
  4. 创建一个KES数据库
    1. 基于图形界面创建一个KES数据库
    2. [通过 CREATE DATABASE 创建一个KES数据库](#通过 CREATE DATABASE 创建一个KES数据库)
    3. [通过 createdb 创建一个KES数据库](#通过 createdb 创建一个KES数据库)
  5. 新建一个表
    1. 基于图形界面新建一个表
    2. [通过 CREATE TABLE 新建一个表](#通过 CREATE TABLE 新建一个表)
  6. 给表添加一个字段
    1. 基于图形界面给表添加字段
    2. [通过 ALTER TABLE 给表添加字段](#通过 ALTER TABLE 给表添加字段)

1. 问题

如何在 KingbaseES(金仓数据库)中:

  • 新建一个数据库?
  • 在该数据库中新建一个表?
  • 给已有表添加一个字段?

2. 概述

本文将从 KingbaseES 的基本概念与属性入手,详细介绍三种方式创建数据库,并演示如何通过图形界面与 SQL 语句完成表的创建和字段的添加。阅读完本文,您将掌握在 KingbaseES 中进行常见 DDL(数据定义语言)操作的全流程。


3. 数据库属性

在 KingbaseES 中,数据库 (Database)是多个数据库对象(表、索引、序列、视图等)的命名集合。一个实例(Instance)中可以包含多个数据库。每个数据库内的对象相互隔离,但可以通过系统表如 sys_databasesys_schema 查看和管理。

  • sys_database:列出实例中所有数据库名称、所有者、编码等信息。
  • sys_database_size('dbname'):返回指定数据库所占磁盘空间大小。
  • 模板库template0template1,用于在创建新库时复制初始结构。
sql 复制代码
-- 查看已有数据库列表
SELECT datname, datdba, encoding, datcollate, datctype
  FROM sys_database;
  
-- 查看 test 库大小
SELECT sys_database_size('test');

4. 创建一个KES数据库

在 KingbaseES 中,常见的创建数据库方式有三种:

  1. 基于图形界面
  2. 通过 SQL 语句 CREATE DATABASE
  3. 通过命令行工具 createdb

4.1. 基于图形界面创建一个KES数据库

  1. 启动 KingbaseES 管理客户端,连接到目标实例。

  2. 在左侧导航树中,右键点击 "数据库" 节点,选择 "新建数据库"

  3. 在弹出的向导中,按页填写信息:

    • 基本属性页
      • 名称:指定新数据库名,不得与现有库重复。
      • 属主:默认当前用户,可更改为其他已存在角色。
      • 编码:默认为 UTF8,可选 ASCII、GBK、GB18030。
    • 权限页:为其他用户/角色分配 CONNECT、CREATE 等权限。
    • DDL 页 :查看最终生成的 CREATE DATABASE 语句。
  4. 点击 确定 完成创建。

在向导中,可随时切换到 DDL 页,复制生成的 SQL,便于后续脚本化部署。

4.2. 通过 CREATE DATABASE 创建一个KES数据库

使用 SQL 语句直接在客户端(如 ksql、psql)中执行:

sql 复制代码
-- 仅指定库名,默认属主为当前连接用户
CREATE DATABASE mydb;

-- 指定属主和编码
CREATE DATABASE mydb
  WITH
    OWNER = dbuser
    ENCODING = 'UTF8'
    TEMPLATE = template1
    TABLESPACE = pg_default;

注意事项

  1. 数据库名必须符合标识符规则,避免使用保留字。
  2. 普通用户只能创建属于自己的数据库;若要创建其他属主的库,需使用超级用户 system

4.3. 通过 createdb 创建一个KES数据库

createdb 是 KingbaseES 提供的命令行辅助工具,本质上会登录实例并执行 CREATE DATABASE

bash 复制代码
# 使用默认参数,以当前系统用户名创建同名数据库
$ createdb demo

# 指定端口、主机、属主等
$ createdb -h 127.0.0.1 -p 54321 -U system -O dbuser -T template1 demo
  • -h:服务器地址
  • -p:端口号
  • -U:连接用户名
  • -O:新库属主
  • -T:指定模板库

5. 新建一个表

创建完数据库后,需要在其中定义表结构。KingbaseES 的表创建方式也有两种:图形界面与 SQL 语句。

5.1. 基于图形界面新建一个表

  1. 在管理客户端中,连接到目标数据库 mydb
  2. 展开左侧树形结构至 "模式(Schemas)" → "public" → "表(Tables)"
  3. 右键 "表" ,选择 "新建表"
  4. 在向导中填写:
    • 表名表空间
    • 列定义:逐行添加列名、数据类型、长度、是否可空、默认值等。
    • 主键/索引:在相关页签定义主键或其他索引。
  5. 查看生成的 CREATE TABLE DDL,点击确认完成。

5.2. 通过 CREATE TABLE 新建一个表

在 SQL 客户端中执行:

sql 复制代码
-- 示例:创建用户表
CREATE TABLE public.users (
  id        BIGSERIAL PRIMARY KEY,
  username  VARCHAR(50) NOT NULL UNIQUE,
  email     VARCHAR(100),
  created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP
);

-- 查看表结构
\d+ public.users;
  • BIGSERIAL:自增主键
  • VARCHAR(n):变长字符
  • NOT NULL:非空约束
  • UNIQUE:唯一约束
  • DEFAULT:默认值

6. 给表添加一个字段

当业务需求变化时,可能需要在已有表中增加新字段。KingbaseES 支持在图形界面或通过 ALTER TABLE 完成。

6.1. 基于图形界面给表添加字段

  1. 在管理客户端中,连接到 mydb,找到目标表 public.users
  2. 右键点击该表,选择 "修改表"
  3. "列" 页签点击 "添加",输入新列名、类型、默认值、约束等。
  4. 确认后,客户端会执行相应的 ALTER TABLE 语句。

6.2. 通过 ALTER TABLE 给表添加字段

在 SQL 客户端中执行:

sql 复制代码
-- 为 users 表新增 last_login 字段
ALTER TABLE public.users
  ADD COLUMN last_login TIMESTAMP WITHOUT TIME ZONE;

-- 带默认值且非空
ALTER TABLE public.users
  ADD COLUMN status VARCHAR(20) NOT NULL DEFAULT 'active';
  • ADD COLUMN:添加新列
  • 可同时指定 NOT NULLDEFAULTCHECK 等约束

查看修改结果:

sql 复制代码
-- 再次查看表结构
\d+ public.users;

通过以上步骤,您已掌握 KingbaseES 中创建数据库、建表与扩展表结构的核心操作。建议在生产环境中,将这些 DDL 操作纳入版本控制,并在测试库演练后,再应用到线上数据库,以确保安全无误。祝您使用愉快!

7. 结论

通过本文的介绍,您已经全面掌握了在 KingbaseES(金仓数据库)中创建数据库、建表以及给表添加字段的三种主流方法:图形界面操作、SQL DDL 语句(CREATE DATABASE/CREATE TABLE/ALTER TABLE)和命令行工具(createdb)。在实际应用中,建议您:

  • 结合版本控制:将所有 DDL 脚本纳入 Git 等版本管理系统,便于回滚与审计。
  • 规范命名与编码:统一数据库、表、字段命名规则,确保字符集(UTF8、GBK、GB18030)与排序规则一致。
  • 权限与安全:合理分配属主与访问权限,使用最小权限原则保障数据安全。
  • 测试与演练:在测试环境中演练所有操作后,再推送至生产环境,降低因脚本错误带来的风险。

掌握这些核心操作与最佳实践,将助您在 KingbaseES 中高效、可靠地管理数据库架构,提升开发与运维的自动化与可维护性。如需进一步深入,请查阅官方文档或探索更多高级特性,例如表分区、并行查询与逻辑复制。祝您数据库管理之旅顺利!

相关推荐
auspicious航24 分钟前
PostgreSQL 常用SQL操作命令
数据库·sql·postgresql
Ten peaches31 分钟前
苍穹外卖(订单状态定时处理、来单提醒和客户催单)
java·数据库·sql·springboot
gbase_lmax1 小时前
gbase8s数据库 tcp连接不同阶段的超时处理
网络·数据库·网络协议·tcp/ip
Aliano2171 小时前
Pinecone向量库 VS Redis
数据库·redis·缓存·pinecone向量库
爬呀爬的水滴1 小时前
02 mysql 管理(Windows版)
数据库·mysql
IT成长日记1 小时前
【Hive入门】Hive增量数据导入:基于Sqoop的关系型数据库同步方案深度解析
数据库·hive·sqoop·关系型数据库同步·增量数据导入
芯辰则吉--模拟芯片2 小时前
模拟Sch LVS Sch 方法
服务器·数据库·lvs
weixin_437044642 小时前
JumpServer批量添加资产
数据库·mysql
cyhysr2 小时前
oracle 触发器与commit的先后执行顺序
数据库·oracle
czhc11400756634 小时前
Linux57配置MYSQL YUM源
数据库·mysql