暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

GBase 8s 学习笔记 004 —— GBase 8s 客户端工具

心有阳光 2023-02-09
717

GBase 8s 学习笔记 004 —— GBase 8s 客户端工具

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

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

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

DEMO

[gbasedbt@192 ~]$ dbaccess - - Your evaluation license will expire on 2024-02-07 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@192 ~]$ echo "select * from t_user;" | dbaccess gbasedb Your evaluation license will expire on 2024-02-07 00:00:00 Database selected. f_userid f_username 1 gbasedbt 1 row(s) retrieved. Database closed. [gbasedbt@192 ~]$

脚本模式

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

dbaccess <db_name> <sql_file>

DEMO

[gbasedbt@192 ~]$ vi demo.sql [gbasedbt@192 ~]$ 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@192 ~]$ dbaccess - demo.sql Your evaluation license will expire on 2024-02-07 00:00:00 Database selected. Table dropped. Table created. 1 row(s) inserted. f_userid f_username 1 sql_in_file 1 row(s) retrieved. Database closed. [gbasedbt@192 ~]$

可以将SQL代码直接写在脚本文件中,采用如下方式,执行SQL代码。

dbaccess <db_name> <<EOF <sql_code> EOF

DEMO

[gbasedbt@192 ~]$ vi demo.sh [gbasedbt@192 ~]$ cat demo.sh #!/bin/bash dbaccess <<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@192 ~]$ sh demo.sh Your evaluation license will expire on 2024-02-07 00:00:00 Database selected. Table dropped. Table created. 1 row(s) inserted. f_userid f_username 1 shell 1 row(s) retrieved. Database closed. [gbasedbt@192 ~]$

dbaccess环境变量

DBFLTMASK

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

export DBFLTMASK=3

DEMO

[gbasedbt@192 ~]$ vi float.sql [gbasedbt@192 ~]$ cat float.sql database gbasedb; drop table if exists t_float; cretate table t_float(f_num float); insert into t_float values(1234567890.123456); insert into t_float values(12345.6789); [gbasedbt@192 ~]$ unset DBFLTMASK [gbasedbt@192 ~]$ echo $DBFLTMASK [gbasedbt@192 ~]$ echo "select * from t_float" | dbaccess gbasedb Your evaluation license will expire on 2024-02-07 00:00:00 Database selected. f_num 1234567890.123 12345.67890000 2 row(s) retrieved. Database closed. [gbasedbt@192 ~]$ [gbasedbt@192 ~]$ export DBFLTMASK=3 [gbasedbt@192 ~]$ echo "select * from t_float" | dbaccess gbasedb Your evaluation license will expire on 2024-02-07 00:00:00 Database selected. f_num 1234567890.123 12345.679 2 row(s) retrieved. Database closed. [gbasedbt@192 ~]$

DBEDIT

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

export DBEDIT=vi

DBMONEY

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

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

DEMO

[gbasedbt@192 ~]$ vi money.sql [gbasedbt@192 ~]$ dbaccess gbasedb money.sql Your evaluation license will expire on 2024-02-07 00:00:00 Database selected. Database closed. Database selected. Table dropped. Table created. 1 row(s) inserted. 1 row(s) inserted. 1 row(s) inserted. Database closed. [gbasedbt@192 ~]$ echo "select * from t_money" | dbaccess gbasedb Your evaluation license will expire on 2024-02-07 00:00:00 Database selected. f_id f_num 1 RMB 123.46 2 RMB 123456.79 3 RMB 1234567890.12 3 row(s) retrieved. Database closed. [gbasedbt@192 ~]$ [gbasedbt@192 ~]$ echo $LANG zh_CN.UTF-8 [gbasedbt@192 ~]$ export DBMONEY="$" [gbasedbt@192 ~]$ echo "select * from t_money" | dbaccess gbasedb Your evaluation license will expire on 2024-02-07 00:00:00 Database selected. f_id f_num 1 $123.46 2 $123456.79 3 $1234567890.12 3 row(s) retrieved. Database closed. [gbasedbt@192 ~]$ [gbasedbt@192 ~]$ export DBMONEY=".$" [gbasedbt@192 ~]$ echo "select * from t_money" | dbaccess gbasedb Your evaluation license will expire on 2024-02-07 00:00:00 Database selected. f_id f_num 1 123.46$ 2 123456.79$ 3 1234567890.12$ 3 row(s) retrieved. Database closed. [gbasedbt@192 ~]$ [gbasedbt@192 ~]$ export DBMONEY=",$" [gbasedbt@192 ~]$ echo "select * from t_money" | dbaccess gbasedb Your evaluation license will expire on 2024-02-07 00:00:00 Database selected. f_id f_num 1 123,46$ 2 123456,79$ 3 1234567890,12$ 3 row(s) retrieved. Database closed. [gbasedbt@192 ~]$

DBACCESS_SHOW_TIME

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

export DBACCESS_SHOW_TIME=1

DEMO

[gbasedbt@192 ~]$ unset DBACCESS_SHOW_TIME [gbasedbt@192 ~]$ echo $DBACCESS_SHOW_TIME [gbasedbt@192 ~]$ echo "select * from t_float" | dbaccess gbasedb Your evaluation license will expire on 2024-02-07 00:00:00 Database selected. f_num 1234567890,123 12345,679 2 row(s) retrieved. Database closed. [gbasedbt@192 ~]$ [gbasedbt@192 ~]$ export DBACCESS_SHOW_TIME=1 [gbasedbt@192 ~]$ echo $DBACCESS_SHOW_TIME 1 [gbasedbt@192 ~]$ echo "select * from t_float" | dbaccess gbasedb Your evaluation license will expire on 2024-02-07 00:00:00 Database selected. f_num 1234567890,123 12345,679 2 row(s) retrieved. Elapsed time: 0.003 sec Database closed. [gbasedbt@192 ~]$

附录

日期格式化参数

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

文章被以下合辑收录

评论