人大金仓KCA | 数据库对象管理工具与命令行工具KSQL
OS版本:CentOS-7-x86_64-Everything-2009
KES版本:KingbaseES_V008R006C008B0014_Lin64
许可证版本:license_39893_0.dat(开发版)
一、知识预备
1. 数据库对象管理工具
数据库对象管理工具是人大金仓提供的连接KES数据库的图形化客户端工具,可用于开发工程师对数据库项目进行开发,为DBA提供了丰富的运维功能,类似于Navicat。在安装KingbaseES的时候会自动安装数据库对象管理工具,可以在菜单中找到。
数据对象管理工具特点
- 图形化操作方便开发人员编写和调试SQL及PL/SQL代码
- 对象展示直观,适合初学者
- 操作简单,省去命令编写
2. 命令行工具KSQL
KSQl是人大金仓提供给数据库管理员与KES数据库交互的命令行客户端命令,使用方式与mysql等命令类似。KSQL的一个缺点是不能通过Ctrl+L
清屏,但是KSQL可以利用tab
键多层级、持续智能提示和补全,通过配置和使用环境变量,可以快速登录数据库。
可以通过修改环境变量使命令行帮助信息为中文
echo "export LANG=zh_CN.UTF_8" >> ~/.bashrc
source ~/.bashrc
KSQL的常见参数
参数 | 说明 |
---|---|
-h | 连接服务器的IP地址 |
-p | 连接服务器的端口号,设置过环境变量后可以不指定 |
-U | 连接数据库的用户名 |
-c | 连接数据库执行临时命令,命令执行完断开连接 |
-d | 指定连接时登录的数据库 |
-V | 打印数据库版本信息 |
-o | 将命令输出结果重定向到指定文件中 |
3. KSQL元命令
ksql提供了一组以\
开头的快捷命令
查看元命令帮助
ksql -Usystem -dtest
常用元命令介绍
参数 | 说明 |
---|---|
\d | 列出表、视图和序列 |
\q | 退出数据库交互 |
\du | 列出所有角色 |
\ds | 列出所有序列 |
\l | 列出所有数据库 |
\di | 列出索引 |
\i | 在文件中执行命令,可以用户运行SQL文件 |
\conninfo | 显示当前连接的相关信息 |
\! | 在shell中执行命令或启动一个交互式shell |
4. KingBaseES中支持的环境变量
KSQL可以通过定义环境变量快速登录数据库
环境变量 | 说明 |
---|---|
KINGBASE_HOST | 设置默认登录的主机名 |
KINGBASE_PORT | 设置默认端口号 |
KINGBASE_DATABASE | 设置默认登录的数据库 |
KINGBASE_USER | 设置默认使用的用户名 |
LANG | 默认语言 |
二、具体实施
1. 切换EasyKStudio界面语言
[Step1]:
打开EasyKStudio,选择【Windows】,选择【Preferences】
[Step2]:
选择【Database User Interface】
1. 使用EasyKStudio连接KingBaseES
[Step1]:
新建数据库连接
[Step2]:
填写完相关参数后,点击测试连接
[Step3]:
点击【完成】
[Step4]:
主界面
2. 新建用户
配置需求
- 创建用户 user_admin、 user_rw、user_r1、user_r2
- 创建用户时使用默认权限,密码均为 kingbase。
- 允许用户 user_r1 最多可同时创建 10 个连接。
[Step1]:
新建用户user_admin、user_rw、user_r2
[Step2]:
新建用户user_r1,限制最多可同时创建 10 个连接
[Step3]:
验证:列出数据库用户
ksql -Usystem -dtest -c "\du user*"
3. 常用命令组合
3.1 使用TCP/IP方式登录数据库
[Step1]:
使用-h选项指定IP地址
ksql -h 192.168.19.248 -d test -Usystem
select inet_client_addr(),inet_client_port();
[Step2]:
使用连接串的方式登录数据库
ksql 'hostaddr=192.168.19.248 port=52024 user=system dbname=test'
3.2 在连接中切换对象
[Step1]:
切换用户
ksql -d test -Usystem
\c - user_admin
\conninfo
[Step2]:
切换数据库
ksql -d test -Usystem
\c kingbase
\conninfo
[Step3]:
同时切换用户和数据库
ksql -d test -Usystem
\c kingbase user_admin
3.3 执行SQL语句
[Step1]:
登录数据库,然后执行SQL语句
ksql -d test -Usystem
select * from sys.dual;
[Step2]:
非交互式执行SQL
ksql -d test -Usystem -c "select * from sys.dual"
[Step3]:
无需登录数据库:执行多行SQL语句
vim demo.sql
create table student(
ID int primary key,
NAME varchar(20),
Birthday date
);
ksql -d test -Usystem -f "demo.sql"
ksql -d test -Usystem -c "select * from student"
[Step4]:
登录数据库:执行多行SQL语句
vim insert.sql
INSERT INTO student
VALUES
(10001,'tom','1990-04-12'),
(10002,'harry','1993-07-05'),
(10003,'barry','1992-02-23');
ksql -d test -Usystem
\i insert.sql
3.4 查询相关信息
[Step1]:
查看表的详细信息
ksql -d test -Usystem
\d student
[Step2]:
查看用户和角色信息
ksql -d test -Usystem
\du
3.5 导出导出表数据
[Step1]:
将student表中的数据导出为csv格式
\copy student to student.csv csv
\! cat student.csv
[Step2]:
将student表中的数据导出为文本格式
\copy student to student.txt
\! cat student.txt
[Step3]:
将student表中的数据导出为二进制格式
\copy student to student.dat binary
\! cat student.dat
[Step4]:
将csv文件导入数据库表
delete from student where ID=10001;
delete from student where ID=10002;
delete from student where ID=10003;
\copy student from student.csv csv
select * from student;