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语句