DM数据库-DISQL使用基础

DM数据库-DISQL使用基础

    • 一、DISQL基础
        • 1.DISQL的定义
        • 2.SQL 语句和 DISQL命令的区别
        • 3.启动DISQL
          • 3.1 windows中程序菜单启动
          • 3.2 自带DIsql工具启动
          • 3.3 命令行启动
          • 3.4 password中特殊字符的书写规范
            • 3.4.1 windows系统
            • 3.4.2 Linux系统
        • 4.使用DISQL登录/退出数据库
          • 4.1 LOGIN登录
          • 4.2 LOGOUT注销
          • 4.3 CONN[ECT]连接
          • 4.4DISCONN[ECT]断开连接
        • 5.使用DISQL和退出
          • 5.1使用DISQL
          • 5.2退出DISQL
        • 6. SET命令设置环境变量
          • 6.1SHOW命令查看环境变量
          • 6.2配置文件设置环境变量
    • 二、DISQL常用命令
    • 三、DISQL中使用脚本
        • 1.用START命令运行脚本
          • 1.1启动DISQL时,运行脚本(D:\test.sql)
          • 1.2进入DIsql之后,运行脚本
        • 2.用EDIT编辑脚本
        • 3.在脚本中使用变量
          • 3.1脚本带参
        • 4.PROMPT命令传递信息

一、DISQL基础

1.DISQL的定义

DIsql 是 DM 数据库的一个命令行客户端工具,识别用户的输入,将用户输入的 SQL 语句打包发送给 DM 数据库服务器执行。

2.SQL 语句和 DISQL命令的区别
SQL DISQL
ANSI 标准 DM 内部标准
语言 命令
关健字不可缩写 关健字可缩写
部分语句以分号结束,部分语句以/结束 分号可有可无,/完全用不到
可以更新表中的数据 不能更新表中的数据
3.启动DISQL
3.1 windows中程序菜单启动

在 WINDOWS 环境中安装 DM 数据库产品,那么可以在应用菜单中找到SQL交互式查询工具,双击即可启动。使用 LOGIN 或 CONN 命令登录到指定数据库
DM数据库-DISQL使用基础_第1张图片

3.2 自带DIsql工具启动

DIsql 位于 F:\dmdbms\bin\DIsql.exe。双击启动
DM数据库-DISQL使用基础_第2张图片

3.3 命令行启动

(1)例如:

./disql SYSDBA/[email protected]:5236#"{mpp_type=local,inet_type=tcp}"

(2)<运行脚本>:`符号运行 sql 脚本文件运行脚本:建议使用绝对路径。例如:e:\a.sql 为包含了一条 select * from dual;语句的脚本文件。

disql SYSDBA/[email protected]:5236 `e:\a.sql

SQL> `e:\a.sql

(3):使用 START 命令运行 sql 脚本文件。例如:

SQL> start e:\a.sql

(4)直接执行语句:使用-E 参数,将在运行 DIsql 时直接执行后续的一条或多条 SQL语句,例如:

DIsql SYSDBA/SYSDBA -E "SELECT TOP 1 * FROM SYSOBJECTS; SELECT TOP 1 * FROM V$CMD_HISTORY"
3.4 password中特殊字符的书写规范
3.4.1 windows系统

假如用户名为 user01

特殊字符 书写规范 连接串写成
DISQL关键字符 DIsql 要求对特殊字符要用, 系统要求加双引号和转义;密码为 aaaa/aaaa DIsql user01/”””aaaa/aaaa”””
空格 要用双引号括起来作为一个整体;密码为 aaaa aaaa DIsql user01/”aaaa aaaa”
双引号 DIsql 要求对双引要用双引,且要转义,系统要求对双引号转义和最外层加双引号”””aaaa””””aaaa”””;密码为 aaaa”aaaa DIsql user01/”””aaaa””””aaaa”””。
3.4.2 Linux系统

(1)操作系统的要求:

  • 单引号中,所有的特殊字符都失去其特殊含义:‘aaaa\aaaa’ 传给 disql 为 aaaa\aaaa
  • 如果密码只有单引号,那么可以将单引号用双引号括起来:“aaaa’aaaa” 传给 disql 为 aaaa’aaaa
  • 如果既有单引号又有$、`、\、!四个特殊字符,那么在其之前加\转义:“aaa’\$aaaa” 传给 disql 为 aaa’$aaaa

(2)DISQL的要求:假如用户名为 user01

特殊字符 书写规范 连接串要写成
DIsql 关键字符 要使用双引号括起来;密码aaaa/aaaa ./DIsql user01/’”aaaa/aaaa”’
双引号 要用双引号括起来,也需要转义;密码aaa”\aaaa ./DIsql user01/’”aaa””\aaaa”’
单引号 只能将单引号放入双引号中;密码aaaa’aaaa ./DIsql user01/”aaaa’aaaa”
单引号+特殊字符 单引只能放在双引内,双引中特殊字符需加反斜杠转义;密码aaa’$aaaa ./DIsql user01/”aaa’$aaaa”
单引号+双引号 单引放在双引中,在双引中表示双引用反斜杠转义;密码aaa”'aaaa ./DIsql user01/”\”aaa\”\”'aaaa\””

(3)转义双引号

  • DISQL要求用双引号进行转义
  • Windows命令行,用双引号或反斜杠进行转义
  • Linux命令行使用反斜杠进行转义
4.使用DISQL登录/退出数据库
4.1 LOGIN登录

在 DIsql 界面中,直接输入 LOGIN 命令后,屏幕会提示输入登录信息

DM数据库-DISQL使用基础_第3张图片

服务名:默认为 LOCALHOST(本地服务器)。

用户名和密码:默认均为 SYSDBA,密码不回显。

端口号:默认为 5236。

SSL 路径和 SSL 密码:服务器通信加密,缺省为不设置。

UKEY 名称和 UKEY PIN 码:供使用 UKEY 的用户使用,普通用户不用设置,缺省为不使用。

MPP 类型:有效值为 GLOBAL 和 LOCAL,默认为 GLOBAL。

是否读写分离(y/n):默认 n。

协议类型:默认 TCP,可选 TCP|UDP|IPC(共享内存)|RDMA(远程直接内存访问)|UNIXSOCKET。

4.2 LOGOUT注销
SQL>LOGOUT

断开连接而不退出 DISQL

4.3 CONN[ECT]连接

例如:连接一个IP地址为192.168.1.150的数据库

SQL>CONN SYSDBA/[email protected]
4.4DISCONN[ECT]断开连接
SQL>DISCONN

断开连接而不退出 DISQL

5.使用DISQL和退出
5.1使用DISQL

连接好数据库之后,输入SQL语句就ok了,DIsql 将 SQL 语句发送给 DM 数据库服务器并显示服务器返回的结果

DM数据库-DISQL使用基础_第4张图片

5.2退出DISQL
SQL>EXIT
6. SET命令设置环境变量
语句 意义
SET AUTO[COMMIT] 设置自动提交
SET DEFINE c:打开 DEFINE 功能,c 前缀符号;ON:默认前缀符号&
SET ECHO START 命令执行一个 SQL 脚本时,是否显示脚本中正在执行的 SQL 语句
SET FEED[BACK] <6(默认值)|n|ON|OFF> 是否显示当前 SQL 语句查询或修改的总行数(n:表示结果大于 n 行时,才显示结果的总行数)
SET HEA[DING] 是否显示列标题
SET LINESHOW 是否显示行号
SET PAGES[IZE] <14(默认值)|n> 设置一页有多少行数
SET TIMING 显示每个 SQL 语句花费的执行时间
SET LINESIZE 设置屏幕上一行显示宽度
6.1SHOW命令查看环境变量

例如:查看 HEADING 和 TIMING 两个变量:

SQL> SHOW HEADING TIMING

HEADING ON.
TIMING ON
6.2配置文件设置环境变量

两个配置文件 glogin.sql 和 login.sql(需自行创建)

文件 存放路径
glogin.sql 存放在$DM_HOME/bin/disql_conf 路径下(disql_conf自行创建)
login.sql 存放路径不做限制

执行顺序: glogin.sql——>login.sql

二、DISQL常用命令

1.帮助HELP

#查询该命令的帮助信息

HELP 命令名

DM数据库-DISQL使用基础_第5张图片
2.输出文件SPOOL

#将查询结果输出到指定文件

DM数据库-DISQL使用基础_第6张图片
执行上述语句,控制台打印查询结果,并将查询结果输出到指定文件 d:\b.sql 中
DM数据库-DISQL使用基础_第7张图片
执行上述语句,控制台不打印查询结果,只将查询结果输出到指定文件 d:\b.sql 中

3.切换到操作系统命令HOST

使用 HOST 命令可以不用退出 DIsql 就能执行操作系统命令

SQL>HOST 操作系统命令

4.获取对象结构信息DESCRIBE

例如: 获取表 sysgrants 的结构描述
DM数据库-DISQL使用基础_第8张图片
5.定义本地变量

(1)DEFINE

DEFINE 定义的变量会保存在环境 DIsql 环境中
DM数据库-DISQL使用基础_第9张图片
关闭变量替换:

SQL>SET DEFINE OFF 

DEFINE 变量定义为整型
DM数据库-DISQL使用基础_第10张图片
(2)查看执行计划EXPLAIN

SQL>EXPLAIN select count(*) from sysobjects;

DM数据库-DISQL使用基础_第11张图片
(3)LIST显示SQL语句或块信息

LIST n|m|*|LAST;
  • n ,m :数值 SQL 行号。
  • *: 当前行号。
  • LAST: 最后一行。

在这里插入图片描述

(4)插入大对象数据

大数据的插入值格式为:@‘path’

例如,在 test 表中插入大对象 e:\DSC_1663.jpg。

create table test(a int,b image);
@insert into test values(1,@'e:\DSC_1663.jpg');

(5)CLEAR清理缓存

语法格式:CL[EAR]

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

DM数据库-DISQL使用基础_第12张图片

三、DISQL中使用脚本

1.用START命令运行脚本

用<`运行脚本>或者

1.1启动DISQL时,运行脚本(D:\test.sql)
DIsql SYSDBA/SYSDBA `D:\test.sql
1.2进入DIsql之后,运行脚本
SQL>start D:\test.sql 或 
SQL>`D:\test.sql
2.用EDIT编辑脚本

格式:ED[IT][],如果指定文件不存在,则创建该文件

例如:

SQL>EDIT D:\test.sql 或
SQL>edit  #如果省略文件,只会修改缓冲区的最后一条 SQL 语句
3.在脚本中使用变量

替换变量前带有一个前缀标志符(默认是&),来源于脚本参数带入、脚本中直接定义、用户动态输入

3.1脚本带参

脚本带参,参数名只能是数字,且通过&n 来引用参数,n 为 1 表示为第一个参数,例如:

(1)建表

create table test(id int); 
insert into test values(11); 
insert into test values(12); 
insert into test values(15);

DM数据库-DISQL使用基础_第13张图片

(2)脚本 D:\test.sql 如下:

select * from test where id = &1;
select * from test where id = &2;
select * from test where id = &3;

(3)运行脚本:

`D:\test.sql 11 12 13  
#参数值个数要与脚本中的变量个数一一对应

DM数据库-DISQL使用基础_第14张图片
(4)参数要求

  • 如参数值是数字,写法没有特殊要求。
  • 如参数值是字符串,用单引号扩起,如字符串有空格,应该在单引号外面,再加上双引号扩起。

脚本 D:\test1.sql:

create table test1(a varchar);
insert into test1 values('hello');
insert into test1 values('hello world');
select * from test1 where a = &1;
select * from test1 where a = &2;

执行脚本:

SQL>`D:\test1.sql 'hello' "'hello world'"

DM数据库-DISQL使用基础_第15张图片

(5)脚本中定义参数值

  • 使用 DEFINE 命令定义变量值,格式:DEFINE 标识符 = 值。
  • 运行脚本时不带参数,脚本中也不定义参数时,会让用户输入参数,从而实现用户交互输入参数值。
4.PROMPT命令传递信息

格式:

PROMPT <输出内容>

会直接打印出相关信息。

达梦在线服务平台:https://eco.dameng.com/

你可能感兴趣的:(DM数据库基础专栏,数据库,sql,java)