当前位置: 首页 > news >正文

如何在金仓数据库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)最佳实践。
如何在金仓数据库KingbaseES中新建一个数据库?新建一个表?给表添加一个字段?

目录

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

1. 问题

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

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

2. 概述

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


3. 数据库属性

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

  • sys_database:列出实例中所有数据库名称、所有者、编码等信息。
  • sys_database_size(‘dbname’):返回指定数据库所占磁盘空间大小。
  • 模板库template0template1,用于在创建新库时复制初始结构。
-- 查看已有数据库列表
SELECT datname, datdba, encoding, datcollate, datctypeFROM 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)中执行:

-- 仅指定库名,默认属主为当前连接用户
CREATE DATABASE mydb;-- 指定属主和编码
CREATE DATABASE mydbWITHOWNER = dbuserENCODING = 'UTF8'TEMPLATE = template1TABLESPACE = pg_default;

注意事项

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

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

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

# 使用默认参数,以当前系统用户名创建同名数据库
$ 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 客户端中执行:

-- 示例:创建用户表
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 客户端中执行:

-- 为 users 表新增 last_login 字段
ALTER TABLE public.usersADD COLUMN last_login TIMESTAMP WITHOUT TIME ZONE;-- 带默认值且非空
ALTER TABLE public.usersADD COLUMN status VARCHAR(20) NOT NULL DEFAULT 'active';
  • ADD COLUMN:添加新列
  • 可同时指定 NOT NULLDEFAULTCHECK 等约束

查看修改结果:

-- 再次查看表结构
\d+ public.users;

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

7. 结论

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

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

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

相关文章:

  • android 折叠屏开发适配全解析:多窗口、铰链处理与响应式布局
  • 【北京迅为】iTOP-4412精英版使用手册-第八章 Android 4.4系统编译
  • 物业设备管理的“多系统协同”模式:ERP、IoT与工单系统如何联动?
  • C26-冒泡排序法
  • BT回测框架Cerebro,DataFeeds和Strategies的介绍
  • 2021-11-11 C++泰勒sin(x)以2步进乘方除以阶乘加减第N项
  • 项目优先级频繁变动,如何应对?
  • FID和IS的区别
  • 前端三大件--HTML
  • @Autowired 的实现原理
  • 基于 SpringBoot + Vue 的校园管理系统设计与实现
  • .net在DB First模式使用pgsql
  • Java Web 开发:过滤器 (Filter) vs 拦截器 (Interceptor) - 深度剖析与选择指南
  • C++ std::sort 函数
  • JS进阶DAY2 构造函数数据常用函数
  • 能效提升超 61%!Fortinet 发布《2024 年可持续发展报告》
  • 精益数据分析(47/126):深挖UGC商业模式的关键要点与指标
  • 5月7号.
  • k8s | Kubernetes 服务暴露:NodePort、Ingress 与 YAML 配置详解
  • 企业级AI革命!私有化部署开源大模型:数据安全+自主可控,打造专属智能引擎
  • 高龄老人骨折后,生死可能就在家属一念之间
  • 现场丨“影像上海”启幕:串联摄影、电影与当代艺术
  • A股低开高走全线上涨:军工股再度领涨,两市成交12934亿元
  • 国家发改委副主任谈民营经济促进法:以法治的稳定性增强发展的确定性
  • 首批18位!苏联籍抗日航空英烈信息更新
  • 2025江西跨境电子商务发展交流会召开,探索行业发展新趋势