【无标题】

达梦数据库管理命令指南

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';

这些命令涵盖了达梦数据库的主要管理操作,可以根据具体需求选择使用。需要注意的是,某些操作需要相应的权限,建议在执行前确认当前用