暂无图片
暂无图片
8
暂无图片
暂无图片
暂无图片

电科金仓KingbaseES的ksql常用命令

原创 飞天 2024-11-23
881

ksql概述

ksql是Kingbase 的交互式客户端工具。提供交互式查询,通过文件输入或者命令行输入,得到查询结果。此外,Ksql 还提供一些元命令和多种类似 shell 的特性来为编写脚本和自动化多种任务提供便利。

ksql常用命令

1、连接数据库(远程连接)

ksql -h 数据库主机ip地址 -U system -d kingbase

执行过程如下:

[kingbase@node1 ~]$ ksql -h 192.*.*.10 -U system -d kingbase
用户 system 的口令:
输入 "help" 来获取帮助信息.

kingbase=# 

2、连接数据库(本地快速连接)
当前用户的环境变量.bashrc中设置:

export KINGBASE_DATABASE=kingbase
export KINGBASE_HOST=192.*.*.10
export KINGBASE_PORT=54321
export KINGBASE_USER=system
export KINGBASE_PASSWORD=******

执行过程如下:

vi .bashrc加入:
export KINGBASE_DATABASE=kingbase
export KINGBASE_HOST=192.*.*.10
export KINGBASE_PORT=54321
export KINGBASE_USER=system
export KINGBASE_PASSWORD=******
[kingbase@node1 ~]$ source .bashrc
[kingbase@node1 ~]$ ksql
输入 "help" 来获取帮助信息.

kingbase=# 

3、查看连接信息

\conninfo

执行过程如下:

kingbase=# \conninfo
以用户 "system" 的身份, 在主机"192.*.*.10", 端口"54321"连接到数据库 "kingbase"

4、执行数据库命令(然后退出)

 -c "sql语句或者元命令"

执行过程如下:

[kingbase@node1 ~]$ ksql -h 192.*.*.10 -U system -d kingbase -c "select sysdate from dual"
用户 system 的口令:
       sysdate       
---------------------
 2024-11-23 21:22:02
(1 行记录)
[kingbase@node1 ~]$
[kingbase@node1 ~]$ ksql -h 192.*.*.10 -U system -d kingbase -c "\conninfo"
用户 system 的口令:
以用户 "system" 的身份, 在主机"192.*.*.10", 端口"54321"连接到数据库 "kingbase"

5、查看数据库版本

select version();
或者
ksql -V

执行过程如下:

kingbase=# select version();
                                                       version                                                        
----------------------------------------------------------------------------------------------------------------------
 KingbaseES V009R001C002B0014 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit
(1 行记录)

kingbase=# \q
[kingbase@node1 ~]$ ksql -V
ksql (Kingbase) V009R001C002B0014
[kingbase@node1 ~]$

6、 执行文件中的命令(然后退出)

-f filename

执行过程如下:

[kingbase@node1 ~]$ cat a.sql
select sysdate;
select version();
[kingbase@node1 ~]$ ksql -h 192.*.*.10 -U system -d kingbase -f a.sql
用户 system 的口令:
       sysdate       
---------------------
 2024-11-23 21:33:51
(1 行记录)

                                                       version                                                        
----------------------------------------------------------------------------------------------------------------------
 KingbaseES V009R001C002B0014 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit
(1 行记录)

[kingbase@node1 ~]$ 

7、将执行结果发送到文件或者是管道

 \g [FILE] or [|COMMAND]         

执行过程如下:

kingbase=# select sysdate;
       sysdate       
---------------------
 2024-11-23 21:10:52
(1 行记录)

kingbase=# \g a.txt
kingbase=# \q
[kingbase@node1 ~]$ cat a.txt
       sysdate       
---------------------
 2024-11-23 21:10:57
(1 行记录)

8、查看数据库列表

\l

执行过程如下:

kingbase=# \l
                                  数据库列表
   名称    | 拥有者 | 字元编码 |  校对规则   |    Ctype    |     存取权限      
-----------+--------+----------+-------------+-------------+-------------------
 kingbase  | system | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
 security  | system | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
 template0 | system | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/system        +
           |        |          |             |             | system=CTc/system
 template1 | system | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/system        +
           |        |          |             |             | system=CTc/system
 test      | system | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
(5 行记录)

9、查看对象列表

\d

执行过程如下:

kingbase=# \d
                       关联列表
 架构模式 |          名称           |  类型  | 拥有者 
----------+-------------------------+--------+--------
 public   | sys_stat_statements     | 视图   | system
 public   | sys_stat_statements_all | 视图   | system
 public   | testtab                 | 数据表 | system
(3 行记录)

kingbase=# 

10、退出ksql客户端

\q

执行过程如下:

kingbase=# \q
您在 /var/spool/mail/kingbase 中有新邮件
[kingbase@node1 ~]$ 

11、查看帮助

ksql --help

执行过程如下:

[kingbase@node1 ~]$ ksql --help
ksql是Kingbase 的交互式客户端工具。
使用方法:
  ksql [选项]... [数据库名称 [用户名称]]
通用选项:
  -B                       用户登录时提供验证码功能
  -c, --command=命令       执行单一命令(SQL或内部指令)然后结束
  -d, --dbname=DBNAME      指定要连接的数据库 (默认:"kingbase")
  -f, --file=文件名        从文件中执行命令然后退出
  -l, --list               列出所有可用的数据库,然后退出
  -v, --set=, --variable=NAME=VALUE
                           设置ksql变量NAME为VALUE
                           (例如,-v ON_ERROR_STOP=1)
  -V,--version            输出版本信息,然后退出
  -X, --no-ksqlrc          不读取启动文档(~/.ksqlrc)
  -1 ("one"), --single-transaction
                           作为一个单一事务来执行命令文件(如果是非交互型的)
  -?, --help[=options]     显示此帮助,然后退出
      --help=commands      列出反斜线命令,然后退出
      --help=variables     列出特殊变量,然后退出

输入和输出选项:
  -a, --echo-all           显示所有来自于脚本的输入
  -b, --echo-errors        回显失败的命令
  -e, --echo-queries       显示发送给服务器的命令
  -E, --echo-hidden        显示内部命令产生的查询
  -L, --log-file=文件名    将会话日志写入文件
  -M, --enable-client-encryption
                           启用使用客户端加密功能
  -n, --no-readline        禁用增强命令行编辑功能(readline)
  -o,--outPut=FILENAME    将查询结果发送到file(or |pipe)
  -q,--quiet              静静地运行(没有消息,只有查询输出)
  -s, --single-step        单步模式 (确认每个查询)
  -S, --single-line        单行模式 (一行就是一条 SQL 命令)

输出格式选项 :
  -A,--no-align           不对齐表输出模式
      --csv                CSV(逗号分隔值)表输出模式
  -F, --field-separator=STRING
                            用于未对齐输出的字段分隔符(默认值:"|")
  -H,--html               HTML表输出模式
  -P, --pset=变量[=参数]   设置将变量打印到参数的选项(查阅 \pset 命令)
  -R, --record-separator=STRING
                            记录分隔符用于未对齐输出(默认:newline)
  -t, --tuples-only        只打印记录i
  -T, --table-attr=文本    设定 HTML 表格标记属性(例如,宽度,边界)
  -x,--expanded           打开扩展表outPut
  -z, --field-separator-zero
                            将未对齐输出的字段分隔符设置为零字节
  -0, --record-separator-zero
                            将未对齐输出的记录分隔符设置为零字节

联接选项:
  -h, --host=主机名        数据库服务器主机或socket目录(默认:"本地接口")
  -p, --port=端口          数据库服务器的端口(默认:"54321")
  -U,--username=USERNAME  数据库用户名(默认:"kingbase")
  -w, --no-password        永远不提示输入口令
  -W, --password           强制口令提示 (自动)
  -C,--client-cert-path       cert-authentication文件路径
  -k,--client-certkey-path    证书认证私钥文件路径
  -K, --client-certpin-path    读取私钥文件的加密pin码文件路径

更多信息,请在ksql中输入 "\?"(用于内部命令),
或者参考Kingbase ES文档中的ksql章节。

12、查看ksql元命令

\?

执行过程如下:

kingbase=# \?
一般性
  \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}
                         连接到新数据库(当前是"kingbase")
  \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的大对象
kingbase=# 

总结

本文只列出了ksql命令的部分用法,其实ksql是一个强大的数据库管理工具,通过不断学习和实践,可以更有效地利用它来管理和操作数据库。

最后修改时间:2024-11-25 09:43:50
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论