当前位置: 首页 > news >正文

SinoDB客户端工具dbaccess

        类似Oracle的客户端工具sqlplus,Mysql的客户端工具mysql,SinoDB数据库也有自带的命令行客户端工具dbaccess。

  dbaccess 识别用户输入,将用户输入的 SQL 语句打包发送给 SinoDB 数据库服务器执行,然后接收服务器的执行结果,并按用户的要求将执行结果展示给用户。用户只要安装了 SinoDB 数据库,就可以在命令行启动dbaccess。

dbaccess工作模式

1. 交互模式

1.1 菜单交互模式

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

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

[informix@vm84145 ~]$ dbaccess
DBACCESS: Query-language Connection Database Table Session Exit
Use SQL query language.------------------------------------------------ Press CTRL-W for Help --------

可在菜单模式下,可以进行以下操作:

  • 选择/连接数据库实例
  • 编辑/执行SQL代码
  • 选择/执行文件中的SQL代码
    注: 可选择和执行的文件,在启动dbaccess的目录中,且扩展名为.sql。
1.2 指令交互模式

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

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

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

示例1:

[informix@vm84145 ~]$ dbaccess - -
> database testdb;Database selected.>create table tuser(cuserid int,cusername varchar(50));Table created.> insert into tuser values(1,‘sinodb’);1 row(s) inserted.Database closed.

示例2:

[informix@vm84145 ~]$ dbaccess testdb -Database selected.>select * from tuser;cuserid cusername1 sinodb                                            
1 row(s) retrieved

2. 非交互模式

2.1 管道模式

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

echo "sql_code" | dbaccess <db_name>

示例:

[informix@vm84145 ~]$ echo "select * from tuser;" | dbaccess testdbDatabase selected.cuserid cusername                                          1 sinodb                                            1 row(s) retrieved.Database closed.[informix@vm84145 ~]$
2.2 脚本模式
dbaccess <db_name> <sql_file>

示例:

  • 创建脚本文件如下:
[informix@vm84145 ~]$ cat demo.sql
database testdb;
drop table if exists tuser;
create table tuser(cuserid int, cusername varchar(50));
insert into tuser values(1, 'sinodb');
select * from tuser;
  • 执行脚本文件:
[informix@vm84145 ~]$ dbaccess - demo.sqlDatabase selected.Table dropped.Table created.1 row(s) inserted.cuserid cusername                                          1 sinodb                                            1 row(s) retrieved.Database closed.

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

dbaccess <db_name> <<EOF
<sql_code>
EOF

示例:

  • 创建脚本文件如下:
[informix@vm84145 ~]$ cat demo.sh
#!/bin/bash
dbaccess <<EOF
database testdb;
drop table if exists tuser;
create table tuser(cuserid int, cusername varchar(50));
insert into tuser values(1, 'sinodb');
select * from tuser;
EOF
  • 执行脚本文件:
[informix@vm84145 ~]$ sh demo.shDatabase selected.Table dropped.Table created.1 row(s) inserted.cuserid cusername                                          1 sinodb                                            1 row(s) retrieved.Database closed.[informix@vm84145 ~]$

更多信息内容请移步星瑞格官方社区,期待大家加入  Sinoregal Tech Forum​编辑https://forum.sinoregal.cn/​编辑https://forum.sinoregal.cn/icon-default.png?t=N7T8https://forum.sinoregal.cn/

http://www.lryc.cn/news/322604.html

相关文章:

  • postman学习
  • 【Linux】初识进程
  • 有关Theano和PyTensor库
  • 用 Open-Sora 高效创作视频,让创意触手可及
  • Git版本管理工具
  • 微信小程序选择器picker的使用(省市区)
  • std::shared_ptr与std::make_unique在类函数中的使用
  • flutter 局部view更新,dialog更新进度,dialog更新
  • Lombok:@Delegate优化代码利器
  • 【C语言】对称密码——栅栏的加密和解密
  • 一、rv1126开发之视频输入和视频编码
  • 4.1 用源文件写汇编代码
  • Linux TCP参数——tcp_abort_on_overflow
  • jupyter notebook设置代码提示方法
  • Linux 一点查询资料
  • 如何快速搭建一个完整的vue2+element-ui的项目-二
  • 多语言LLM的状态:超越英语
  • kafka什么情况下会认为发送失败进而去重试
  • 不满足软件包要求‘transformers==4.30.2‘, ‘sse-starlette
  • C# 设置AutoScroll为true没效果的原因分析和解决办法
  • <Senior High School Math>: inequality question
  • 详解Python中Pytest和Unittest的区别
  • 零基础入门多媒体音频(1)-音频基础
  • 40 道高频 C++ 面试、笔试题及答案
  • 【07】进阶html5
  • Linux|centos7|postgresql数据库|yum和编译方式安装总结(全系版本)
  • C++提高笔记(五)---STL容器(set/multiset、map/multimap)
  • 详解main函数参数argc、argv及如何传参
  • 解释什么是Web组件化开发及其优势
  • 那些场景需要额外注意线程安全问题