GBase 8s 客户端工具之dbaccess

  • dbaccess概述
  • dbaccess工作模式
    • 交互模式
      • 菜单交互模式
      • 指令交互模式
    • 非交互模式
      • 管道模式
      • 脚本模式
  • dbaccess环境变量
    • DBFLTMASK
    • DBEDIT
    • DBMONEY
    • GL_DATE
    • DBACCESS_SHOW_TIME
  • 附录
    • 日期格式化参数

dbaccess概述

数据库产品通常会提供一个命令行客户端工具。

数据库厂商 命令行客户端
Oracle sqlplus
MySQL mysql
Mariadb mysql
GBase 8s dbaccess
Kingbase ES ksql
DM8 disql
  • dbaccess 是 GBase 8s 数据库的一个命令行客户端工具,用来与 GBase 8s 数据库服务器进行交互。
  • dbaccess 是 GBase 8s 数据库自带的工具,只要安装了 GBase 8s 数据库,就可以在命令行启动该工具。
  • dbaccess 识别用户输入,将用户输入的 SQL 语句打包发送给 GBase 8s 数据库服务器执行,并接收服务器的执行结果,并按用户的要求将执行结果展示给用户。

dbaccess工作模式

交互模式

菜单交互模式

dbaccess提供了一个基于控制台的菜单,用户可以使用方向键或快捷键,选择和执行相应的功能。

直接运行dbaccess命令,即可进入菜单的交互模式。

DEMO

  • 选择/连接数据库实例
  • 编辑/执行SQL代码
  • 选择/执行文件中的SQL代码

注: 可选择和执行的文件,在启动dbaccess目录中,且扩展名为.sql。

指令交互模式

dbaccess提供了一个类似mysql或sqlplus的客户端交互模式,用户输入要执行的指令并回车,dbaccess执行用户输入的指令,并返回执行结果。

可以通过为dbaccess提供两个参数,进入指令交互模式。

dbaccess <param1> <param2>param1:提供数据库名称或-,当该参数为-时,表示未选择默认的数据库,后续可在dbaccess中,使用database <db_name>指定当前数据库。param2:固定为-,表示dbaccess的输入为标准输入STDIN。

DEMO

[gbasedbt@train ~]$ dbaccess - -
Your evaluation license will expire on 2022-06-09 00:00:00
> database gbasedb;Database selected.> drop table if exists t_user;Table dropped.> create table t_user(f_userid int, f_username varchar(50));Table created.> insert into t_user values(1, 'gbasedbt');1 row(s) inserted.> select * from t_user;f_userid f_username                                         1 gbasedbt                                          1 row(s) retrieved.> 

非交互模式

管道模式

dbaccess可以接收STDIN中的内容,做为dbaccess需要执行的指令。

echo "sql_code" | dbaccess <db_name>

DEMO

[gbasedbt@train ~]$ echo "select * from t_user;" | dbaccess gbasedb
Your evaluation license will expire on 2022-06-09 00:00:00Database selected.f_userid f_username                                         1 gbasedbt                                          1 row(s) retrieved.Database closed.[gbasedbt@train ~]$ 

脚本模式

  • 可以将SQL代码保存到文件中,将文件做为dbaccess的第二个参数,来执行文件中的SQL代码。
dbaccess <db_name> <sql_file>

DEMO

[gbasedbt@train ~]$ cat demo.sql
database gbasedb;drop table if exists t_user;create table t_user(f_userid int, f_username varchar(50));insert into t_user values(1, 'sql_in_file');select * from t_user;[gbasedbt@train ~]$ dbaccess - demo.sql
Your evaluation license will expire on 2022-06-09 00:00:00Database selected.Table dropped.Table created.1 row(s) inserted.f_userid f_username                                         1 sql_in_file                                       1 row(s) retrieved.Database closed.[gbasedbt@train ~]$ 
  • 可以将SQL代码直接写在脚本文件中,采用如下方式,执行SQL代码。
dbaccess <db_name> <<EOF
<sql_code>
EOF

DEMO

[gbasedbt@train ~]$ cat demo.sh
#!/bin/bashdbaccess <<EOF
database gbasedb;drop table if exists t_user;create table t_user(f_userid int, f_username varchar(50));insert into t_user values(1, 'shell');select * from t_user;EOF[gbasedbt@train ~]$ sh demo.sh
Your evaluation license will expire on 2022-06-09 00:00:00Database selected.Table dropped.Table created.1 row(s) inserted.f_userid f_username                                         1 shell                                             1 row(s) retrieved.Database closed.[gbasedbt@train ~]$

dbaccess环境变量

DBFLTMASK

默认情况下,dbaccess会尽可能的显示浮点数的小数位数。通过设置该环境变量,控制dbaccess在输出小数信息时,尽量只显示指定位数的小数。

export DBFLTMASK=3

DEMO

[gbasedbt@train ~]$ cat float.sql
database gbasedb;drop table if exists t_float;create table t_float(f_num float);insert into t_float values(1234567890.123456);
insert into t_float values(12345.6789);
[gbasedbt@train ~]$ unset DBFLTMASK
[gbasedbt@train ~]$ echo $DBFLTMASK[gbasedbt@train ~]$ echo "select * from t_float" | dbaccess gbasedb
Your evaluation license will expire on 2022-06-09 00:00:00Database selected.f_num 1234567890.123
12345.678900002 row(s) retrieved.Database closed.[gbasedbt@train ~]$ export DBFLTMASK=3
[gbasedbt@train ~]$ echo "select * from t_float" | dbaccess gbasedb
Your evaluation license will expire on 2022-06-09 00:00:00Database selected.f_num 1234567890.12312345.6792 row(s) retrieved.Database closed.[gbasedbt@train ~]$ 

DBEDIT

设置dbaccess中使用的操作系统文本编辑器,默认为vi。

export DBEDIT=vi

DBMONEY

GBase 8s中的money数据类型的显示。默认情况下,会根据操作系统的本地化设置,显示货币信息。可以通过该环境变量,设置需要显示的信息。

export DBMONEY="[front][.|,][back]"

DEMO

[gbasedbt@train ~]$ cat money.sql
database gbasedb;drop table if exists t_money;
create table t_money(f_id int, f_num money);insert into t_money values(1, 123.456);
insert into t_money values(2, 123456.789);
insert into t_money values(3, 1234567890.123456789);[gbasedbt@train ~]$ dbaccess gbasedb money.sql
Your evaluation license will expire on 2022-06-09 00:00:00Database selected.Database closed.Database selected.Elapsed time: 0.001 secTable dropped.Elapsed time: 0.004 secTable created.Elapsed time: 0.001 sec1 row(s) inserted.Elapsed time: 0.001 sec1 row(s) inserted.Elapsed time: 0.001 sec1 row(s) inserted.Elapsed time: 0.001 secDatabase closed.[gbasedbt@train ~]$ echo "select * from t_money" | dbaccess gbasedb
Your evaluation license will expire on 2022-06-09 00:00:00Database selected.f_id               f_num 1          RMB 123.462       RMB 123456.793   RMB 1234567890.123 row(s) retrieved.Elapsed time: 0.002 secDatabase closed.[gbasedbt@train ~]$ echo $LANG
en_US.UTF-8
[gbasedbt@train ~]$ export DBMONEY="$"
[gbasedbt@train ~]$ echo "select * from t_money" | dbaccess gbasedb
Your evaluation license will expire on 2022-06-09 00:00:00Database selected.f_id            f_num 1          $123.462       $123456.793   $1234567890.123 row(s) retrieved.Elapsed time: 0.005 secDatabase closed.[gbasedbt@train ~]$ export DBMONEY=".$"
[gbasedbt@train ~]$ echo "select * from t_money" | dbaccess gbasedb
Your evaluation license will expire on 2022-06-09 00:00:00Database selected.f_id            f_num 1          123.46$2       123456.79$3   1234567890.12$3 row(s) retrieved.Elapsed time: 0.002 secDatabase closed.[gbasedbt@train ~]$

GL_DATE

GBase 8s中的date数据类型,默认格式为月/日/年(英文),可以设置GL_DATE环境变量,改变DATE数据的显示格式。

export GL_DATE="%iY-%m-%d"

DEMO

[gbasedbt@train ~]$ cat date.sql
database gbasedb;drop table if exists t_date;create table t_date(f_dt date);insert into t_date values('06/18/2021');select * from t_date;
[gbasedbt@train ~]$ unset GL_DATE
[gbasedbt@train ~]$ echo $GL_DATE[gbasedbt@train ~]$ dbaccess gbasedb date.sql
Your evaluation license will expire on 2022-06-09 00:00:00Database selected.Database closed.Database selected.Elapsed time: 0.001 secTable dropped.Elapsed time: 0.001 secTable created.Elapsed time: 0.004 sec1205: Invalid month in date
Error in line 7
Near character position 38f_dt             No rows found.Elapsed time: 0.001 secDatabase closed.[gbasedbt@train ~]$ echo $LANG
en_US.UTF-8
[gbasedbt@train ~]$ export GL_DATE="%m/%d/%iY"
[gbasedbt@train ~]$ echo "insert into t_date values('06/18/2021');" | dbaccess gbasedb
Your evaluation license will expire on 2022-06-09 00:00:00Database selected.1 row(s) inserted.Elapsed time: 0.004 secDatabase closed.[gbasedbt@train ~]$ echo "select * from t_date" | dbaccess gbasedb
Your evaluation license will expire on 2022-06-09 00:00:00Database selected.f_dt       06/18/20211 row(s) retrieved.Elapsed time: 0.005 secDatabase closed.[gbasedbt@train ~]$ export GL_DATE="%iY-%m-%d"
[gbasedbt@train ~]$ echo $GL_DATE
%iY-%m-%d
[gbasedbt@train ~]$ echo "select * from t_date" | dbaccess gbasedb
Your evaluation license will expire on 2022-06-09 00:00:00Database selected.f_dt       2021-06-181 row(s) retrieved.Elapsed time: 0.002 secDatabase closed.[gbasedbt@train ~]$ 

DBACCESS_SHOW_TIME

控制dbaccess在执行SQL时,是否显示SQL的执行时间。

export DBACCESS_SHOW_TIME=1

DEMO

[gbasedbt@train ~]$ unset DBACCESS_SHOW_TIME
[gbasedbt@train ~]$ echo $DBACCESS_SHOW_TIME[gbasedbt@train ~]$ echo "select * from t_float" | dbaccess gbasedb
Your evaluation license will expire on 2022-06-09 00:00:00Database selected.f_num 1234567890.12312345.6792 row(s) retrieved.Database closed.[gbasedbt@train ~]$ export DBACCESS_SHOW_TIME=1
[gbasedbt@train ~]$ echo $DBACCESS_SHOW_TIME
1
[gbasedbt@train ~]$ echo "select * from t_float" | dbaccess gbasedb
Your evaluation license will expire on 2022-06-09 00:00:00Database selected.f_num 1234567890.12312345.6792 row(s) retrieved.Elapsed time: 0.001 secDatabase closed.[gbasedbt@train ~]$ 

附录

日期格式化参数

格式化符 说明
%a 星期的短格式表示
%A 星期的完整格式表示
%b 月份的短格式表示
%B 月份的完整格式表示
%C 世纪的表示,通常是年值除以100后的整数部分
%d 天(01-31)
%D 相当于格式:%m/%d/%y
%e 天(1-31)
%h 和%b相同
%H 小时(00-24)
%iy 两位年(00-99)
%iY 四位年(0000-9999)
%m 月(01-12)
%M 分钟(00-59)
%n 换行符
%S 秒(00-59)
%t 制表符
%w 星期的数字表示(0-6)
%y 两位年(00-99)
%Y 四位年(0000-9999)

GBase 8s 客户端工具之dbaccess相关推荐

  1. GBASE 8s客户端与服务器的通信

    GBase客户端与服务器的通信支持多种不同的方式:共享内存 Shared memory.Stream pipe. TCP/IP(Sockets.TLI).IPX/SPX.DRDA.我们通常选择TCP/ ...

  2. 国产数据库南大通用GBase 8s学习路径

    1. GBase 8s 安装与手动创建实例 2.GBase 8s 客户端工具之dbaccess 3.GBase 8s 运行模式与切换(新版本) 4.GBase 8s基本数据类型 5.GBase 8s ...

  3. GBase客户端工具下载地址

    写这个的初衷是,很多时候不知道在哪下载这个GBase的客户端工具地址. 很多CSDN上下载又要花钱,觉得没必要.这里复制两个下载地址,如果能够成功下载,恭喜你,如果不行了,过期了,也不要喷,谢谢. h ...

  4. GBASE 8s DB-Access菜单选项说明

    本文讲述gbase 8s数据库客户端工具 DB-Access客户端工具的菜单选项. 一.连接菜单选项 dbaccess 命令的" 连接" 菜单选项表示" 连接" ...

  5. GBase 8s 导入导出工具 unload/load

    GBase 8s 支持数据的导入导出,unload/load 是最常使用的最简单的数据导入.导出工具,支持的数据格式为以固定分隔符(如"|"为默认的分隔符)分割的文本文件. 1.u ...

  6. GBase 8s 监控平台工具安装与配置

    GCMonitor 统一数据平台监控与运维系统是南大通用公司开发的GBase数据库配套工具.为用户提供了可视化的数据库节点监控数据,及时的报警功能,直观的数据库节点状态和性能趋势展示,可靠的数据分布视 ...

  7. linux安装南大通用数据库 GBase 8s V8.8

    linux安装南大通用数据库 GBase 8s V8.8 1.操作系统.数据库 2.下载链接 3.安装文档 4.安装前准备 4.1.以root用户创建 gbasedbt 组和用户 4.2.创建 GBa ...

  8. GBase 8s(GDCA)课堂练习题及答案总结

    一.单选题 1.GBase 8s的数据库架构是(D)A.单进程.单线程架构B.多进程.单线程架构C.单进程.多线程架构D.多进程.多线程架构2.GBase 8s的停止数据库实例的命令是哪个?(C)A. ...

  9. GBase 8s 数据库操作指南

    一.数据库日常管理指南 简介: GBase 8s数据库日常管理包括数据库模式的切换,以及服务器的监控.监控主要分为两个方面,一方面是系统级别的监控,主要包括对系统cpu的监控,以及内存的占用情况:另一 ...

最新文章

  1. my-large.cnf
  2. Android JNI入门第四篇——jni头文件分析
  3. java中scanner if用法_Java通过Scanner了解if...else if语句
  4. Android中使用retrofit2进行网络get请求查询数据和post请求上传文件
  5. VUE如何操作DOM
  6. 贝叶斯深度神经网络_深度学习为何胜过贝叶斯神经网络
  7. 计算机应用中的CAI,????按计算机应用的分类,CAI应属于()应用。
  8. spring-boot-starter-swagger 1.3.0.RELEASE:新增对JSR-303的支持和host的配置
  9. Docker修改容器系统时间命令组
  10. Sketch vs. Figma vs. adobe xd:哪个设计工具最适合初学者?
  11. Redis 基础:Redis 配置
  12. GUN/LINUX的文件类型
  13. 蒙特卡罗模拟(python实现)
  14. ARM Cortex-M3/M4/M7 Hardfault异常分析
  15. 又一个项目要结项了,项目报告PPT内容节选点纪念一下
  16. 计算机网就是因特网对吗,计算机因特网的介绍
  17. Inno Setup中文语言包下载
  18. 8255交通灯实验的微型计算机,微机原理实验四实验报告8255控制交通灯实验
  19. 食疗排除化妆品的铅汞毒
  20. 上海宝付安全宣传活动之实际案例讲解

热门文章

  1. Spring Cloud微服务系统架构的一些简单介绍和使用
  2. mysql的主句与从句_从句和主句怎样区分?
  3. 必记的13个不定积分公式(详细推导)
  4. DIN卡轨式安装工业宽温8口百兆工业级以太网交换机
  5. Docker IP forward问题
  6. 基于InforFlow的业务流程管理系统解决方案(转载)
  7. 2022年全球与中国激光预警系统市场现状及未来发展趋势
  8. C语言基础第五次作业
  9. 【考研资源】考研资料怎么找?这些资源网站一定要知道!
  10. 前端——CSS(一)