人大金仓Kingbase数据库KSQL 常用命令指南
人大金仓Kingbase数据库KSQL 常用命令指南
1. 连接与基本操作
1.1 连接数据库
# 基础语法 ksql -U 用户名 -d 数据库名 -h 主机名 -p 端口号 # 示例 ksql -U system -d testdb -h 127.0.0.1 -p 543211.2 执行SQL脚本
# 基础语法 ksql -U <用户名>-W -f <SQL脚本文件路径># 示例 ksql -U root -W -f init_database.sql1.3 常用元命令
\l -- 列出所有数据库 \c 数据库名 -- 切换数据库 \d -- 列出当前数据库所有表 \d 表名 -- 显示表结构 \q -- 退出KSQL1.4 删除数据库
1.4.1 使用 SQL 命令删除数据库
-- 基本删除命令(需要切换到其他数据库后执行)DROPDATABASE[IFEXISTS] 数据库名称;-- 示例DROPDATABASEIFEXISTS test_db;1.4.2 强制删除数据库(有连接时)
-- 先断开所有连接再删除SELECT pg_terminate_backend(pg_stat_activity.pid)FROM pg_stat_activity WHERE pg_stat_activity.datname ='数据库名称';DROPDATABASE 数据库名称;2. 数据查询(SELECT)
基本查询
SELECT*FROM 表名;-- 查询所有数据SELECT 列1, 列2FROM 表名;-- 查询指定列SELECT*FROM 表名 WHERE 条件;-- 条件查询SELECT*FROM 表名 LIMIT10;-- 限制返回行数高级查询
-- 排序SELECT*FROM 表名 ORDERBY 列名 DESC;-- 分组聚合SELECT 部门,COUNT(*)FROM 员工表 GROUPBY 部门;-- 连接查询SELECT a.*, b.名称 FROM 表1 a JOIN 表2 b ON a.id = b.id;-- 子查询SELECT*FROM 表1WHERE id IN(SELECT id FROM 表2WHERE 条件);3. 数据插入(INSERT)
-- 插入单条数据INSERTINTO 表名 (列1, 列2)VALUES(值1, 值2);-- 插入多条数据INSERTINTO 表名 (列1, 列2)VALUES(值1, 值2),(值3, 值4),(值5, 值6);-- 从其他表插入数据INSERTINTO 目标表 (列1, 列2)SELECT 列A, 列B FROM 源表 WHERE 条件;4. 数据更新(UPDATE)
-- 基本更新UPDATE 表名 SET 列1=值1, 列2=值2WHERE 条件;-- 使用表达式更新UPDATE 产品 SET 价格=价格*1.1WHERE 类别='电子产品';-- 关联更新UPDATE 表1SET 列1=表2.列A FROM 表2WHERE 表1.id=表2.id;5. 数据删除(DELETE)
-- 条件删除DELETEFROM 表名 WHERE 条件;-- 清空表(可回滚)DELETEFROM 表名;-- 快速清空表(不可回滚)TRUNCATETABLE 表名;6. 表结构操作(DDL)
创建表
CREATETABLE 表名 ( id SERIALPRIMARYKEY, 姓名 VARCHAR(50)NOTNULL, 年龄 INTCHECK(年龄>0), 入职日期 DATEDEFAULTCURRENT_DATE);修改表
-- 添加列ALTERTABLE 表名 ADDCOLUMN 列名 数据类型;-- 修改列类型ALTERTABLE 表名 ALTERCOLUMN 列名 TYPE 新类型;-- 删除列ALTERTABLE 表名 DROPCOLUMN 列名;删除表
DROPTABLEIFEXISTS 表名;7. 索引操作
-- 创建索引CREATEINDEX 索引名 ON 表名 (列名);-- 创建唯一索引CREATEUNIQUEINDEX 索引名 ON 表名 (列名);-- 删除索引DROPINDEX 索引名;8. 事务控制
BEGIN;-- 开始事务-- 执行SQL语句COMMIT;-- 提交事务-- 或ROLLBACK;-- 回滚事务9. 常用函数
-- 字符串函数SELECT CONCAT('Hello',' ','Kingbase');SELECT SUBSTRING('Kingbase'FROM1FOR4);-- 日期函数SELECTCURRENT_DATE;SELECT EXTRACT(YEARFROMCURRENT_DATE);-- 数学函数SELECTROUND(3.14159,2);SELECT RANDOM();-- 0到1之间的随机数10. 用户权限管理
-- 创建用户CREATEUSER 用户名 WITH PASSWORD '密码';-- 授权GRANTALLPRIVILEGESON 表名 TO 用户名;-- 撤销权限REVOKEALLPRIVILEGESON 表名 FROM 用户名;注意事项
- KingbaseES 兼容 PostgreSQL 语法,部分特殊功能可能有差异
- 生产环境操作前建议先备份数据
- V7 和 V8 版本在部分语法上可能有区别
- 使用大写表名和列名时需要用双引号括起来