1.达梦数据库简介
对于达梦数据库,我的印象只是国产数据库,集百家之所长,几乎mysql,Oracle的语法都可以兼容,虽然并不是很稳定,而且有一些细节做的并不是很好,但是一个国产就包含太多情感,希望能越做越好吧。
2.一些DM管理工具技巧
这里我用的是DM7,直接安装就能使用那种
刚开始是没有连接的,需要创建或者注册连接,二者的区别在于创建连接等关闭管理工具之后还需要重新创建,而注册连接当退出软件再打开还会存在连接的信心
2.1创建连接
数据库地址,用户名,密码这些都按公司给的填写正确,之后保存口令方便下次登陆,在注册信息连接名处给这个连接起一个昵称,咱们以后找的时候好找
2.2工具操作
当标志变绿就是连接上了,双击可以查看库中的内容了,但是右上角的视图方式更方便一些,直接点开视图
点开之后是上边的样子,简单介绍一下,模式就像是给表整一个文件夹,不同的模式下有不同的表,选中一个模式名,在过滤框中输入表名即可在模式下快速定位到这张表,进而对表进行一些操作。
视图就是好几张表通过语句创建一个类似于表连接之后的结果,但是这个结果会随着子表变化的,这个就是视图。
存储过程可以对表进行一些操作,就类似于编程一样,初始化表,备份表等等功能都可以通过存储过程实现
函数就是类似于方法
包就好像是存储过程的一个文件夹,一个包可以包括多个存储过程
2.3查询相关操作
点击查询右边会出现一个你所选库的查询框,直接拖拽你想查询的表到查询框就可以实现select*了,是不是很方便
2.4常用sql语句
2.4.1查表结构
-- 查询表结构字段
SELECT DISTINCT
zd.column_id as 序号 ,
zd.column_name as 字段名,
zs.comments ,
(case zd.data_type when 'VARCHAR2' then 'VARCHAR2'
||'('
||zd.data_length
||')' when 'NUMBER' then 'NUMBER'
||'('
||zd.DATA_PRECISION
||','
||zd.DATA_SCALE
||')' when 'CHAR' then 'C'
||'('
||zd.data_length
||')' else zd.data_type end) as 数据格式,
(case zd.nullable when 'Y' then '否' when 'N' then '是' else zd.nullable end) as 必填项
FROM
dba_tab_columns zd
left join dba_col_comments zs
on
zd.column_name = zs.column_name
where
zd.table_name = 'T_REG_JTJBXX' --这里需要替换你自己的表
and zs.table_name = 'T_REG_JTJBXX' --这里需要替换你自己的表
order by
column_id;
这个sql语句可以查询出你表的序号,字段名,注释,数据格式,必填项,以后要整理excel啥的就比较方便了
2.4.2查死锁和事物
--死锁
select
a.id as trx_id ,
a.sess_id ,
a.status 事务状态 ,
b.sql_text ,
a.waiting 事务等待的锁,
b.CLNT_IP 客户端IP ,
b.state 会话状态
from
v$trx a
left join v$sessions b
on
a.sess_id = b.sess_id
where
b.sql_text like '%C_QSSJ_SSXW_CHECK_ACTION%' --换成想查询死锁的表
查询死锁可以发现这个表是否有事务没提交在等待,事务的sql语句,事务的id,如果以后有问题就可以通过事务id关闭事务
--达梦表空间上有事务未提交
select
t1.sess_id ,
t1.sql_text,
t1.state ,
t1.trx_id
from
v$sessions t1,
v$trx t2
where
t1.trx_id=t2.id
and t1.state ='IDLE'
and t2.status='ACTIVE';
查这个表空间的所有事务,也是为了排查错误之后关闭事务的
sp_close_session(sess_id);
关闭事务的方法