达梦数据库常用语句

一、动态性能视图

1、查看服务器key有效期

sql 复制代码
select expired_date from v$license;

2、查看数据库版本信息

sql 复制代码
select * from v$version;

3、查看数据库信息

sql 复制代码
select * from V$DATABASE;

4、查看实例信息

csharp 复制代码
select * from v$instance;

5、查看数据库动态视图

csharp 复制代码
select * from V$DYNAMIC_TABLES;

6、查看数据库表空间

csharp 复制代码
select * from V$TABLESPACE;

7、查看数据库配置参数

sql 复制代码
select * from V$PARAMETER;

8、查看所有ini 参数和 dminit建库信息

csharp 复制代码
select  *  from V$DM_INI;

9、查看归档信息

csharp 复制代码
select * from V$DM_ARCH_INI;

10、查看日志信息

csharp 复制代码
select * from V$RLOG

11、显示活动连接的所有信息。

sql 复制代码
select * from V$CONNECT;

12、显示当前会话的具体信息

csharp 复制代码
select * from V$SESSIONS;

13、显示系统当前会话的一些状态统计信息

csharp 复制代码
select * from V$SESSION_SYS;

14、连接语句句柄表,用于记录 SESSION 上语句句柄的信息

csharp 复制代码
select * from V$OPEN_STMT;

15、显示当前会话历史的记录信息

csharp 复制代码
select * from V$SESSION_HISTORY;

16、显示当前会话所有上下文的名字空间、属性和值

csharp 复制代码
select * from V$CONTEXT;

17、记录当前会话上的相关统计信息

csharp 复制代码
select * from V$SESSION_STAT;

18、显示执行 SQL 的历史记录信息

当 INI 参数 ENABLE_MONITOR=1 时,显示执行 SQL 的历史记录信息;可以方便用户 经常使用的记录进行保存。

csharp 复制代码
select * from V$SQL_HISTORY

19、显示所有活动事务的信息

csharp 复制代码
select * from V$TRX;

20、显示事务等待信息。

csharp 复制代码
select * from V$TRXWAIT

21、显示当前事务可见的所有活动事务视图信息

csharp 复制代码
select * from V$TRX_VIEW;

22、显示活动的事务锁信息

csharp 复制代码
select * from V$LOCK;

23、记录死锁的历史信息

csharp 复制代码
select * from V$DEADLOCK_HISTORY;

二、plsql

1、创建序列

sql 复制代码
CREATE SEQUENCE "STUDENTS"."PSQU"
                          INCREMENT BY 1
                          START WITH 1
                          MAXVALUE 10000000
                          MINVALUE 1
                          NOCYCLE
                          NOCACHE
                          ORDER;

2、创建函数

1、生成随机字符串

sql 复制代码
create  or replace function randStr(n in int) 
return varchar as
name varchar;
result varchar:='';
begin
		for i in 1..n loop  
			name := char(convert(integer,rand()*100));
      result := concat(result,name);
		end loop;
		return result;
end;

2、生成随机日期函数

sql 复制代码
CREATE OR REPLACE FUNCTION myRandDate
/*函数参数(可选),格式为(<参数名称 参数类型(IN/OUT/INOUT) 数据类型>{, <参数名称 参数类型(IN/OUT/INOUT) 数据类型>})*/
(startYear IN int,endYear IN int)
/*返回 数据类型*/
RETURN timestamp
AS
    /*变量说明部分*/
    year INT;
    month int;
    day int;
    strDate varchar;
    result timestamp;
BEGIN
    year := DBMS_RANDOM.VALUE(startYear, endYear);
	month := DBMS_RANDOM.VALUE(1, 12);
    day := DBMS_RANDOM.VALUE(1, 28);
	strDate := concat(to_char(year),'-',to_char(month),'-',to_char(day));
	result := TO_DATE(strDate);
    return result;
END;

3、创建存储过程

批量插入数据

sql 复制代码
create or REPLACE PROCEDURE TAB_INSERT(NUM INT)
AS
CNT INT;
BEGIN
	SELECT MAX("userLogin"."userID") INTO CNT FROM "userLogin";
	IF CNT IS NULL THEN
	  CNT:=0;
	END IF;
	FOR I in 1..NUM 
	LOOP
		INSERT INTO "STUDENTS"."USERLOG" VALUES(PSQU.nextVal,CNT,RANDSTR(5000),myranddate(2018,2024));
		COMMIT;
	END LOOP;
END;

4、创建触发器

userLogin表中插入记录,对应的userLog表中也插入数据

sql 复制代码
CREATE OR REPLACE TRIGGER "STUDENTS"."T_InsertUserLogin"
AFTER INSERT
ON "STUDENTS"."userLogin"
FOR EACH ROW
WHEN (1 = 1 /* 根据实际情况填写, 可选 */)
BEGIN
    /*触发器体*/
    INSERT INTO USERLOG("ID","USERID","CONTENT","LOGDATE") VALUES 
    (PSQU.nextVal,:new."userID",randstr(1000),SYSDATE);

END;
相关推荐
兩尛1 小时前
订单状态定时处理、来单提醒和客户催单(day10)
java·前端·数据库
web2u1 小时前
MySQL 中如何进行 SQL 调优?
java·数据库·后端·sql·mysql·缓存
Elastic 中国社区官方博客2 小时前
使用 Elasticsearch 导航检索增强生成图表
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
小金的学习笔记2 小时前
RedisTemplate和Redisson的使用和区别
数据库·redis·缓存
新知图书2 小时前
MySQL用户授权、收回权限与查看权限
数据库·mysql·安全
文城5212 小时前
Mysql存储过程(学习自用)
数据库·学习·mysql
沉默的煎蛋3 小时前
MyBatis 注解开发详解
java·数据库·mysql·算法·mybatis
呼啦啦啦啦啦啦啦啦3 小时前
【Redis】事务
数据库·redis·缓存
HaoHao_0103 小时前
AWS Serverless Application Repository
服务器·数据库·云计算·aws·云服务器
C语言扫地僧3 小时前
MySQL 事务及MVCC机制详解
数据库·mysql