达梦数据库常用功能及命令记录 -- 持续更新

达梦数据库常用功能及命令记录

达梦数据库语句的使用总体来说跟 oracle 很接近的, 这篇文章主要是把常用的情况和语句做了记录, 并且后续还会不断的持续更新

达梦数据库常用说明

1. 测试查询语句: select 1;selecttop2fromv$dm_ini;

selectfromv$dm_ini limit2;
select*fromv$dm_iniwhererownum<2;

2. 达梦大小写:

DM7.6 之前版本默认密码是转为大写存储的, 登录时要注意. 比如用户设置 test/test123456, 那么登录的时候用 test/TEST123456 和 TEST/TEST123456 可以登录, 用 test1/test123456 和 TEST1/test123456 就不能登录. 如果设置密码时加引号, 则存储实际的密码.

DM8 版本后大小写默认通用, 用户名密码默认统一都存储大写的, 登录时用大小写都可以, 都转为大写做匹配. 如果设置密码时加引号, 则存储实际的密码.

3. 语句拼接用 "||", 如: select username||user_id users from dba_users;

4.oracle 支持不等于的写法, DM 只支持 <> 和!=, 如下语句selectfromdba_users dwhered.username<>'SYS';

selectfromdba_users dwhered.username!='SYS';
select*fromdba_users dwhered.username^='SYS';

5. 达梦数据库创建表空间数据文件要求最小要 32M. 添加的数据文件大小最小为 4096 页大小, 如页大小为 8K, 则可添加的文件最小值为 40968k=32M.

6. 查看执行计划: explain select ID from TAB1;

启停连接数据库

启停数据库[[emailprotected]dm]#serviceDmServiceDMSERVERstart

[[emailprotected]dm]#serviceDmServiceDMSERVERstop
[[emailprotected]dm]#serviceDmServiceDMSERVERrestart
[[emailprotected]dm]#serviceDmServiceDMSERVERstatus

连接数据库

注: 在连接前是已经启动了数据库服务和配置环境变量的

连接命令:

disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]: 处于普通打开状态

登录使用时间: 30.904(毫秒)disql V7.6.0.77-Build(2018.07.17-94714)ENT

Connectedto:DM7.1.6.77

SQL>

如果没有配置环境变量可直接到 DM 路径的 bin 目录下操作[[emailprotected]dm]#su-dmdba

[[emailprotected]dmdbms]$ cd/home/dmdba/dmdbms/bin
[[emailprotected]bin]$./disql SYSDBA/[emailprotected]

查看配置信息

查看达梦数据库相关

查看达梦数据库的初始化配置参数信息

select para_name,para_value from v$dm_ini limit 5;

过滤查看数据库的配置端口

select para_name,para_value from v$dm_ini where para_name like '%PORT%';

查看达梦数据库库名

select name,create_time from v$database;

查看达梦数据库实例名及状态

select name,instance_name,start_time,status$ from v$instance;

查看用户相关

查看数据库里所有使用用户

select username,user_id,default_tablespace,profile from dba_users;

查看所有角色

select role from dba_roles;

查看所有表空间selectid,name,max_size,total_size,status$fromv$tablespace;

selecttablespace_name,statusfromdba_tablespaces;

查看所有数据文件

select id,path,max_size,free_size,status$ from v$datafile;

查看日志文件路径信息

select path,rlog_size from v$rlogfile;

查看对象相关

查看所有对象selectfromdba_objects;

selectfromdba_objectswhereobjectname like'DBA%';

select*fromdba_objectswhereobject_name like'V$%';

查看用户表对象

select owner,table_name,tablespace_name,status from dba_tables where owner='TEST1' limit 5;

查看角色类型

select * from dba_roles;

创建各种对象

创建表空间设定自动扩展

create tablespace TBS_TEST datafile 'TBS_TEST01.dbf' size 128 autoextend on;

创建用户默认表空间

create user USER_TEST identified by "123456789" default tablespace TBS_TEST;

给用户赋值 DBA 权限

grant dba to USER_TEST;

创建最普通的表create table tab_test(idint,name varchar(10));

insertintotab_test values(1,'N1');
insertintotab_test values(2,'N2');

创建视图

create view v_test as select id,name from tab_test where name='N1';

创建触发器create table tab_result(log varchar(100));

createorreplace trigger tri_test
before insert on tab_test
begin
insertintotab_result values('插入');
end;

创建带参数的存储过程createorreplace procedure pro_test(iinint)

asjint;totalint;
begin
forjin1..i loop
insertintotab_test values(j,'aaaaa');
endloop;
end;

调用存储过程

fut_ccgc_dcs (10);