返回首页

gbase数据、南大通用产品文档:GBase8c

更新日期:2024年09月11日

提示符
通过提示符变量设置gsql 的提示符,这些变量是由字符和特殊的转义字符所组成。
表2-3 提示符变量
变量
描述
示例
PROMPT1
gsql 请求一个新命
令时使用的正常提
使用变量PROMPT1 切换提示符:

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
9
示符。
PROMPT1 的默认值
为:%/%R%#
提示符变为[local]:
gbase=# \set PROMPT1 %M
[local:/home/gbase/gbase_db/tmp]
提示符变为name:
gbase=# \set PROMPT1 name
name
提示符变为=:
gbase=# \set PROMPT1 %R
=
PROMPT2
在一个命令输入期
待更多输入时(例
如,
查询没有用一个
分号结束或者引号
不完整)
显示的提示
符。
使用变量PROMPT2 显示提示符:
gbase=# \set PROMPT2 TEST
gbase=# select * from public.area TEST;
area_id |
area_name
---------+------------------------
1 | Europe
2 | Americas
4 | Middle East and Africa
3 | Asia
(4 rows)
PROMPT3
当执行COPY 命令,
并期望在终端输入
数据时
(例如,
COPY
FROM STDIN)


示提示符。
使用变量PROMPT3 显示COPY 提示符:
gbase=# \set PROMPT3 '>>>>'
gbase=# copy public.area from STDIN;
Enter data to be copied followed by a
newline.
End with a backslash and a period on a line
by itself.
>>>>
提示符变量的值是按实际字符显示的。但是,当设置提示符的命令中出现“%” 时,
变量的值根据“%”后的字符,替换为已定义的内容,已定义的提示符请参见表2-4。
表2-4 已定义的替换
符号
符号说明
%M
主机的全名(包含域名),若连接是通过Unix 域套接字进行的,则全名为
[local],若Unix 域套接字不是编译的缺省位置,就是[local:/dir/name]。

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
10
%m
主机名删去第一个点后面的部分。
若通过Unix 域套接字连接,
则为[local]。
%>
主机正在侦听的端口号。
%n
数据库会话的用户名。
%/
当前数据库名称。
%~
类似%/,如果数据库是缺省数据库时输出的是波浪线~。
%#
如果会话用户是数据库系统管理员,使用#,否则用>。
%R

对于PROMPT1 通常是“=”,如果是单行模式则是“^”,如果会话与数
据库断开(如果\connect 失败可能发生)则是“!”。

对于PROMPT2 该序列被“ -”、
“ *”、
单引号、
双引号或“$”(取决于gsql
是否等待更多的输入:查询没有终止、正在一个/* ... */ 注释里、正
在引号或者美元符扩展里)代替。
%x
事务状态:

如果不在事务块里,则是一个空字符串。

如果在事务块里,则是“*”。

如果在一个失败的事务块里则是“!”。

如果无法判断事务状态时为“?”(比如没有连接)。
%digits
指定字节值的字符将被替换到该位置。
%:name
gsql 变量“name”的值。
%comma nd
command 的输出,类似于使用“^”替换。
%[ . . . %]
提示可以包含终端控制字符,这些字符可以改变颜色、背景、提示文本的
风格、终端窗口的标题。例如,
gbase=# \set PROMPT1 '%[%033[1;33;40m%]%n@%/%R
%[%033[0m%]%#'
这个句式的结果是在VT100 兼容的可显示彩色的终端上的一个宽体(1;)
黑底黄字(33;40)。
环境变量
表2-5 与gsql 相关的环境变量

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
11
名称
描述
COLUMNS
如果\set columns 为0,则由此参数控制wrapped 格式的宽度。
这个宽度用于决定在自动扩展的模式下,是否要把宽输出模式
变成竖线的格式。
PAGER
如果查询结果无法在一页显示,
它们就会被重定向到这个命令。
可以用\pset 命令关闭分页器。典型的是用命令more 或less 来
实现逐页查看。缺省值是平台相关的。
说明

less 的文本显示,受系统环境变量LC_CTYPE 影响。
PSQL_EDITOR
\e 和\ef 命令使用环境变量指定的编辑器。
变量是按照列出的先
后顺序检查的。在Unix 系统上默认的编辑工具是vi。
EDITOR
VISUAL
PSQL_EDITOR_LINE
NUMBER_ARG
当\e 和\ef 带上一行数字参数使用时,
这个变量指定的命令行参
数用于向编辑器传递起始行数。像Emacs 或vi 这样的编辑器,
这只是个加号。如果选项和行号之间需要空白,在变量的值后
加一个空格。例如:
PSQL_EDITOR_LINENUMBER_ARG = '+'
PSQL_EDITOR_LINENUMBER_ARG='--line '
Unix 系统默认的是+。
PSQLRC
用户的.gsqlrc 文件的交互位置。
SHELL
使用\!命令跟shell 执行的命令是一样的效果。
TMPDIR
存储临时文件的目录。缺省是/tmp。

因为数据库实际上是表的集合,使用数据库操作就是对表的操作。对象关系模型支持三种
基本操作:选择、投影和连接。下图描述了选择和投影操作(在后面的章节中详细定义了
这三种操作,并提供了许多示例。)
图: 选择和投影的说明



GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 12 -
当从表选择数据时,您就选择了某些行而忽略其他行。例如:您可以通过要求数据库管理
系统“选择制造商代码为 HSK 并且单价在 200.00 和 300.00 之间的所有行”来查
询 stock 表。
当从表中进行投影时,您就选择了某些列而忽略其他列。例如:您可以通过要求数据库管
理系统“投影 stock_num 、unit_descr 和 unit_price列”来查询 stock 表。
表只包含有关一个实体的信息;当想要有关多个实体的信息时,就必须连接它们的表。可
使用多种方法来连接表。有关连接操作的更多信息,请参阅编写高级 SELECT 语句。

智能索引是一种粗粒度索引,包含数据统计信息。数据存储时每65536 行
数据打成一个Data Cell(简称DC)包,每个数据包在数据入库时自动建立智能
索引,在数据查询时不需要解包就能得到统计值、进行数据过滤,可进一步降
低I/O,
对复杂查询的优化效果明显。
如下图所示,
左侧的
“SmartIndex
of
Col
1”即在第一列数据上,以各数据包(DC)为单位建立的智能索引。

图 3-3 智能索引示意图
1)表中的所有列自动建立智能索引,不需用户手工建立和维护;
2)智能索引本身占空间少(1%左右),不会造成数据膨胀;
3)智能索引基于数据包建立,建立速度快,不受已存在数据包的影响。
与传统数据库索引技术相比,智能索引建立在数据包上(粗粒度索引),
并且每个字段均自动建有索引,
而传统索引建立在每行数据上
(细粒度索引)

因此访问智能索引要比访问传统索引需要更少的I/O。同时,智能索引所占空
间大约是数据的百分之一,而传统数据库索引则要占到数据的20~ 50%。



GBase 8a MPP Cluster 技术白皮书
南大通用数据技术股份有限公司

- 11 -