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

如何在金仓数据库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 中高效、可靠地管理数据库架构,提升开发与运维的自动化与可维护性。如需进一步深入,请查阅官方文档或探索更多高级特性,例如表分区、并行查询与逻辑复制。祝您数据库管理之旅顺利!

http://www.xdnf.cn/news/4429.html

相关文章:

  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】8.1 基础图表绘制(折线图/柱状图/散点图)
  • 把本地的文件拷贝到wsl的文件夹下或者 wsl读取本地的文件
  • 使用node.js创建一个简单的服务器
  • WD5040L、 7V 至 37V 的宽输入电压,输出电压范围为 3.3V 至 36V,6A输出、保护功能强,电源管理利器!
  • Redis的缓存穿透、缓存击穿和缓存雪崩
  • ai说什么是注解,并以angular ts为例
  • Go——项目实战
  • 【强化学习】强化学习算法 - 多臂老虎机问题
  • 精益数据分析(47/126):深挖UGC商业模式的关键要点与指标
  • 多模态大语言模型arxiv论文略读(六十二)
  • uniapp自定义底部导航栏h5有效果小程序无效的解决方案
  • 鞅与停时 - 一种特别的概率论问题
  • 讲解什么是快充诱骗协议芯片及它的工作原理和应用场景
  • 构建生命大模型,开拓教育新境界——启智书院举办十二周年庆典暨教育新生态跨界共拓峰会
  • 【存储管理—动态不等长存储资源分配算法】
  • 可执行文件格式(ELF格式)以及进程地址空间第二讲【Linux操作系统】
  • 【django.db.utils.OperationalError: unable to open database file】
  • Redis-黑马点评
  • 固件测试:mac串口工具推荐
  • 第1章 算法设计基础
  • draw.io流程图使用笔记
  • 机器人跑拉松是商业噱头还是技术进步的必然体现
  • 【愚公系列】《Manus极简入门》024-表演艺术教练:“舞台魔法师”
  • Matlab实现绘制任意自由曲线
  • 微调大模型的工具
  • 大语言模型中的“温度”参数到底是什么?如何正确设置?
  • 低空科技护航珞樱春色,技术引领助推广阔应用
  • 2025.05.07-华为机考第二题200分
  • uni-app 引入vconsole web端正常,安卓端报错 Cannot read property ‘sendBeacon‘ of undefined
  • 【论文阅读】Adversarial Training Towards Robust Multimedia Recommender System