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函数使用时注意,单独查询好使,放到视图里面会出现语义分析错误