0


金仓数据库KingbaseES 命令行工具KSQL的使用

关键字:

命令行、KSQL、金仓数据库

1.什么是KSQL

KSQL是提供给DBA的与KES数据库交互的命令行程序,有些工作场景下无法使用图形化界面工具,此时就可以使用KSQL进行数据的操作和数据库的维护。

2.查看KSQL工具的帮助

  1. [kingbase@localhost ~]$ ksql --help
  2. ksql是Kingbase 的交互式客户端工具。
  3. 使用方法:
  4. ksql [选项]... [数据库名称 [用户名称]]
  5. 通用选项:
  6. -B 用户登录时提供验证码功能
  7. -c, --command=命令 执行单一命令(SQL或内部指令)然后结束
  8. -d, --dbname=DBNAME 指定要连接的数据库 (默认:"zl")
  9. -f, --file=文件名 从文件中执行命令然后退出
  10. -l, --list 列出所有可用的数据库,然后退出
  11. -v, --set=, --variable=NAME=VALUE
  12. 设置ksql变量NAME为VALUE
  13. (例如,-v ON_ERROR_STOP=1)
  14. -V,--version 输出版本信息,然后退出
  15. -X, --no-ksqlrc 不读取启动文档(~/.ksqlrc)
  16. -1 ("one"), --single-transaction
  17. 作为一个单一事务来执行命令文件(如果是非交互型的)
  18. -?, --help[=options] 显示此帮助,然后退出
  19. --help=commands 列出反斜线命令,然后退出
  20. --help=variables 列出特殊变量,然后退出
  21. 输入和输出选项:
  22. -a, --echo-all 显示所有来自于脚本的输入
  23. -b, --echo-errors 回显失败的命令
  24. -e, --echo-queries 显示发送给服务器的命令
  25. -E, --echo-hidden 显示内部命令产生的查询
  26. -L, --log-file=文件名 将会话日志写入文件
  27. -M, --enable-client-encryption
  28. 启用使用客户端加密功能
  29. -n, --no-readline 禁用增强命令行编辑功能(readline)
  30. -o,--outPut=FILENAME 将查询结果发送到file(or |pipe)
  31. -q,--quiet 静静地运行(没有消息,只有查询输出)
  32. -s, --single-step 单步模式 (确认每个查询)
  33. -S, --single-line 单行模式 (一行就是一条 SQL 命令)
  34. 输出格式选项 :
  35. -A,--no-align 不对齐表输出模式
  36. --csv CSV(逗号分隔值)表输出模式
  37. -F, --field-separator=STRING
  38. 用于未对齐输出的字段分隔符(默认值:"|")
  39. -H,--html HTML表输出模式
  40. -P, --pset=变量[=参数] 设置将变量打印到参数的选项(查阅 \pset 命令)
  41. -R, --record-separator=STRING
  42. 记录分隔符用于未对齐输出(默认:newline)
  43. -t, --tuples-only 只打印记录i
  44. -T, --table-attr=文本 设定 HTML 表格标记属性(例如,宽度,边界)
  45. -x,--expanded 打开扩展表outPut
  46. -z, --field-separator-zero
  47. 将未对齐输出的字段分隔符设置为零字节
  48. -0, --record-separator-zero
  49. 将未对齐输出的记录分隔符设置为零字节
  50. 联接选项:
  51. -h, --host=主机名 数据库服务器主机或socket目录(默认:"本地接口")
  52. -p, --port=端口 数据库服务器的端口(默认:"54321")
  53. -U,--username=USERNAME 数据库用户名(默认:"kingbase")
  54. -w, --no-password 永远不提示输入口令
  55. -W, --password 强制口令提示 (自动)
  56. -C,--client-cert-path cert-authentication文件路径
  57. -k,--client-certkey-path 证书认证私钥文件路径
  58. -K, --client-certpin-path 读取私钥文件的加密pin码文件路径
  59. 更多信息,请在ksql中输入 "?"(用于内部命令),
  60. 或者参考Kingbase ES文档中的ksql章节。

3. 查看元命令帮助

zl=# ?

一般性

\crosstabview [COLUMNS] 执行查询并且以交叉表显示结果

\errverbose 以最冗长的形式显示最近的错误消息

\g [FILE] or [|COMMAND] 将执行结果发送到文件或者是管道

\gdesc 描述查询结果,而不执行它

\gexec 执行策略,然后执行其结果中的每个值

\gset [PREFIX] 执行查询并把结果存到ksql变量中

\gx[FILE] as \g, 但强制扩展输出模式

\q 退出 ksql

\watch [SEC] 每隔SEC秒执行一次查询

帮助

? [commands] 显示反斜线命令的帮助

? options 显示 ksql 命令行选项的帮助

? variables 显示特殊变量的帮助

查询缓存区

\e [FILE] [LINE] 使用外部编辑器编辑查询缓存区(或文件)

\ef [FUNCNAME [LINE]] 使用外部编辑器编辑函数定义

\ev [VIEWNAME [LINE]] 用外部编辑器编辑视图定义

\p 显示查询缓存区的内容

\r 重置(清除)查询缓存区

\s [FILE] 显示历史记录或将历史记录保存在文件中

\w FILE 将查询缓存区的内容写入文件

输入/输出

\copy ... 执行 SQL COPY,将数据流发送到客户端主机

\echo [STRING] 将字符串写入标准输出

\i FILE 从文件中执行命令

\ir FILE 与 \i类似, 但是相对于当前脚本的位置

\o [FILE] 将全部查询结果写入文件或 |管道

\qecho [STRING] 写入字符串以查询输出流(see \o)

条件

\if EXPRESSION 条件语句开始块

\elif EXPRESSION else if 语句块

\else 当前条件块内的最终备选方案

\endif 条件块的结尾

资讯性

(选项: S = 显示系统对象, + = 其余的详细信息)

\d[S+] 列出表,视图和序列

\d[S+] NAME 描述表,视图,序列,或索引

\da[S] [PATTERN] 列出聚合函数

\dA[+] [PATTERN] 列出访问方法

\db[+] [PATTERN] 列出表空间

\dc[S+] [PATTERN] 列表转换

\dC[+] [PATTERN] 列出类型强制转换

\dd[S] [PATTERN] 显示没有在别处显示的对象描述

\dD[S+] [PATTERN] 列出共同值域

\ddp [PATTERN] 列出默认权限

\dE[S+] [PATTERN] 列出引用表

\det[+] [PATTERN] 列出引用表

\des[+] [PATTERN] 列出外部服务器

\deu[+] [PATTERN] 列出用户映射

\dew[+] [PATTERN] 列出外部数据封装器

\df[anptw][S+] [PATRN] 列出[只包括 聚合/常规/程序/触发器/窗口]函数

\dF[+] [PATTERN] 列出文本搜索配置

\dFd[+] [PATTERN] 列出文本搜索字典

\dFp[+] [PATTERN] 列出文本搜索解析器

\dFt[+] [PATTERN] 列出文本搜索模版

\dg[S+] [PATTERN] 列出角色

\di[S+] [PATTERN] 列出索引

\dl 列出大对象, 功能与\lo_list相同

\dL[S+] [PATTERN] 列出所有过程语言

\dm[S+] [PATTERN] 列出所有物化视图

\dn[S+] [PATTERN] 列出所有模式

\do[S+] [PATTERN] 列出运算符

\dO[S+] [PATTERN] 列出所有校对规则

\dp [PATTERN] 列出表,视图和序列的访问权限

\dpkg[S+] [PATTERN] 列出包

\dP[itn+] [PATTERN] 列出 [仅索引/表] 分区关系 [n=嵌套]

\drds [PATRN1 [PATRN2]] 列出每个数据库的角色设置

\dRp[+] [PATTERN] 列出复制发布

\dRs[+] [PATTERN] 列出复制订阅

\ds[S+] [PATTERN] 列出序列

\dt[S+] [PATTERN] 列出表

\dT[S+] [PATTERN] 列出数据类型

\du[S+] [PATTERN] 列出角色

\dv[S+] [PATTERN] 列出视图

\dx[+] [PATTERN] 列出扩展

\dy [PATTERN] 列出所有事件触发器

\l[+] [PATTERN] 列出所有数据库

\sf[+] FUNCNAME 显示一个函数的定义

\sv[+] VIEWNAME 显示一个视图的定义

\z [PATTERN] 和\dp的功能相同

格式化

\a 在未对齐和对齐输出模式之间的切换

\C [STRING] 设置表的标题,或如果没有的标题就取消

\f [STRING] 显示或设置未对齐查询的字段分隔符

\H 切换HTML输出模式(当前关闭)

\pset [NAME [VALUE]] set table outPut option

(border|columns|csv_fieldsep|expanded|fieldsep|

fieldsep_zero|footer|format|linestyle|null|

numericlocale|pager|pager_min_lines|recordsep|

recordsep_zero|tableattr|title|tuples_only|

unicode_border_linestyle|unicode_column_linestyle|

unicode_header_linestyle)

\t [on|off] 只显示记录 (目前是关闭)

\T [STRING] 设置HTML <表格>标签属性, 或者如果没有的话取消设置

\x [on|off|auto] 切换扩展输出(当前关闭)

连接

\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}

连接到新数据库(当前是"zl")

\conninfo 显示当前连接的相关信息

\encoding [ENCODING] 显示或设定客户端编码

\password [USERNAME] 安全地为用户更改口令

操作系统

\cd [DIR] 更改目前的工作目录

\setenv NAME [VALUE] 设置或清空环境变量

\timing [on|off] 切换命令计时开关 (目前是关闭)

! [COMMAND] 在 shell中执行命令或启动一个交互式shell

变量

\prompt [TEXT] NAME 提示用户设定内部变量

\set [NAME [VALUE]] 设定内部变量,若无参数则列出全部变量

\unset NAME 清空(删除)内部变量

大对象

\lo_export LOBOID FILE 导出指定LOBIOD的大对象到文件

\lo_import FILE [COMMENT] 从文件FILE导入大对象,并且可以添加注释

\lo_list 列出所有的大对象

\lo_unlink LOBOID 移除指定LOBOID的大对象

具体操作

4.1 通过KSQL连接到某个数据库

ksql -h 127.0.0.1 -p 54322 -U kingbase -d test

4.2 列出所有数据库

zl-# \l

数据库列表

名称 | 拥有者 | 字元编码 | 校对规则 | Ctype | 存取权限

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

kadmin | kingbase | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |

kingbase | kingbase | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =Tc/kingbase +

| | | | | kingbase=CTc/kingbase

kops | kmonitor | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |

kops2 | kmonitor | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |

kops3 | kmonitor | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |

4.3 列出表

zl-# \dt

关联列表

架构模式 | 名称 | 类型 | 拥有者

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

public | database_area_set | 数据表 | kmonitor

public | database_auto_name | 数据表 | kmonitor

public | database_biz_line_type_info | 数据表 | kmonitor

public | database_case_alone_base_info | 数据表 | kmonitor

public | database_case_cluster_base_info | 数据表 | kmonitor

public | database_case_failover | 数据表 | kmonitor

public | database_case_info | 数据表 | kmonitor

public | database_case_witness_info | 数据表 | kmonitor

public | database_cluster_backup_path | 数据表 | kmonitor

public | database_cluster_case_internal_inspect | 数据表 | kmonitor

public | database_cluster_case_rel_info | 数据表 | kmonitor

4.4 列出序列

zl-# \ds

关联列表

架构模式 | 名称 | 类型 | 拥有者

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

public | database_area_set_seq | 序列数 | kmonitor

public | database_auto_name_id_seq | 序列数 | kmonitor

public | database_auto_name_seq | 序列数 | kmonitor

public | database_biz_line_type_info_seq | 序列数 | kmonitor

public | database_case_alone_base_info_seq | 序列数 | kmonitor

public | database_case_cluster_base_info_seq | 序列数 | kmonitor

public | database_case_failover_seq | 序列数 | kmonitor

public | database_case_info_seq | 序列数 | kmonitor

public | database_case_witness_info_seq | 序列数 | kmonitor

4.5 列出视图

zl-# \dv

关联列表

架构模式 | 名称 | 类型 | 拥有者

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

public | sys_buffercache | 视图 | kingbase

public | sys_stat_statements | 视图 | kingbase

public | sys_stat_statements_all | 视图 | kingbase

(3 行记录)

4.6 列出角色

zl-# \dg

角色列表

角色名称 | 属性 | 成员属于

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

admin | 超级用户 | {}

kadmin | | {system}

kcluster | 无法登录 | {}

kingbase | 超级用户, 建立角色, 建立 DB, 复制, 绕过RLS | {admin}

kmonitor | 建立 DB | {admin,system}

oadba | | {}

plprofiler | 无法登录 | {}

4.7 列出索引

zl-# \di

关联列表

架构模式 | 名称 | 类型 | 拥有者 | 数据表

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

public | PK_database_read_log_file | 索引 | kmonitor | database_read_log_file

public | UQ_database_read_log_file | 索引 | kmonitor | database_read_log_file

public | case_dix | 索引 | kmonitor | kingbase_sys_stat_statements_stddev_plan_seconds

public | cluster_dix | 索引 | kmonitor | kingbase_sys_stat_statements_stddev_plan_seconds

public | con_public_database_auto_name_constraint_1 | 索引 | kmonitor | database_auto_name

public | con_public_database_auto_name_constraint_2 | 索引 | kmonitor | database_auto_name

public | con_public_km_inspect_user_constraint_1 | 索引 | kmonitor | km_inspect_user

public | con_public_km_operate_log_constraint_1 | 索引 | kmonitor | km_operate_log

public | inxex_public_kingbase_sys_log_info_index_1 | 索引 | kmonitor | kingbase_sys_log_info

public | kingbase_data_analysis_info_idx | 索引 | kmonitor | kingbase_data_analysis_info


本文转载自: https://blog.csdn.net/arthemis_14/article/details/142177667
版权归原作者 沉舟侧畔千帆过_ 所有, 如有侵权,请联系我们删除。

“金仓数据库KingbaseES 命令行工具KSQL的使用”的评论:

还没有评论