200 likes | 382 Views
第四讲 表和表空间操作. 4.1 复习: ORACLE 数据库基本结构. 4.2 ORACLE 表空间管理. 4.3 ORACLE 表管理. 4.4 使用模式管理器进行表操作. 4.5 相关的数据字典视图. 4.1 复习: ORACLE 数据库基本结构. 逻辑结构. ORACLE 数据库. 物理结构. 1. 1. N. N. 1. N. 表空间. 物理文件. 1. 1. N. 表 / 索引 / 包 / 过程等. 数据对象. 1. 1. 1. 1. 数据段. 索引段. 1. 1. N. N.
E N D
第四讲 表和表空间操作 4.1 复习:ORACLE 数据库基本结构 4.2 ORACLE 表空间管理 4.3 ORACLE 表管理 4.4 使用模式管理器进行表操作 4.5 相关的数据字典视图
4.1 复习:ORACLE 数据库基本结构 逻辑结构 ORACLE数据库 物理结构 1 1 N N 1 N 表空间 物理文件 1 1 N 表/索引/包/过程等 数据对象 1 1 1 1 数据段 索引段 1 1 N N 数据区间 索引区间 1 1 N N 1 N N 数据块 数据块 物理块
NOTICE! • ORACLE数据库逻辑块大小是操作系统物理块大小的整数倍。 • ORACLE数据库中空间的分配和使用是以逻辑块为单位的。 • 以逻辑块大小(如2K、4K、8K、16K)的整数倍来分配和使用。 • 具体分配和使用的命令中不一定使用块整数倍为数值,而是习惯上还是以字节、KB、MB为单位标识,但必须是逻辑块大小的整数倍。
问题: ORACLE在逻辑结构、物理结构具体是如何分配和使用的?
4.2 ORACLE 表空间管理 4.2.1 创建表空间命令 • 权限: DBA • 命令格式 • CREATE TABLESPACE tablespace_name • DATAFILE filespace • [DEFAULT STORAGE storage] • [ONLINE|OFFLINE]
1) 建立数据文件子句 filespace • 命令格式 • “filename” SIZE integer[K|M][REUSE] • [AUTOEXTEND OFF| • AUTOEXTEND ON NEXT integer[K|M] • [MAXSIZE UNLIMITED | integer[K|M]]] [例1] ‘D:\ORANT\DBS\gx01.ora’ SIZE 10M AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED
[例2] ‘D:\ORANT\DBS\jk01.ora’ SIZE 10M AUTOEXTEND OFF 2) 定义缺省的存储方法 storage 子句 • 命令格式 • INITIAL integer[K|M] NEXT integer[K|M] • PCTINCREASE integer MINEXTENTS integer • MAXEXTENTS integer
[例3] CREATE TABLESPACE gx DATAFILE ' D:\ORANT\DBS\ gx01.ora' SIZE 10M AUTOEXTEND ON NEXT 5M MAXSIZE 100M; [例4] CREATE TABLESPACE jk DATAFILE ' D:\ORANT\DBS\ jk01.ora' SIZE 10M AUTOEXTEND OFF DEFAULT STORAGE (INITIAL 512K NEXT 128K PCTINCREASE 10 MINEXTENTS 1 MAXEXTENTS 100) ONLINE;
[例5] CREATE TABLESPACE jk_temp DATAFILE ' D:\ORANT\DBS\ jk_temp01.ora' SIZE 20M AUTOEXTEND ON NEXT 10M TEMPORARY; 4.2.2 使用存储管理器创建表空间 1) 登录安全管理器授权使之能record SQL SNMPAGENT权限 2) 以internal用户登录存储管理器
3) 打开RECORD功能 4) 创建一表空间 5) 关闭RECORD功能 6) 查看记录的SQL语句
4.2.3 管理表空间 1) 修改表空间 [例6] ALTER TABLESPACE "SYSTEM" ADD DATAFILE 'sys20rcl.ora' SIZE 60M AUTOEXTEND ON NEXT 20M; 2) 删除表空间 [例7] DROP TABLESPACE jk INCLUDING CONTENTS;
[例8] DROP TABLESPACE gx; NOTICE! DROP TABLESPACE 命令并不真正从物理环境中删除该表空间所属的数据文件。要删除相应的数据文件,必须使用操作系统提供的删除文件的方式。或者保留该数据文件供以后创建其它表空间使用(REUSE选项)。该文件中的内容将被清除。
3) 使用存储管理器维护表空间 4.3 ORACLE 表管理 4.3.1 创建表 • 相应权限: • 在自己的模式中创建表需要 CREATE TABLE权限 • 在别人的模式中创建表需要CREATE ANY TABLE权限
命令格式: • CREATE TABLE [用户名].表名 • (字段描述) • (表约束) • [PCTFREE integer] • [PCTUSED integer] • [INITTRANS integer] • [MAXTRANS integer] • [TABLESPACE 表空间名] • [STORAGE 存储子句] • [AS子查询];
[例9] CREATE TABLE “ZT”.部门 (编号 CHAR(8) NOT NULL UNIQUE, 名称 VARCHAR2(20) NOT NULL UNIQUE, PRIMARY KEY (编号)) PCTFREE 20 PCTUSED 60 INITRANS 2 STORAGE ( INITIAL 4096 NEXT 2048 MINEXTENTS 1 MAXENTENTS 100 PCTINCREASE 10) TABLESPACE "ZT”;
4.3.2 查看表 • 命令格式: • DESCRIBE 表名; 4.3.3 修改表 • 命令格式: • ALTER TABLE 表名 ……; • 改表名命令格式: • RENAME 原表名 TO 新表名;
4.4 使用模式管理器进行表操作 4.4.1 WIZARD方式创建表 4.4.2 手工方式创建表 4.4.3 修改表 4.4.3 删除表
4.5 相关的数据字典视图 4.5.1 USER_TABLES:用户定义的所有表的信息 4.5.2 USER_TABLES_COLUMNS:用户定义的所有表的字段信息 4.5.3 USER_CONTRAINTS:用户定义的所有表的约束信息 4.5.4 USER_INDEX:用户定义的所有表的索引信息 4.5.4 USER_TRIGGERS:用户定义的所有触发器信息
概念总结 • 表空间 • 段 • 区间 • 数据块