关于达梦数据库的理解

DM 数据库基本逻辑

模式:一个用户可以拥有多个模式,一个模式只能属于一个用户
表空间:DM数据库中的所有对象在逻辑上都存放在表空间中,而物理上都存储在所属表空间的数据文件中
用户:创建用户时,会默认创建一个同名的模式

基础

disql SYSDBA/SYSDBA@192.168.0.107:5236  //连接数据库   格式:disql 用户名/密码@ip:端口
desc v$database; //数据库信息
select name from v$database; //查询有哪些数据库
start /usr/local/xxx.sql  //导入数据库
host ls  //host表示执行操作系统命令,不需要退出数据库就可以执行系统的操作命令,减少操作切换的复杂度
select * from 库名称.表名称;  //查询表

创建表空间

-- 查询有哪些表空间 (数据库)
select tablespace_name from dba_tablespaces;

-- 查询有表空间 (数据库)的状态、存储数据文件路径 信息
select tablespace_name,file_name,status from dba_data_files order by 1;  

-- 创建表空间(数据库)test
create tablespace test datafile '/usr/local/data/test01.DBF' size 32,'/usr/local/data/test02.DBF' size 32; 

表管理


-- 重命名表
alter table dm1 rename to dm2;

-- 添加列
alter table dm1 add column(age int);

-- 查看表结构
desc dm1;

-- 删除列
alter table dm1 drop column age;

-- 修改列类型和长度
alter table dm1 modify "SEX" VARCHAR(50);

-- 添加主键
alter table dm add primary key(id);


扩展表空间


-- 方式一
-- 通过增加数据文件的个数来扩展表空间
alter tablespace test add datafile '/usr/local/data/test03.DBF' size 32;
-- 查询结果
select tablespace_name,file_id,bytes/1024/1023 as "size",file_name from dba_data_files where tablespace_name = 'TEST';
-- 方式二
-- 直接修改数据文件的存储大小来扩展表空间
alter tablespace test resize datafile '/usr/local/data/test03.DBF' to 64;
-- 查询结果
select tablespace_name,file_id,bytes/1024/1023 as "size",file_name from dba_data_files where tablespace_name = 'TEST';

-- 补充 查询系统表空间
select * from SYS.dba_data_files;

-- 修改数据文件的扩展属性
-- 后期设置自动扩展
alter tablespace test datafile '/usr/local/data/test03.DBF' autoextend on next 10 maxsize 200;
-- 创建时就设置自动扩展
create tablespace test datafile '/usr/local/data/test01.DBF' size 32 autoextend on next 10 maxsize 200; 


重命名表空间

-- 重命名
alter tablespace test rename to testNew;
-- 查询结果
select tablespace_name,file_id,bytes/1024/1023 as "size",file_name from dba_data_files where tablespace_name = 'testNew';

移动数据文件

注意:在表空间脱机状态下,可以修改数据文件的位置

-- 查询当前表空间的在线状态
select tablespace_name,file_id,bytes/1024/1023 as "size",file_name,online_status from dba_data_files where tablespace_name = 'testNew';
-- testNew脱机
alter tablespace testNew offline;
-- 修改数据文件位置
alter tablespace testNew rename datafile '/usr/local/data/test01.DBF' TO '/usr/src/data/test01.DBF';
-- testNew上线
alter tablespace testNew online;
-- 查询结果
select tablespace_name,file_id,bytes/1024/1023 as "size",file_name from dba_data_files where tablespace_name = 'testNew';

注意:这里的移动是操作系统物理上的移动

删除表空间

DROP TABLESPACE <表空间名称>
#示例:drop tablespace textNew;

用户管理

用户是用来连接和管理数据库的

-- 查看所有角色
select * from dba_roles;

-- 查看所有用户
select username,user_id,account_status from dba_users;

--查看系统中所有用户对应的角色
select * from dab_role_privs;

-- 创建用户dm,设置密码dameng123
create user <用户名> identified by <密码> limit connect_time 3 DEFAULT TABLESPACE 表空间名称;

-- 对用户授权
grant public,resource,dba to dm;

-- 切换登录dm用户
conn 

-- 查看当前用户
select username from user_users;
select user();

-- 查询用户状态
select username,user_id,account_status from dba_users;

关于达梦数据库的一些基本操作

-- 创建表空间
create tablespace <表空间名称> datafile <数据库存储文件> size 32; 
# 示例:create tablespace MCKMS datafile '/usr/local/data/mckms.DBF' size 32;

-- 创建用户
create user <用户名> identified by <密码> limit connect_time 3 DEFAULT TABLESPACE 表空间名称;
# 示例:create user dave identified by "dave123456" limit connect_time 3 DEFAULT TABLESPACE MCKMS;

-- 查看所有用户的权限
select * from dba_role_privs;

-- 授权
grant public,resource,dba to <用户名称>;
# 示例:grant public,resource,dba to dave;

-- 回收授权
revoke <权限> from <用户名称>
# 示例:revoke public,resoucre,dba from dave;


-- 查看用户对应的表空间
select username,default_tablespace from dba_users;

-- 切换用户
conn mkcks_test

-- 创建模式
CREATE SCHEMA 模式名称;   
/
#若不创建模式名,则默认使用和用户名称同名的模式名

-- 创建表
CREATE TABLE "模式名"."表名称"( 
	<字段名> INT PRIMARY KEY,
	<字段名> VARCHAR(15) NOT NULL, 
	<字段名> INT, 
	<字段名> INT
) storage(on "表空间");
# 示例:CREATE TABLE "DAVE"."QM_USER"(uid INT PRIMARY KEY, uname VARCHAR(15) NOT NULL, age INT ) storage(on "MCKMS");
# 示例:INSERT INTO "DAVE"."QM_USER"("uid","uname","age") VALUES(1,'小张',10);

-- 查看数据表和表空间的关系
select table_name,tablespace_name from dba_tables where table_name = <表名>;
# 示例:select table_name,tablespace_name from dba_tables where table_name = 'QM_USER';

-- 查询当前登录用户
select username from dba_users;
select user();

-- 查询用户拥有的模式
SELECT B.USERNAME,A.NAME SCHEMA_NAME FROM SYSOBJECTS A,DBA_USERS B WHERE A.PID=B.USER_ID AND A.TYPE$='SCH' ORDER BY B.USERNAME;

-- 查询用户有哪些表
select TABLE_NAME as tbName from all_tables where OWNER = <用户名>;
# 示例:select TABLE_NAME as tbName from all_tables where OWNER = 'MCKMS_TEST';
-- 查询有哪些表空间
select tablespace_name from dba_tablespaces;

-- 查询当前表空间下有哪些表
select TABLE_NAME,OWNER from all_tables where TABLESPACE_NAME = <表空间名称>;
# 示例:select TABLE_NAME,OWNER from all_tables where TABLESPACE_NAME = 'MCKMS';

-- 查看表定义语句
select dbms_metadata.get_ddl('TABLE',<表名称>,<模式名称>);
#示例:select dbms_metadata.get_ddl('TABLE','QM_USER','DAVE');

参考

数据库 示例用户 安装 说明
https://www.cndba.cn/dave/article/3712

内置示例库DMHR脚本
https://www.cndba.cn/dave/article/116443

指定 对象的 默认表空间
https://www.cndba.cn/dave/article/3755

表空间 管理 说明
https://www.cndba.cn/dave/article/3569

用户管理说明
https://www.cndba.cn/Dave/article/3567

用户权限 分配说明
https://www.cndba.cn/dave/article/108605

DM数据库逻辑存储结构说明
https://www.cndba.cn/dave/article/3568

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值