DM数据库的简单使用

1.查看数据库状态 4代表open,3代表mount

select status$ from v$database

2.表中加字段

alter table 表名 add 字段名 字段类型

3.表中修改字段类型 (TEXT特殊 不适用)

alter table 表名 modify 字段名 类型

4.表中修改字段名

alter table 表名 alter 字段名 rename to 新字段名

5.数据库定时任务

代理 -> 作业  可以定时修改数据库中指定数据的

6. NVL 

NVL( 指定的字段为NULL时 , 替换成的数据 ) 

7. 布尔运算符

NOT EXISTS 检查是否存在满足条件的行,存在返回true

EXISTS  检查是否不存在满足条件的行,不存在返回 true

 left join (

        select grjsjb.v_name as grjsjbname,

                lmhr_hi_person_id

        from lmhr_hi_grjsdj

        left join lmhr_bd_grjsjb grjsjb

        on grjsjb.id = c_technical_level

        when exist(

                select 1 from lmhr_hi_grjsdj where b_latest ='1'

        )

        and b_latest = '1'

) t14

on t14.lmhr_hi_person_id = t1.id

8. 合并多个查询结果

UNION   将多个查询结果合并在一起,并且去除重复的行

UNION ALL 将多个查询结果合并在一起,不去除重复的行

9.截取字符串的函数

N可以为负数,表示倒数第N个索引字符后面的字符串。有负号的时候,可以将整个字符倒过来看,依旧是第N个字符前面的部分。

substring_index( 要截取的字符串 , 分隔符 , 截取次数n )

10.to_char(字段名) 格式转换

写的视图 发现 text和我做的报表中会报错,使用这个进行强转的

TO_CHAR(NEWS.VREMARKS)    AS   NREMARKS

 11. truncate 删除表指令  删除后无法恢复,除非花钱

truncate table table_name;

 12. merge into 来实现当符合 on 中的条件时则进行更新操作,否则进行插入操作的功能

 merge into target t using source s on (t.id = s.aid)
when matched then
update set t.year = s.year
when not matched then
insert values(s.aid, s.name, s.year);

 13.DECODE( '字段' , 1 , '是' , '否' )

可以把 查询的结果1 或者 2 这样的转化为 是 否 这样的汉字

 14. 视图提示 group by 表达式的错误

查询区加进去就行

/*+ GROUP_OPT_FLAG(1)*/

 15.超出全局hash join空间,适当增加HJ_BUF_GLOBAL_SIZE的错误

治标方法

select * from SYS."V$DM_INI" where PARA_NAME = 'HJ_BUF_GLOBAL_SIZE'

 把 para_value,sess_value,sess_value 三项值 增到到了 1000(原500),就好使了

16.CASE WHEN

case when date is not null then date_format(date,'yyyy-mm-dd') else ' ' end

17.查询数据库是否开启闪回(亲测like后边要大写,其他的大小写无所谓)

--查询自己的达梦数据库是否开启闪回
select PARA_NAME,PARA_VALUE,PARA_TYPE from v$dm_ini where para_name like '%FLASHBACK%';
--设为开启
alter system set 'enable_flashback'=1 both;
--90秒
select PARA_NAME,PARA_VALUE,PARA_TYPE from v$dm_ini where para_name like 'UNDO_RETENTION';
--设为24小时
ALTER SYSTEM SET 'undo_retention'=86400 BOTH;

--2024-02-29 10:28:43
select sysdate();

delete test.depy

select * from test.depy WHEN TIMESTAMP '2024-02-29 10:28:43';
--插入数据
insert into test.depy select * from test.depy WHEN TIMESTAMP '2024-02-29 10:28:43';

18.创建索引

CREATE INDEX index_name ON table_name (column_name)

19.快速复制表语句

create table copyTable as select * from table 

20.if函数使用时注意,单独查询好使,放到视图里面会出现语义分析错误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值