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

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

人大金仓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. 使用大写表名和列名时需要用双引号括起来

相关文章:

  • 在哪里做网站学生个人网页制作
  • 收集链接 做网站网络热词
  • 镇江网站关键词优化广告制作公司
  • 盘锦网站建设公司seo的概念是什么
  • 筑巢网络官方网站南宁关键词优化软件
  • phpcms中的网站介绍页优化设计答案
  • Vue-15-前端框架Vue之应用基础编程式路由导航
  • Node.js特训专栏-实战进阶:9.MySQL连接池配置与优化
  • leetcode 65
  • A模块 系统与网络安全 第三门课 网络通信原理
  • react - ReactRouter—— 路由传参
  • MP1652GTF-Z:MPS高效3A降压转换器 工业5G通信专用
  • React HOC(高阶组件-补充篇)
  • ubuntu安装docker遇到权限问题
  • kubernetes》》k8s》》滚动发布 、金丝雀发布 、
  • Vue-14-前端框架Vue之应用基础嵌套路由和路由传参
  • 闲庭信步使用SV搭建图像测试平台:第十三课——谈谈SV的数据类型
  • 在一个成熟产品中,如何设计数据库架构以应对客户字段多样化,确保系统的可维护性、可扩展性和高性能。
  • androidx中<layout>根布局的意义及用法
  • 从UI设计到数字孪生:构建智慧城市的数据可视化体系
  • 百度中年危机:一场艰难的突围战
  • 解决uniapp vue3版本封装组件后:deep()样式穿透不生效的问题
  • ISP Pipeline(6): Color Filter Array Interpolation 色彩滤波阵列
  • 创客匠人解析视频号公私域互通逻辑:知识变现的破圈与沉淀之道
  • Pycharm无法运行Vue项目的解决办法
  • Qt实现tcp通信(QTcpServer和QTcpSocket的应用)详细教程