达梦:windows环境下Disql的常见操作

学习心得
通过一段时间的学习和培训,终于算是入门了达梦数据库,对达梦数据库产品有了一定的了解和使用体验。
在数据库产品中,达梦不仅有出色的性能和优秀的用户交互体验,还有独具的风格和特点,是一款卓越的国产数据库软件。可能习惯了使用Oracle或Mysql数据库的朋友一开始使用达梦会不太习惯,但随着了解和应用的加深,相信你会越来越体会到这款数据库的优点,会更倾向于使用这款契合国人风格的数据库。
本人能力有限,在这里只能分享下关于达梦Disql工具的一些基础使用,大部分理论内容都是基于《DM8_DIsql使用手册》,希望能对大家有所帮助。

1 前言
Disql 是 DM 数据库自带的一个命令行客户端工具,用来与 DM 数据库服务器进行交互。
Disql 识别用户输入,将用户输入的 SQL 语句打包发送给 DM 数据库服务器执行,并接收服务器的执行结果,并按用户的要求将执行结果展示给用户。为了更好地与用户交互和展示执行结果,用户也可以在 Disql 中执行 Disql 命令,这些命令由 Disql 工具自身进行处理,不被发送给数据库服务器。

SQL 语句和 Disql 命令的区别:
①SQL语句遵循ANSI标准,Disql遵循达梦内部标准。
②SQL语句属于语言,Disql属于命令。
③SQL语句关键字不可缩写,Disql命令关键字可缩写。
④SQL语句部分语句以分号结束,部分语句以/结束;Disql命令分号可有可无,/完全用不到
⑤SQL语句可以更新表中的数据,Disql命令不能更新表中的数据。

2 windows下启动Disql
2.1 自带 Disql 工具启动
双击运行dmdbms\bin\Disql.exe,输入用户名密码,就可登录到本地 DM 数据库实例。也可以全部直接回车,采用缺省输入,缺省值为 SYSDBA/SYSDBA。登录成功显示如下:

2.2 命令行启动
从命令行启动 Disql 并登录到数据库。在命令行工具中找到 Disql 所在安装目录dmdbms\bin,输入 Disql 和登录方式后回车,本次登录是disql SYSDBA/SYSDBA@localhost:5236:

2.3 切换登录
用户进入 Disql 界面后,如果想切换到其他 DM 数据库实例。有两种实现方式:一是使用 LOGIN 命令;二是使用 CONN 命令。登录到远程数据库,必须在服务名处使用 IP 地址或网络服务名。
2.3.1 LOGIN /LOGOUT
直接输入 LOGIN 命令后,屏幕会提示输入登录信息。

LOGOUT 命令从登录主库注销会话。断开连接而不退出 Disql。

2.3.2 CONN[ECT] /DISCONN[ECT]
照 Disql 提示输入来连接。

语法如下 :

CONN[ECT]
::={[/][*<MPP_TYPE>][@<connect_identifier>]}|
{/ AS <SYSDBA|SYSSSO|SYSAUDITOR|AUTO>}
<connect_identifier>::=[][:][?{UDP|TCP|IPC|RDMA}][#][@
]

:密码。如果密码中有特殊字符,需要特别处理。特殊字符指密码串中含有

的关键字符(/@:#*[]) 或双引号"。

{/AS <SYSDBA|SYSSSO|SYSAUDITOR|AUTO>}:使用不同的管理员账号进行本地登录,指定 AUTO 会进行自动匹配相应的管理员。

如:conn SYSDBA/SYSDBA@LOCALHOST:5237

DISCONN[ECT]:断开连接而不退出 Disql。与 logout 功能一样。

3 Disql环境变量设置
3.1 set命令设置环境变量
SET 命令用于设置 DIsql 系统环境变量。语法如下:
SET <system_variable>{ <system_variable>}

其中<system_variable>代表变量名称,<value>代表属性。可以同时 SET 多个环境变量,但是一旦 SET 之后某个环境变量出错,那么该变量之后的将不再起作用。

3.2 常见set命令
3.2.1 AUTO[COMMIT]
设置当前 session 是否对修改的数据进行自动提交。语法如下:
SET AUTO[COMMIT] <ON|OFF>

ON表示打开自动提交,OFF表示关闭自动提交。

3.2.2 DEFINE
是否使用 DEFINE 定义本地变量。语法如下:
SET DEFINE<c(默认的变量前缀是&)|ON(默认值)|OFF>。

c:表示打开 DEFINE 功能,同时定义前缀变量符号,c 为定义的前缀符号。ON:表示打开 DEFINE 功能,使用默认前缀符号&。OFF:表示不使用 DEFINE 功能。

3.2.3 ECHO
在用 START 命令执行一个 SQL 脚本时,是否显示脚本中正在执行的 SQL 语句。语法如下:
SET ECHO <ON(默认值)|OFF>

更多set命令可以参考《DM8_DIsql使用手册》

3.3 SHOW 命令查看环境变量
通过使用 SHOW 命令,用户就可以快速而方便的了解到 DIsql 环境的当前环境变量设置。
SHOW 可以显示一个或多个变量。显示多个变量时中间加空格,当其中某一变量出错之后,后面的仍会继续显示。语法如下:
SHOW <system_variable>{<system_variable>}

<system_variable>表示环境变量。

4 Disql常见命令
4.1 帮助HELP
HELP 显示指定命令的帮助信息。语法如下:
HELP|? [topic]

topic是命令名称或者命令名称的首字母,查询某一命令用法或者某一字母开头的所有命令用法。

4.2 输出文件 SPOOL
将屏幕显示的内容输出到指定文件。语法如下:
SPOOL { | OFF }
::= <file_path> [CRE[ATE]|REP[LACE]|APP[END]]

<file_path>:指定文件的绝对路径
CRE[ATE]:创建指定的文件,若指定的文件已存在,则报错,默认方式

29
REP[LACE]:创建指定的文件,若指定的文件已存在,则替换它
APP[END]]:将输出内容追加到指定文件的末尾
OFF:关闭 SPOOL 输出

4.3 切换到操作系统命令 HOST
使用 HOST 命令可以不用退出 DIsql 就能执行操作系统命令。如果单独执行 host,则能够直接从 DIsql 界面切换到操作系统,之后可使用 EXIT 回到 DIsql 界面。语法如下:
HOST[]

<command>:操作系统命令。

4.4 获取对象结构信息 DESCRIBE
获取表或视图、存储过程、函数、包、记录、类的结构描述。语法如下:
DESC[RIBE]

|||||| ;

desc是用于查询出结果时对结果进行排序,是降序排序;
设置describe的显示方式中的depth、linenum、indent可显示列的结构信息。linenum 为 ON 时,显示行号 ID、PID 信息;反之,行号 ID、PID 信息不显示;indent为 ON 时,name 的显示方式发生了缩进;反之,不发生缩进。

table/view:表或者视图名,可以查看其列名、列数据类型、列表是否可以取空值。
proc/fun/class:获取的内容为:1、存储函数/过程名、函数/过程类型,函数返回值类型;2、参数名、参数数据类型、参数输入输出属性、参数缺省值。
pkg:获取内容为:1、包内存储函数/过程名,函数/过程类型,函数返回值类型;2、包内参数名,参数数据类型、参数输入输出属性、参数缺省值。
record:获取的内容为:参数名、参数数据类型,参数是否可以取空值。

设置 depth为 1 时,表 EMPINFO 的结构信息只显示至第一层

4.5 缓存清理 CLEAR
清理指定操作本地缓存。语法如下:
CL[EAR]

::= [COL[UMNS] | SQL | SCR[EEN] | BUFF[ER]]
COL[UMNS]:清理所有的 COLUMN 变量信息。
SQL:清理本地 SQL 缓存信息。
SCR[EEN]:清理 DIsql 终端屏幕信息。
BUFF[ER]:同 SQL 功能一样,清理本地 SQL 缓存信息。

5 DIsql 中使用脚本
5.1 使用 START 命令运行脚本
运行脚本必须使用命令。命令中与脚本有关的是<运行脚本>和 <start 运行脚本>。<直接执行语句>在 DIsql 登录时候使用,与脚本无关。语法如下: <start>::=<运行脚本>|<start 运行脚本>|<直接执行语句>
<运行脚本>::=<file_path> [<PARAMETER_VALUE>{ <PARAMETER_VALUE>}]
<start 运行脚本>::=START <file_path> [<PARAMETER_VALUE>{ <PARAMETER_VALUE>}]
<直接执行语句>::= -E “<SQL 语句>{;<SQL 语句>}”

<file_path>:脚本的绝对路径。
<PARAMETER_VALUE>:传递进入脚本的参数值。

脚本可以在启动 DIsql 时就运行,或者在进入 DIsql 之后再运行。如果在启动时运行,只能使用<`运行脚本>;如果在进入 DIsql 之后,使用<`运行脚本>或者<start 运行脚本>来运行脚本都可以。

5.2 使用 EDIT 命令编辑脚本
DIsql 中使用 EDIT 命令来编辑指定的脚本文件。语法如下:
ED[IT][<file_name>]

<file_name>:指定待编辑的脚本文件。
如果指定文件不存在,则创建该文件。
如果省略文件<file_name>,则只会修改缓冲区中的最后一条 SQL 语句。DIsql 自动打开系统缺省的文本编辑器(WINDOWS 下使用 notepad),复制缓冲区中最后一条SQL 语句到文本中,这时用户可以对其中的内容进行编辑。修改完成之前,DIsql 一直处于等待状态。修改完毕,保存文件后,被修改的内容就会被写入缓存区。这对于修改错误命令很方便。当操作系统为 LINUX 或 UNIX 时,使用 vi 进行编辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值