oracle——表空间

Carlos 2020-02-03

oracle表空间在逻辑上处于数据库之下。利用表空间可以更灵活的规划数据库结构。

一个数据库可以包含多个表空间,每一个表空间可以包含多个数据表。

表空间会有独立的物理文件,这使得用户可以自行决定表的空间的大小和位置等。

=====================================================================================


1、创建oracle表空间

在创建表空间时,应指定位置和大小

实例:

create tablespace test00001 datafile ‘C:\test_date.dbf‘ size 20M;

test00001为表空间的名字;

datafile ‘C:\test_date.dbf‘为指定表空间的物理文件;

size  20M为指定物理文件的初始大小;

select tablespace_name,file_name from dba_data_files order by file_name;  /*在数据字典中获取相关信息*/


——————————————————————————————————————————————

无论刚开始表空间有多大,将来都有数据了超出的风险。因此,在表空间创立的开始,还可以指定数据文件的自动扩展机制:

create tablespace test datafile ‘C:\test_date.dbf‘ size 20M autoextend on next 5M;

autoextend 指定当数据量超出物理文件的存储空间时,自动增加文件的大小;

on next 5M 则指定每次增长的尺寸为5M;

------------------------------------------------------------------------------------------
当然允许物理文件增长也是存在一定风险的,在创建的时候,可以设定表空间的最大大小:

create tablespace test datafile ‘C:\test_date.dbf‘ size 20M autoextend on next 5M maxsize 500M;

--------------------------------------------------------------------------------------------------------
表空间很重要的作用就是规划数据表。每个数据表都是某个表空间的子对象;数据表的真实数据,也存在于表空间的物理文件中。

每一个用户登录数据库时所作的建表动作,如果未显示指定将表创建于哪个表空间中,都会自动创建于该用户的默认表空间。

默认表空间相当于用户的工作空间。

获取数据库中,所有用户的默认表空间:

select user_id,username,default_tablespace from dba_users order by user_id;

---------------------------------------------------------------------------------
举例:将当前数据库的默认表空间修改为users


alter database default tablespace users; 


------------------------------------------------------------------------------------------

1、表空间的重新命名(重新取名):

alter tablespace 表空间名 rename to 新表空间名;

2、删除表空间(不能删除使用中的表空间)

删除这个表空间,并删除数据和文件

drop tablespace 表空间名 including contents and datafiles;

========================================================================================================================
oracle数据表

oracle表空间的下一层逻辑结构为数据表。创建和修改数据表都使用标准的SQL语句

相关推荐