达梦数据库管理命令指南

Share
X
达梦数据库常用操作命令,包括查看创建用户,授权,导出表结构,查看约束,表的owner和schema,批量导出表结构
Edit
我来为您整理达梦数据库的常用操作命令:
用户管理
查看用户

sql
-- 查看所有用户
SELECT * FROM DBA_USERS;
-- 查看当前用户
SELECT USER FROM DUAL;
-- 查看用户详细信息
SELECT USERNAME, ACCOUNT_STATUS, CREATED, PROFILE FROM DBA_USERS WHERE USERNAME = 'your_username';
创建用户

sql
-- 创建用户
CREATE USER username IDENTIFIED BY password;
-- 创建用户并指定默认表空间
CREATE USER username IDENTIFIED BY password
DEFAULT TABLESPACE your_tablespace
TEMPORARY TABLESPACE temp;
用户授权

sql
-- 基本权限授权
GRANT CONNECT, RESOURCE TO username;
-- 授权DBA权限
GRANT DBA TO username;
-- 授权特定表的权限
GRANT SELECT, INSERT, UPDATE, DELETE ON table_name TO username;
-- 授权所有权限
GRANT ALL PRIVILEGES TO username;
-- 查看用户权限
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'USERNAME';
SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE = 'USERNAME';
表结构和约束查看
查看表结构

sql
-- 查看表结构
DESC table_name;
-- 或使用
DESCRIBE table_name;
-- 查看详细列信息
SELECT COLUMN_NAME, DATA_TYPE, DATA_LENGTH, NULLABLE, DATA_DEFAULT
FROM USER_TAB_COLUMNS
WHERE TABLE_NAME = 'TABLE_NAME';
查看约束

sql
-- 查看所有约束
SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME, SEARCH_CONDITION
FROM USER_CONSTRAINTS
WHERE TABLE_NAME = 'TABLE_NAME';
-- 查看主键约束
SELECT * FROM USER_CONSTRAINTS
WHERE TABLE_NAME = 'TABLE_NAME' AND CONSTRAINT_TYPE = 'P';
-- 查看外键约束
SELECT * FROM USER_CONSTRAINTS
WHERE TABLE_NAME = 'TABLE_NAME' AND CONSTRAINT_TYPE = 'R';
-- 查看约束列详情
SELECT UC.CONSTRAINT_NAME, UC.CONSTRAINT_TYPE, UCC.COLUMN_NAME
FROM USER_CONSTRAINTS UC, USER_CONS_COLUMNS UCC
WHERE UC.CONSTRAINT_NAME = UCC.CONSTRAINT_NAME
AND UC.TABLE_NAME = 'TABLE_NAME';
Owner和Schema查看
查看表的Owner

sql
-- 查看表的拥有者
SELECT OWNER, TABLE_NAME FROM DBA_TABLES WHERE TABLE_NAME = 'TABLE_NAME';
-- 查看当前用户的所有表
SELECT TABLE_NAME FROM USER_TABLES;
-- 查看所有用户的表
SELECT OWNER, TABLE_NAME FROM DBA_TABLES ORDER BY OWNER, TABLE_NAME;
Schema相关

sql
-- 查看当前schema
SELECT SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA') FROM DUAL;
-- 查看某个schema下的所有表
SELECT TABLE_NAME FROM DBA_TABLES WHERE OWNER = 'SCHEMA_NAME';
导出表结构
单表结构导出

sql
-- 生成创建表的DDL语句(需要使用达梦的系统函数)
SELECT DBMS_METADATA.GET_DDL('TABLE', 'TABLE_NAME', 'OWNER_NAME') FROM DUAL;
批量导出表结构
使用达梦数据库的命令行工具 dexp:

bash
导出指定用户的所有表结构
dexp USERID=username/password@server:port OWNER=schema_name ROWS=N FILE=export.dmp
导出特定表的结构
dexp USERID=username/password@server:port TABLES=table1,table2 ROWS=N FILE=export.dmp
导出整个数据库结构
dexp USERID=username/password@server:port FULL=Y ROWS=N FILE=full_structure.dmp
使用SQL脚本批量生成DDL

sql
-- 生成当前用户所有表的DDL
SELECT 'SELECT DBMS_METADATA.GET_DDL(''TABLE'', ''' || TABLE_NAME || ''') FROM DUAL;'
FROM USER_TABLES;
-- 生成指定用户所有表的DDL
SELECT 'SELECT DBMS_METADATA.GET_DDL(''TABLE'', ''' || TABLE_NAME || ''', ''' || OWNER || ''') FROM DUAL;'
FROM DBA_TABLES WHERE OWNER = 'YOUR_SCHEMA';
其他常用查询
查看表空间

sql
-- 查看所有表空间
SELECT TABLESPACE_NAME FROM DBA_TABLESPACES;
-- 查看表所在的表空间
SELECT TABLE_NAME, TABLESPACE_NAME FROM USER_TABLES;
查看索引
sql
-- 查看表的索引
SELECT INDEX_NAME, COLUMN_NAME FROM USER_IND_COLUMNS
WHERE TABLE_NAME = 'TABLE_NAME';
这些命令涵盖了达梦数据库的主要管理操作,可以根据具体需求选择使用。需要注意的是,某些操作需要相应的权限,建议在执行前确认当前用