如有需要可以参考官方文档:
一、管理模式
1、模式与用户之间的关系
模式定义:模式是一个特定的对象集合,在概念上可将其看作是包含表、视图、索引等若干 对象的对象集模式对象: 表、视图、约束、索引、序列、触发器、存储过程/函数、包、同义词、类、域模式与
用户之间的关系:当系统建立一个用户时,会自动生成一个同名的模式用户还可以建立其他模式,DM 中用户和模式是一对多的关系,一个用户可以拥有多个模式, 一个模式仅能归属于一个用户。Oracle 中用户和模式是一对一的关系。
!!!强烈建议观看该文章理解模式和用户的关系等!!!
select * from SYSOBJECTS t where t."TYPE$" ='SCH';
执行上述查询后,返回的结果将包含所有模式的相关信息。以下是一些可能的字段及其含义:
| 字段名 |
描述 |
|
|
对象的唯一标识符(Object ID)。 |
|
|
对象的名称(如模式名)。 |
|
|
对象的类型(如 |
|
|
对象的所有者(通常是创建该模式的用户)。 |
|
|
对象的创建时间。 |
|
|
对象的最后修改时间。 |
例如,查询结果可能如下所示:

select * from SYSOBJECTS t where t."SUBTYPE$" ='USER';
select a.id scheid, a.name schename, b.id userid, b.name username
from SYS.SYSOBJECTS a, SYS.SYSOBJECTS b
where a."TYPE$" = 'SCH' and a.pid = b.id;
2、模式管理
2.1、创建模式
create schema 模式名
create schema 模式名 AUTHORIZATION 用户名;
create table 模式名.t_test(id int, name varchar(20));
2.2、--查看当前模式和当前用户
select sys_context('USERENV','CURRENT_SCHEMA');
select sys_context('USERENV','CURRENT_USER');
2.3、切换模式(仅对当前会话生效)
setSCHEMA dmhr;
2.4、删除模式
drop schema if exists 模式;
drop schema if exists 模式 CASCADE;
这条语句的作用是:
- 如果模式
HRTEST01存在,则删除它。 - 如果模式不存在,则不会报错。
CASCADE 选项
- 如果指定了
CASCADE,则会级联删除模式下的所有对象(如表、视图、索引等),然后再删除模式本身。 - 如果未指定
CASCADE,但模式中包含对象,则删除操作会失败。
二、管理表
表包含:索引组织表、堆表、分区表、HUGE 列存储表、外部表、临时表。
DM 默认创建的是索引组织表,Oracle 默认创建的是堆表。
索引组织表和堆表的区别:
索引组织表:有且仅有一个聚簇索引键,表数据按照聚簇索引键排序(数据是有序的,插入 有序),如果在创建表时未指定聚簇索引键,默认使用 rowid 为聚簇索引键。rowid 是逻辑 rowid,占用存储空间,所以索引组织表比堆表占用较多空间。
堆表:数据是无序的,插入无序,堆表插入效率较高,rowid 是物理 rowid,不占用存储空 间。所以堆表比索引组织表节约空间。
对聚簇索引键的范围查询,索引组织表更高效。
DM 默认创建的索引组织表,由参数 LIST_TABLE 指定。
select * from v$parameter t where name ='LIST_TABLE';
DM 创建表时如果指定了主键,则主键为聚簇索引键(部分版本是这样,由参数 PK_WITH_CLUSTER 指定);如果创建表示未指定主键,则 rowid 为聚簇索引键;
select * from v$parameter t where name ='PK_WITH_CLUSTER';



被折叠的 条评论
为什么被折叠?



