Oracle数据库知识整理----SQL基础(二)表空间


一、表空间概念

1、数据库与表空间
表空间是数据库的逻辑存储空间,用户存放数据库的对象,一个数据库可以由多个表空间来构成。
2、表空间与数据文件
表空间是由一个或多个数据文件构成的。数据文件的位置和大小可以由用户自定义。所存储的表、数据库中的一些其他对象,都是存放在表空间的数据库文件中。


二、表空间的分类

1、永久表空间
数据库中需要永久存储化的对象,如:表、视图、存储过程等这些对象。
2、临时表空间
主要用于存放数据库操作过程中,中间执行的过程。当执行结束之后,存放的内容就会被自动释放,不进行永久性的保存。
3、UNDO表空间
用于保存事务所修改数据的旧值(被修改之前的数据),如:对一张表进行修改时,它会对修改之前的信息进行保存,这样可以对数据进行回滚(撤销操作)。


三、表空间作用

1、SYSTEM
主要用于存放“sys”用户的表、视图和存储过程等数据对象。被称为“系统表空间”。
2、SYSAUX
system表空间的辅助表空间,例如存放一些报告信息等
3、UNDOTBS1
用于存储撤销类信息的表空间。
4、TEMP
用于存储SQL语句处理表的临时表空间
5、USERS
属于一个永久性表空间,主要用于存储数据库用户创建的数据库对象,与“SYSTEM”表空间类似


四、查看用户的表空间

1、dba_tablespaces数据字典
在这里插入图片描述
在这里插入图片描述
2、user_tablespaces数据字典
在这里插入图片描述
在这里插入图片描述
3、dba_users数据字典
在这里插入图片描述
在这里插入图片描述
4、user_users数据字典


五、设置用户的默认或临时表空间

ALTER USER username
 DEFAULT | TEMPORARY
 TABLESPACE tablespace_name

例如:设置system的默认或临时表空间

alter user system
default tablespace system;
select default_tablespace,temporary_tablespace from dba_users where username='SYSTEM';

在这里插入图片描述


六、创建表空间

CREATE [TEMPORARY] TABLESPACE
 tablespace_name
 TEMPFILE | DATAFILE ‘xx.dbf’SIZE xx

1、永久表空间

conn system/Oracle12c
create tablespace test1_tablespace
datafile 'test1file.dbf' size 10m;

在这里插入图片描述
2、临时表空间

create temporary tablespace temptest1_tablespace
tempfile 'tempfile1.dbf' size 10m;

在这里插入图片描述
3、查看所创建的永久表空间

desc dba_data_files
select file_name from dba_data_files 
where tablespace_name ='TEST1_TABLESPACE';

在这里插入图片描述
4、查看所创建的临时表空间

desc dba_temp_files
select file_name from dba_temp_files 
where tablespace_name ='TEMPTEST1_TABLESPACE';

在这里插入图片描述


七、修改表空间

1、修改表空间的状态

(1)设置联机或脱机状态

ALTER TABLESPACE tablespace_name
   ONLINE | OFFLINE;

修改永久表空间的状态为“脱机状态”

alter tablespace test1_tablespace
offline;

在这里插入图片描述
修改永久表空间的状态为“联机状态”

alter tablespace test1_tablespace
online;

在这里插入图片描述

(2)设置只读或可读写状态
需处于“联机”状态修改,默认的联机状态为“READ WRITE”状态

ALTER TABLESPACE tablespace_name
 READ ONLY | READ WRITE;

修改永久表空间的状态为“只读状态”

alter tablespace test1_tablespace
read only;

在这里插入图片描述
修改永久表空间的状态为“读写状态”

alter tablespace test1_tablespace
read write;

在这里插入图片描述

2、查看表空间的状态

select status 
from dba_tablespaces 
where tablespace_name = 'TEST1_TABLESPACE';

(1)查看联机或脱机状态
在这里插入图片描述
(2)查看只读或可读写状态
在这里插入图片描述


八、修改数据文件

1、增加数据文件

ALTER TABLESPACE tablespace_name
  ADD DATAFILE ‘xx.dbf’SIZE xx;

添加:

alter tablespace test1_tablespace
add datafile 'test2_file.dbf' size 10m;

查看:

select file_name from dba_data_files 
where tablespace_name ='TEST1_TABLESPACE';

在这里插入图片描述

2、删除数据文件

ALTER TABLESPACE tablespace_name
DROP DATAFILE ‘filename.dbf’

删除数据文件需注意,不能删除表空间创建时的第一个数据文件,如需删除,需要删除表空间

alter tablespace test1_tablespace
drop datafile 'test2_file.dbf';

在这里插入图片描述


九、删除表空间

DROP TABLESPACE
  tablespace_name [INCLUDING CONTENTS]

如果只是需要删除表空间,不需要删除数据文件不需要添加INCLUDING CONTENTS
如果需要删除表空间和数据文件需要添加INCLUDING CONTENTS

drop tablespace test1_tablespace including contents;

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/hyh17808770899/article/details/106502719