591游戏城 - 最新网游活动资讯聚合平台
首页礼包专区正文

金仓数据库麒麟环境SQL终端使用入门实践(增删改查篇)

2026-08-25 08:28:48

适用环境:麒麟 V10 + 金仓数据库 KingbaseES V8

目标:通过 ksql 终端完成数据库的增、删、改、查基本操作

前言

很多初次接触金仓数据库的朋友,在麒麟操作系统上常常卡在"怎么连接""怎么执行SQL"这些基础步骤上。本文基于真实项目中的操作记录,整理了一套完整的入门实践,从防火墙放行 、用户切换 ,到连接数据库 ,再到增删改查,逐一手把手演示。所有命令均已在实际环境中验证,放心跟着做即可。

1. 环境准备(防火墙 & 用户)

1.1. 放行数据库端口

金仓数据库默认端口为 54321,如果服务器开启了防火墙,需要先放行该端口:

bash

复制代码

sudo firewall-cmd --permanent --add-port=54321/tcp

sudo firewall-cmd --reload

sudo firewall-cmd --list-ports # 确认已生效

1.2. 切换到数据库管理员用户

金仓的 ksql 客户端命令通常只对 kingbase 用户或 root 用户可用,但 推荐切换到 kingbase 用户进行操作:

bash

复制代码

sudo -i # 切换至 root

su - kingbase # 再切换至 kingbase 专属用户

⚠️ 注意 :若直接在普通用户下执行 ksql,可能报错 command not found,因为环境变量未加载。

2. 连接数据库(ksql 登录)

2.1. 基本连接语法

bash

复制代码

ksql -h <主机IP> -p <端口> -U <用户名> -d <数据库名>

例如,使用 ahxny 用户连接 ahxny 数据库:

bash

复制代码

ksql -h 10.235.58.128 -p 54321 -U ahxny -d ahxny

2.2. 本地免密登录(已切换至 kingbase 用户)

如果只在本机操作,且当前用户为 kingbase,可以直接简写:

bash

复制代码

ksql -U system -p 54321 # 使用 system 用户

ksql -U ahxny -p 54321 # 使用普通业务用户

若省略 -d,默认连接到与用户名同名的数据库(如 ahxny 默认连接 ahxny 库)。

2.3. 测试连通性

在连接之前,可以用 telnet 测试端口是否可达:

bash

复制代码

telnet 10.235.58.128 54321

3. 数据库与表的基本查看

登录成功后,会进入 ksql 交互界面,提示符为 数据库名=> 或 数据库名=#。

3.1. 查看所有数据库

sql

复制代码

\l

输出示例(节选):

复制代码

Name | Owner | Encoding

---------------------------------+--------+----------

ahxny | ahxny | UTF8

tianyuan_multistation_dazhong | ahxny | UTF8

...

3.2. 切换数据库

sql

复制代码

\c 数据库名

例如:

sql

复制代码

\c tianyuan_multistation_dazhong

3.3. 查看当前数据库的所有表

sql

复制代码

\dt

3.4. 查看表结构

sql

复制代码

\d 表名

例如:

sql

复制代码

\d sys_estimateelectricity

4. 增删改查(CRUD)实战

接下来,我们以 forecast_pvarray 表为例,演示完整的增删改查操作。

4.1. 查询(SELECT)

查询全部数据:

sql

复制代码

SELECT * FROM forecast_pvarray;

条件查询:

sql

复制代码

SELECT id, pdc0, pvsys FROM forecast_pvarray WHERE pvsys = 2;

统计行数:

sql

复制代码

SELECT COUNT(*) FROM forecast_pvarray;

4.2. 插入(INSERT)

日志未直接给出插入示例,但这里补充标准语法

sql

复制代码

INSERT INTO forecast_pvarray (id, creatorid, createtime, deleted, pdc0, gamma_pdc, temp_ref, surface_tilt, surface_azimuth, pvsys, enterpriseid)

VALUES ('4', 'Amin', now(), 'f', 60000, -0.0034, 25.0, 2.06, 180.0, 3, '32a6060f');

💡 提示:now() 函数获取当前时间戳。

4.3. 更新(UPDATE)

根据日志,我们将所有记录的 enterpriseid 更新为指定的企业ID:

sql

复制代码

UPDATE forecast_pvarray

SET enterpriseid = '32a6060f';

也可以带条件更新:

sql

复制代码

UPDATE forecast_pvarray

SET pdc0 = 50000

WHERE id = '1';

更新后再次查询验证:

sql

复制代码

SELECT * FROM forecast_pvarray;

4.4. 删除(DELETE)

删除表中所有数据(谨慎操作):

sql

复制代码

DELETE FROM sys_weathergrid24hours;

删除后立即查看行数,确认已清空:

sql

复制代码

SELECT COUNT(*) FROM sys_weathergrid24hours; -- 返回 0

若只删除部分数据,加上 WHERE 条件:

sql

复制代码

DELETE FROM forecast_pvarray WHERE pvsys = 3;

5. 提交事务(COMMIT)

金仓默认是自动提交模式(每条SQL执行后自动提交),但如果显式开启了事务,需要手动提交。

若出现 WARNING: there is no transaction in progress,则表示当前没有事务,无需提交。

sql

复制代码

COMMIT;

6. 常见错误与避坑指南

错误1:ksql: command not found

原因 :未切换到 kingbase 用户,或环境变量未设置。

解决 :执行 su - kingbase 切换到金仓专用用户。

错误2:在 ksql 提示符下又输入 ksql ...

示例:

复制代码

ahxny=> ksql -U tianyuan -p 54321

原因 :已经把 ksql 当成了 SQL 语句执行。

解决 :ksql 是外部命令 ,只能在操作系统 shell 中执行;进入 ksql 交互界面后,只能输入 SQL 或元命令(以 \ 开头)。

错误3:表名或字段名大小写问题

金仓(基于 PostgreSQL)默认对未加双引号的对象名会转为小写。若建表时使用了双引号保留了大写,则查询时也必须加双引号。建议统一使用小写命名。

7. 扩展小技巧

7.1. 查看当前连接信息

sql

复制代码

\conninfo

7.2. 修改用户密码(管理员操作)

sql

复制代码

ALTER USER ahxny ENCRYPTED PASSWORD '新密码';

7.3. 创建数据库(管理员操作)

sql

复制代码

CREATE DATABASE tianyuan_base_dazhong;

7.4. 给表添加注释(便于维护)

sql

复制代码

COMMENT ON COLUMN forecast_pvarray.enterpriseid IS '企业Id';

8. 总结

通过本文,您已经掌握了在麒麟环境下使用金仓数据库 ksql 终端进行基本操作的完整流程:

✅ 防火墙配置与用户切换

✅ 多种方式的连接登录

✅ 查看数据库、表结构

✅ SELECT、INSERT、UPDATE、DELETE 增删改查

✅ 常见错误处理

金仓数据库的 ksql 与 PostgreSQL 的 psql 高度相似,熟悉之后可以平滑迁移。建议将常用命令整理成笔记,多加练习,就能快速上手。

祝您使用顺利!如有疑问,欢迎留言交流。

爱奇艺小说-海量影视书读不停 汽车乱档怎么办
相关内容