达梦: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命令不能更新表中的数据。
oracle登录命令
2 windows下启动Disql
2.1 ⾃带 Disql ⼯具启动
双击运⾏dmdbms\,输⼊⽤户名密码,就可登录到本地 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 信息不显⽰;in dent为 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 之后,使⽤<`运⾏脚本>或者<st art 运⾏脚本>来运⾏脚本都可以。
5.2 使⽤ EDIT 命令编辑脚本
DIsql 中使⽤ EDIT 命令来编辑指定的脚本⽂件。语法如下:
ED[IT][<file_name>]
<file_name>:指定待编辑的脚本⽂件。
如果指定⽂件不存在,则创建该⽂件。
如果省略⽂件<file_name>,则只会修改缓冲区中的最后⼀条 SQL 语句。DIsql ⾃动打开系统缺省的⽂本编辑器(WINDOWS 下使⽤ notepad),复制缓冲区中最后⼀条SQL 语句到⽂本中,这时⽤户可以对其中的内容进⾏编辑。修改完成之前,DIsql ⼀直处于等待状态。修改完毕,保存⽂件后,被修改的内容就会被写⼊缓存区。这对于修改错误命令很⽅便。当操作系统为 LINUX 或 UNIX 时,使⽤ vi 进⾏编辑。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。