使用SQL客户端连接达梦数据库,主要有命令行工具 DISQL 和图形化工具 DM管理工具 两种方式。具体选择可参考下表:
| 工具类型 | 工具名称 | 主要特点/适用场景 |
|---|---|---|
| 命令行工具 | DISQL | 达梦自带,类似Oracle的SQLPlus,存放于安装路径的/bin/或/tool/目录,适合习惯命令行操作、需执行特定命令(如DESC查看表结构)或自动化脚本的场景。 |
| 图形化工具 | DM管理工具 | 功能强大、操作简单的图形化客户端,适合日常管理、查询数据、视觉化操作。 |
🖥️ 使用DISQL命令行连接
DISQL工具位于达梦数据库安装路径下的bin或tool目录。
基本连接语法:
./disql 用户名/密码@主机地址:端口号
./disql SYSDBA/SYSDBA@localhost:5236
注意:在/bin目录下使用disql时,建议直接在命令中写全连接信息。如果只输入./disql后回车,后续将无法输入端口号(除非使用默认端口5236)。
CONN SYSDBA/SYSDBA@localhost:5236
或 LOGIN 随后根据提示输入服务器地址、用户名、密码及端口号。
自定义服务名=(IP地址:端口号) 例如:DMDB=(192.168.1.100:5236)
./disql SYSDBA/SYSDBA@DMDB
🖱️ 使用图形化客户端连接
达梦数据库也提供了图形化的DM管理工具(DM Management Studio)。
创建新连接:
💡 实用技巧与注意事项
连接问题排查:
START /path/to/your_script.sql 或 ` /path/to/your_script.sql
🗂️ 关于用户与模式
在达梦数据库中,创建一个用户时会自动生成一个同名的模式(Schema)作为该用户的默认模式。用户操作自己模式下的对象(如表)时可以不写模式名。查询当前所在模式可以使用:
SELECT SYS_CONTEXT ('userenv', 'current_schema') FROM DUAL;相关文章:
达梦数据库的SQL命令体系清晰,涵盖了从数据库连接、对象操作到性能分析的各个方面。下面这个表格汇总了最常用的命令,方便快速查阅。
DM常用操作命令与MySQL对比一览
💡 重要差异与使用技巧
模式(Schema)与用户(User)的关系
在达梦数据库中,一个用户可以拥有多个模式,但一个模式只属于一个用户。当创建一个用户时,系统会默认创建一个与用户名同名的模式作为其默认模式。执行SQL时,如果操作的不是当前用户的模式对象,通常需要在表名前加上模式名,格式为模式名.表名。设置默认(当前)模式的方法
除了在DISQL中手动使用SET SCHEMA,还可以在应用程序的JDBC连接字符串中直接指定,这可以避免在代码中频繁书写模式名前缀:jdbc:dm://192.168.15.35:5236?schema=TEST2标识符和字符串的引用
MySQL:表名和字段名可以用反引号(`)引用,字符串可用单引号(')或双引号(")。
达梦:表名和字段名只能使用双引号(") 进行引用(如果包含特殊字符或关键字时)。而字符串必须使用单引号(') 表示。
自增列的定义
MySQL:使用
AUTO_INCREMENT。达梦:使用
IDENTITY(1,1),例如id INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY。注意,达梦不支持AUTO_INCREMENT关键字,通常使用GENERATED ALWAYS AS IDENTITY关键字。
🛠️ 命令详解与使用技巧
表格列出了常用命令,下面再补充一些关键细节和使用技巧,能让你更好地使用它们。
连接数据库与DISQL工具
DISQL是达梦数据库的命令行交互式客户端工具。连接时,如果密码含有特殊字符,建议用'""'包裹密码,例如:./disql SYSDBA/'"#Sjkdzgm0"'@192.168.23.3:5236。
成功连接后,可以通过START或反引号`来执行外部的SQL脚本文件。使用SPOOL命令可以将接下来屏幕上显示的所有内容输出到指定文件,这在生成报告或记录操作日志时非常有用。记得操作结束后用SPOOL OFF关闭输出。掌握对象管理与数据操作
建表时需要注意语法细节,例如,达梦数据库中标识符(如表名、列名)若包含特殊字符或与保留字冲突,需要使用双引号包围。
在执行数据操作时,务必注意事务的提交。可以通过SET AUTO[COMMIT]设置是否自动提交。在自动提交为OFF时,执行了INSERT、UPDATE、DELETE等修改数据的操作后,需要显式执行COMMIT;提交事务,或者执行ROLLBACK;回滚事务,才能使数据修改真正生效或撤销。分析SQL性能
使用EXPLAIN命令是分析SQL语句执行计划、进行性能调优的重要步骤。执行计划采用缩进树形结构展示,读法一般是从内到外,从下到上。需要关注:
DM常用SQL命令
-- 查看实例名
select instance_name from v$instance;
-- 查看达梦版本
select * from v$version;
-- 查看达梦有无开启兼容mysql语法
select para_name,para_value,file_value from v$dm_ini where para_name='COMPATIBLE_MODE';
-- 查看用户所有库
SELECT t.name schname, t.id, t.pid, b.name username FROM sysobjects t, sysobjects b WHERE t.pid = b.id AND t.type$='SCH' ;
-- 查看用户所有角色
select grantee,granted_role from dba_role_privs where grantee='chegva';
-- 查看数据库会话
select *from v$sessions;
-- 查看所有索引(当前模式)
SELECT INDEX_NAME, TABLE_NAME, UNIQUENESS FROM USER_INDEXES;
-- 查看其他模式的索引
SELECT * FROM DBA_INDEXES WHERE OWNER = 'schema_name' AND TABLE_NAME = 'table_name';
-- 查看索引的详细定义
SELECT DBMS_METADATA.GET_DDL('INDEX', 'index_name', 'schema_name') FROM DUAL;
-- 查看表的索引
SELECT * FROM USER_INDEXES WHERE TABLE_NAME = 'table_name';
或
SP_TABLEDEF('schema_name', 'table_name');相关文章: