【达梦】达梦数据库sql汇总
1、在达梦数据库中,将多行数据合并为一行通常可以使用WM_CONCAT、LISTAGG或COLLECT函数。
> WM_CONCAT函数
WM_CONCAT函数可以将多行数据合并为一行,并用逗号分隔。
SELECT WM_CONCAT(列名) FROM 表名;
如果需要按某列进行分组后再合并,可以结合GROUP BY子句使用:
SELECT 分组列, WM_CONCAT(合并列) FROM 表名 GROUP BY 分组列;
> LISTAGG函数
LISTAGG函数是另一种将多行数据合并为一行的方法,并且可以指定分隔符。
LISTAGG(列名, 分隔符) WITHIN GROUP (ORDER BY 排序列)
使用时需要搭配GROUP BY子句:
SELECT
分组列, LISTAGG(合并列, 分隔符) WITHIN GROUP (ORDER BY 排序列) as 合并后的列名
FROM 表名 GROUP BY 分组列;
> 使用COLLECT函数
COLLECT函数可以将多行数据合并成一个集合,通常用于将多行数据合并成一个逗号分隔的字符串。使用时也需要结合GROUP BY子句:
SELECT 分组列, COLLECT(合并列) as 合并后的列名 FROM 表名 GROUP BY 分组列;
查看状态:
./DmServiceDMSERVER status
重启:
./DmServiceDMSERVER restart
查看正在执行的sql:
select * from v$sessions where state = 'ACTIVE';
杀死正在执行的SQL:
call sp_close_session(sess_id);
查看最大链接数:
SELECT SF_GET_PARA_VALUE(2, 'max_sessions');
查看当前链接数:
SELECT count(*) FROM v$sessions where state = 'ACTIVE';
查看有多少个表:
SELECT count(1) FROM all_tables WHERE tablespace_name = '111';
SELECT table_name FROM all_tables WHERE TABLE_NAME LIKE '111%' OR TABLE_NAME LIKE '111%' ;
SELECT table_name, comments FROM dba_tab_comments;
SELECT table_name, comments FROM all_tab_comments WHERE owner='111' AND TABLE_NAME LIKE '111%' OR TABLE_NAME LIKE '111%' ;
select * from all_tab_columns; 表字段
select * from all_col_columns; all_col_comments 字段注释
查看有多少个字段
SELECT COUNT(*) FROM all_tab_columns WHERE table_name IN (
SELECT table_name FROM all_tables WHERE TABLE_NAME LIKE 'omp_%' OR TABLE_NAME LIKE '111%'
);
查看表大小:
select OWNER,SEGMENT_TYPE,SEGMENT_NAME,ROUND(SUM(BYTES)/(1024*1024*1024.000),3) SIZE_GB
FROM dba_SEGMENTS
where owner='111'
and SEGMENT_TYPE='TABLE'
group by OWNER,SEGMENT_TYPE,SEGMENT_NAME
order by SIZE_GB DESC;
去除密码规则
ALTER USER "USER1" LIMIT PASSWORD_LIFE_TIME UNLIMITED;
ALTER USER "111" LIMIT FAILED_LOGIN_ATTEMPS UNLIMITED, PASSWORD_LOCK_TIME UNLIMITED, PASSWORD_GRACE_TIME UNLIMITED;
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)