02-GBase 8s 事务型数据库 客户端工具dbaccess

dbaccess概述

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

                数据库厂商                 

                   命令行客户端               

Oracle

sqlplus

MySQL

mysql

Marladb

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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/80009.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手撕基于AMQP协议的简易消息队列-8(单元测试的编写)

在MQTest中编写模块的单元测试 在MQTest中编写makefile文件来编译客户端模块 all:Test_FileHelper Test_Exchange Test_Queue Test_Binding Test_Message Test_VirtualHost Test_Route Test_Consumer Test_Channel Test_Connection Test_VirtualHost:Test_VirtualHost.cpp ..…

Spark 之 metrics

peak memory.//sql/core/src/main/scala/org/apache/spark/sql/execution/aggregate/HashAggregateExec.scala: “peakMemory” -> SQLMetrics.createSizeMetric(sparkContext, “peak memory”), .//sql/core/src/main/scala/org/apache/spark/sql/execution/SortExec.scal…

HTTP/HTTPS协议(请求响应模型、状态码)

目录 HTTP/HTTPS协议简介 HTTP协议 HTTPS协议 请求 - 响应模型 HTTP请求 &#xff08;二&#xff09;HTTP响应 HTTPS协议与HTTP协议在请求 - 响应模型中的区别 HTTP/HTTPS协议简介 HTTP协议 定义 HTTP&#xff08;HyperText Transfer Protocol&#xff09;即超文本传输…

OpenHarmony 5.0 切换已连接过的wifi切换失败

目录 1.背景 2.流程分析 3.方案 1.背景 在OpenHarmony 5.0的设置中,输入密码进行wifi连接可以正常连接,然后多个已经连接过的wifi进行切换发现大概率切换失败 2.流程分析 wifi连接过程其实是先进行断开当前的wifi连接,然后再连接另一个wifi,如下: 虽然上述流程看起来没…

【Ollama】docker离线部署Ollama+deepseek

因为要做项目&#xff0c;实验室的服务器不联网&#xff0c;所以只能先打包一个基础的docker环境&#xff0c;然后再在实验室的服务器上进行解压和配置环境 参考&#xff1a;https://zhuanlan.zhihu.com/p/23377266873 1.打包基础的docker环境 这里最好用有cuda的&#xff0c…

如何使用极狐GitLab 软件包仓库功能托管 terraform?

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;关于中文参考文档和资料有&#xff1a; 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 Terraform 模块库 (BASIC ALL) 基础设施仓库和 Terraform 模块仓库合并到单个 Terraform 模块仓库功能引入于极狐GitLab 15.1…

【QT】深入理解 Qt 中的对象树:机制、用途与最佳实践

深入理解 Qt 中的对象树&#xff1a;机制、用途与最佳实践 在使用 Qt 编程时&#xff0c;你是否注意到很多对象可以设置“父对象”&#xff1f;比如&#xff1a; QPushButton* btn new QPushButton(parentWidget);这不是简单的层级结构&#xff0c;而是 Qt 强大而优雅的 对象…

比较入站和出站防火墙规则

组织需要仔细配置防火墙规则&#xff0c;监控网络的传入和传出流量&#xff0c;从而最大限度降低遭受攻击的风险。在有效管理入站和出站防火墙规则前&#xff0c;了解入站与出站流量的区别至关重要。 一、什么是入站流量&#xff1f; 入站流量指的是并非源自网络内部&#xf…

Unity-Shader详解-其五

关于Unity的Shader部分的基础知识其实已经讲解得差不多了&#xff0c;今天我们来一些实例分享&#xff1a; 溶解 效果如下&#xff1a; 代码如下&#xff1a; Shader "Chapter8/chapter8_1" {Properties{// 定义属性[NoScaleOffset]_Albedo("Albedo", 2…

COLT_CMDB_linux_userInfo_20250508.sh修复历史脚本输出指标信息中userName与输出信息不一致问题

#!/bin/bash #IT_BEGIN #IT_TYPE3 #IT SYSTEM_LINUX_AGENTUSERDISCOVER|discovery.user[disc] #原型指标 #IT_RULE SYSTEM_LINUX_AGENTUSERGROUPID|groupId[{#USERNAME}] #IT_RULE SYSTEM_LINUX_AGENTUSERHOME|userHome[{#USERNAME}] #IT_RULE SYSTEM_LINUX_AGENTUSERNAME|user…

TCP 与 UDP报文

** TCP 与 UDP报文** 1. 引言 在网络通信中&#xff0c;TCP&#xff08;传输控制协议&#xff09; 和 UDP&#xff08;用户数据报协议&#xff09; 是两种最核心的传输层协议。它们各自适用于不同的场景&#xff0c;理解其工作原理对开发高性能网络应用至关重要。本文将详细解…

LabVIEW燃气轮机测控系统

在能源需求不断增长以及生态环境保护备受重视的背景下&#xff0c;微型燃气轮机凭借其在经济性、可靠性、维护性及排放性等方面的显著优势&#xff0c;在航空航天、分布式发电等众多领域得到广泛应用。随着计算机技术的快速发展&#xff0c;虚拟仪器应运而生&#xff0c;LabVIE…

基于vueflow可拖拽元素的示例(基于官网示例的单文件示例)

效果图 代码 <template><div style"width: 100%;height: calc(100vh - 84px)"><VueFlow :nodes"nodes" :edges"edges" drop"onDrop" dragover"onDragOver" dragleave"onDragLeave"><div cl…

笔试专题(十六)

文章目录 相差不超过k的最多数题解代码 最长公共子序列&#xff08;一&#xff09;题解代码 小红的口罩题解代码 春游题解代码 相差不超过k的最多数 题目链接 题解 1. 排序 滑动窗口 2. 为什么使用滑动窗口&#xff1f; 因为max-min < k&#xff0c;求这个区间内的数最…

技术视界 | 青龙机器人训练地形详解(三):复杂地形精讲之台阶

在前两篇中&#xff0c;我们依次讲解了“如何创建一个地形”以及“如何将地形添加到训练环境中”。从基础出发&#xff0c;逐步构建机器人可交互的三维仿真环境。在机器人强化学习训练中&#xff0c;地形的复杂度决定了策略的泛化能力&#xff0c;仅靠 jump_plat 和 jump_pit 等…

MYSQL之索引结构,为何要用B+树

索引的目的就是为了提高查询效率 索引的结构是B树&#xff0c;那么说到B树&#xff0c;必须提一下其他三种结构&#xff0c;分别是&#xff1a;二叉查找树、平衡二叉树、B树 我们来看看各自的结构特征 二叉查找树 特点:任何节点的左子节点的值都小于当前节点的值&#xff0c;右…

3.2.3 掌握RDD转换算子 - 2. 过滤算子 - filter()

在本节课中&#xff0c;我们深入学习了Spark RDD的过滤算子filter()。filter()算子能够通过指定的函数对RDD中的元素进行筛选&#xff0c;返回一个满足条件的新RDD&#xff0c;通常新RDD的元素个数会比源RDD少。通过案例演示&#xff0c;我们掌握了如何使用filter()来过滤列表中…

vue3使用轮播图组件swiper

一、在swiper的官网源码下载地址 下载Swiper - Swiper中文网 二、官网浏览轮播图类型地址 Swiper演示 - Swiper中文网 三、swiper配置参数地址 中文api - Swiper中文网 四、在vue3项目引入swiper npm install swiper 五、在vue3中使用 官网vue3中使用&#xff1a;Swiper…

MySQL优化-MySQL故障排查与监控

MySQL优化-MySQL故障排查与监控 一、MySQL监控 实时了解数据库的运行状态&#xff0c;通过不同的监控指标&#xff0c;识别潜在问题并进行预防。常见得到MySQL监控指标包括&#xff1a;连接数、缓存池命中率、磁盘I/O、查询执行情况等。 1、监控数据库状态变量 MySQL的状态…

【MongoDB篇】MongoDB的分片操作!

目录 引言第一节&#xff1a;分片核心概念&#xff1a;为什么要分片&#xff1f;它是什么&#xff1f; &#x1f914;&#x1f4a5;&#x1f680;第二节&#xff1a;分片架构的“三大金刚”&#xff1a;核心组件解析 &#x1f9f1;&#x1f9e0;&#x1f6e3;️第三节&#xff…