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