GBase 8c
运维管理
文章

GBase 8c gsql工具概述

GBase社区管理员
发表于2024-02-04 16:58:56185次浏览0个评论

gsql是GBase 8c提供的命令行下运行的数据库连接工具。用户可以通过此工具连接服务器,并对其进行操作和维护。gsql提供操作数据库的基本功能,以及若干高级特性,便于用户使用。

gsql的高级特性如下表所示。

表1gsql 高级特性

特性名称描述
变量

gsql提供类似于Linux的shell命令的变量特性,可以使用gsql的\set原命令设置变量,格式如下:

\set varname value

删除变量的格式如下:

\unset varname

说明

  • 变量只是简单的名称/值对,这里的值可以是任意长度。

  • 变量名称必须由字母(包括非拉丁字母)、数字和下划线组成,且对大小写敏感。

  • 如果使用\set varname的格式(不带第二个参数),则只是设置这个变量而没有给变量赋值。

  • 可以使用不带参数的\set来显示所有变量的值。

SQL代换

利用gsql的变量特性,可以将常用SQL语句设置为变量,以简化操作。

自定义提示符

gsql支持使用用户自定义的提示符。通过修改gsql预留的三个变量PROMPT1、PROMPT2、PROMPT3来改变提示符。这三个变量的值,可以由用户自定义,也可以使用gsql预定义值。

命令自动补齐

根据GBase 8c语法规则,gsql支持使用Tab键进行命令的自动补齐功能。当编译时指定了--with-readline选项,且客户端连接时指定-r参数时,此功能处于打开状态。

例如,crea后按Tab键,gsql会将其补齐为create。

说明

  • 支持数据库SQL关键字如select、create、table等。

  • 支持表名、视图名等自定义标识符的补齐。

  • 元命令选项'S'、'+'不支持自动补齐。

  • 对表进行补齐时,只有前缀是“pg_”才会补齐系统表。

  • 不支持建表时字段类型的补齐。

  • select后不支持任何补齐。

  • 不支持常量与宏的自动补齐。

  • select * from a,b... 不支持第二个开始表的自动补齐, insert into t1 (col1, col2, ...) 不支持第二个列的自动补齐。

  • 不支持create tablespace语句with以及with后参数的自动补齐。

  • 创建索引不支持local、global的自动补齐,修改索引不支持rebuild自动补齐。

  • set语句仅支持自动补全user和superuser级别的参数。

  • 不支持if exists的自动补齐。

  • 不支持表名.列名的自动补齐,如alter sequence <name> owned by tableName.colName,owned by。

  • 不支持自定义操作符自动补齐。使用复制粘贴这种方式输入命令,如果粘贴的命令里面有TAB键有可能会使输入命令的格式错乱,无法正常执行。

客户端操作历史记录

gsql支持查看客户端操作历史记录。当客户端连接时指定-r参数,此功能处于打开状态。可以通过\set设置记录历史的条数,

例如,\set HISTSIZE 50,将记录历史的条数设置为50;\set HISTSIZE 0,不记录历史。

说明

  • 客户端操作历史记录条数默认设置为32条,最多支持记录500条。当客户端交互式输入包含中文字符时,只支持UTF-8 的编码环境。

  • 出于安全考虑,将包含PASSWORD、IDENTIFIED敏感词的记录识别为敏感信息,不会记录到历史信息中,即不能通过上下翻回显。

评论已关闭