人大金仓Kingbase数据库KSQL 常用命令指南

发布于:2025-06-27 ⋅ 阅读:(24) ⋅ 点赞:(0)

人大金仓Kingbase数据库KSQL 常用命令指南

1. 连接与基本操作

1.1 连接数据库

# 基础语法
ksql -U 用户名 -d 数据库名 -h 主机名 -p 端口号
# 示例
ksql -U system -d testdb -h 127.0.0.1 -p 54321

1.2 执行SQL脚本

# 基础语法
ksql -U <用户名> -d -W -f <SQL脚本文件路径>

# 示例
ksql -U root -d -W -f init_database.sql

1.3 常用元命令

\l        -- 列出所有数据库
\c 数据库名 -- 切换数据库
\d        -- 列出当前数据库所有表
\d 表名   -- 显示表结构
\q        -- 退出KSQL

1.4 删除数据库

1.4.1 使用 SQL 命令删除数据库
-- 基本删除命令(需要切换到其他数据库后执行)
DROP DATABASE [IF EXISTS] 数据库名称;

-- 示例
DROP DATABASE IF EXISTS test_db;
1.4.2 强制删除数据库(有连接时)
-- 先断开所有连接再删除
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = '数据库名称';

DROP DATABASE 数据库名称;

2. 数据查询(SELECT)

基本查询

SELECT * FROM 表名;                     -- 查询所有数据
SELECT1,2 FROM 表名;              -- 查询指定列
SELECT * FROM 表名 WHERE 条件;           -- 条件查询
SELECT * FROM 表名 LIMIT 10;            -- 限制返回行数

高级查询

-- 排序
SELECT * FROM 表名 ORDER BY 列名 DESC;

-- 分组聚合
SELECT 部门, COUNT(*) FROM 员工表 GROUP BY 部门;

-- 连接查询
SELECT a.*, b.名称 
FROM1 a JOIN2 b ON a.id = b.id;

-- 子查询
SELECT * FROM1 WHERE id IN (SELECT id FROM2 WHERE 条件);

3. 数据插入(INSERT)

-- 插入单条数据
INSERT INTO 表名 (1,2) VALUES (1,2);

-- 插入多条数据
INSERT INTO 表名 (1,2) 
VALUES (1,2), (3,4), (5,6);

-- 从其他表插入数据
INSERT INTO 目标表 (1,2)
SELECT 列A, 列B FROM 源表 WHERE 条件;

4. 数据更新(UPDATE)

-- 基本更新
UPDATE 表名 SET1=1,2=2 WHERE 条件;

-- 使用表达式更新
UPDATE 产品 SET 价格=价格*1.1 WHERE 类别='电子产品';

-- 关联更新
UPDATE1 SET1=2.列A 
FROM2 WHERE1.id=2.id;

5. 数据删除(DELETE)

-- 条件删除
DELETE FROM 表名 WHERE 条件;

-- 清空表(可回滚)
DELETE FROM 表名;

-- 快速清空表(不可回滚)
TRUNCATE TABLE 表名;

6. 表结构操作(DDL)

创建表

CREATE TABLE 表名 (
    id SERIAL PRIMARY KEY,
    姓名 VARCHAR(50) NOT NULL,
    年龄 INT CHECK(年龄>0),
    入职日期 DATE DEFAULT CURRENT_DATE
);

修改表

-- 添加列
ALTER TABLE 表名 ADD COLUMN 列名 数据类型;

-- 修改列类型
ALTER TABLE 表名 ALTER COLUMN 列名 TYPE 新类型;

-- 删除列
ALTER TABLE 表名 DROP COLUMN 列名;

删除表

DROP TABLE IF EXISTS 表名;

7. 索引操作

-- 创建索引
CREATE INDEX 索引名 ON 表名 (列名);

-- 创建唯一索引
CREATE UNIQUE INDEX 索引名 ON 表名 (列名);

-- 删除索引
DROP INDEX 索引名;

8. 事务控制

BEGIN;  -- 开始事务
-- 执行SQL语句
COMMIT; -- 提交事务
-- 或
ROLLBACK; -- 回滚事务

9. 常用函数

-- 字符串函数
SELECT CONCAT('Hello', ' ', 'Kingbase');
SELECT SUBSTRING('Kingbase' FROM 1 FOR 4);

-- 日期函数
SELECT CURRENT_DATE;
SELECT EXTRACT(YEAR FROM CURRENT_DATE);

-- 数学函数
SELECT ROUND(3.14159, 2);
SELECT RANDOM();  -- 0到1之间的随机数

10. 用户权限管理

-- 创建用户
CREATE USER 用户名 WITH PASSWORD '密码';

-- 授权
GRANT ALL PRIVILEGES ON 表名 TO 用户名;

-- 撤销权限
REVOKE ALL PRIVILEGES ON 表名 FROM 用户名;

注意事项

  1. KingbaseES 兼容 PostgreSQL 语法,部分特殊功能可能有差异
  2. 生产环境操作前建议先备份数据
  3. V7 和 V8 版本在部分语法上可能有区别
  4. 使用大写表名和列名时需要用双引号括起来

网站公告

今日签到

点亮在社区的每一天
去签到