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.pswp.cn/pingmian/80009.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/80009.shtml
英文地址,請注明出處:http://en.pswp.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…