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

GBase 8s 数据库 dbaccess 以及 GBaseDataStudio 使用

原创 Lucifer三思而后行 2024-10-11
930

大家好,这里是公众号 DBA学习之路,分享一些学习国产数据库路上的知识和经验。

目录

前言

数据库安装后通常会提供一个命令行客户端工具,比如:

  • Oracle 数据库的 sqlplus
  • KingbaseES 数据库的 ksql
  • 达梦数据库的 disql

类似的客户端工具还有很多,不再一一列举。

本文主要介绍 GBase 8s 数据库中的 dbaccess 客户端工具的使用。

介绍

dbaccess 是 GBase 8s 数据库的一个命令行客户端工具,用来与 GBase 8s 数据库服务器进行交互。

GBase 8s 数据库安装完成后默认包含 dbaccess 工具,在 gbasedbt 用户下输入 dbaccess 即可使用(前提是需要配置好环境变量):

[gbasedbt@gbase8s ~]$ dbaccess - - Your evaluation license will expire on 2025-10-10 00:00:00 >

dbaccess 识别用户输入,将用户输入的 SQL 语句打包发送给 GBase 8s 数据库服务器执行,并接收服务器的执行结果,并按用户的要求将执行结果展示给用户。

dbaccess

dbaccess 有三种交互方式:

  • 菜单交互模式
  • 指令交互模式
  • 非交互模式

菜单交互模式

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

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

[gbasedbt@gbase8s ~]$ dbaccess Your evaluation license will expire on 2025-10-10 00:00:00 ## 跳转出如下页面 DBACCESS: Query-language Connection Database Table Session Exit Use SQL query language. ------------------------------------------------ Press CTRL-W for Help --------

image.png

这种方式以前没怎么接触过,下面演示一下使用方式:

创建数据库:

选择创建:

输入数据库名称:

这一步可以配置数据库选项,默认不修改可以直接退出:

确认是否创建数据库 lucifer:

查看创建好的数据库信息:

使用 ctrl+z 可以直接退出菜单交互模式:

[gbasedbt@gbase8s ~]$ dbaccess Your evaluation license will expire on 2025-10-10 00:00:00 [2]+ Stopped dbaccess

指令交互模式

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

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

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

使用 dbaccess 连接数据库:

[gbasedbt@gbase8s ~]$ dbaccess - - Your evaluation license will expire on 2025-10-10 00:00:00 ## 选择数据库 > database lucifer; Database selected. Elapsed time: 0.031 sec ## 创建一张测试表 > create table test(id int, name varchar2(20)); Table created. Elapsed time: 0.002 sec ## 插入一条数据 > insert into test values (1,'lucifer'); 1 row(s) inserted. Elapsed time: 0.002 sec ## 查询测试表数据 > select * from test; id name 1 lucifer 1 row(s) retrieved. Elapsed time: 0.002 sec ## 删除测试表 > drop table if exists test; Table dropped. Elapsed time: 0.003 sec ## ctrl+d 可以命令交互模式 > Database closed.

看起来就是一个简陋的客户端工具,命令行需要以 ; 结束,没有找到 help 帮助信息以及合理的退出命令。

非交互模式

管道模式

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

[gbasedbt@gbase8s ~]$ echo "select trim(name) db_name from sysdatabases where name = 'lucifer';" | dbaccess sysmaster Your evaluation license will expire on 2025-10-10 00:00:00 Database selected. db_name lucifer 1 row(s) retrieved. Elapsed time: 0.002 sec Database closed.

脚本模式

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

dbaccess <db_name> <sql_file>

创建一个 sql 脚本:

[gbasedbt@gbase8s ~]$ cat<<-EOF>test.sql database lucifer; create table test(id int, name varchar(20)); insert into test values(1, 'lucifer'); select * from test; drop table if exists test; EOF

执行脚本:

[gbasedbt@gbase8s ~]$ dbaccess - test.sql Your evaluation license will expire on 2025-10-10 00:00:00 Database selected. Elapsed time: 0.028 sec Table created. Elapsed time: 0.001 sec 1 row(s) inserted. Elapsed time: 0.001 sec id name 1 lucifer 1 row(s) retrieved. Elapsed time: 0.001 sec Table dropped. Elapsed time: 0.001 sec Database closed.

也可以使用 EOF 的方式:

[gbasedbt@gbase8s ~]$ dbaccess sysmaster - << EOF select * from sysdbslocale where dbs_dbsname='lucifer'; EOF Your evaluation license will expire on 2025-10-10 00:00:00 Database selected. dbs_dbsname lucifer dbs_collate zh_CN.57372 1 row(s) retrieved. Elapsed time: 0.004 sec Database closed.

个人还是比较喜欢这种方式。

GBaseDataStudio

dbaccess 客户端有点不太好用,好在官方还提供了一个图形化客户端工具:GBaseDataStudio,可以在官方直接下载 GBaseDataStudio

下载之后解压即可,无需安装,直接可以运行,输入数据库的连接信息后测试连接:

一直下一步,确认没问题之后,就可以对连接的数据库进行操作了:

具体大家可以自行探索,不再一一演示。

写在最后

对了,dbaccess 工具也可以和 rlwrap 插件(上下文翻页)配合使用,操作更方便。

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

评论