【数据库】Oracle表空间和Oracle数据表
2016-03-10 21:28
357 查看
----------------------------------------------------------表空间------------------------------
oracle表空间在逻辑结构上处于数据库之下,利用表空间可以更灵活的规划数据库结构。一个数据库可以包含多个表空间,每个表空间可以包含多个数据表。表空间会有独立的屋里文件,这使得用户可以自行决定表空间的大小、位置等。
例子:在数据库中,创建表空间的命令如下:
SQL>create tablespace test datafile 'E:\Database\data\test_data.dbf' size 20M;
其中,test为表空间名称,datafile E:\Database\data\test_data.dbf' 指定表空间的物理文件,size 20M指定物理文件的初始大小。
在成功创建表空间之后,可以在数据字典中获得其相关信息。
SQL> select tablespace_name, file_name from dba_data_files order by file_name;
视图dba_data_files 可以用于查看当前数据库中表空间及其物理文件的完整路径。同样,可以在操作系统中查看物理文件的详细信息。
从文件的详细信息可以看出其大小为20M,正是文件创建时的大小。尽管此时表空间并未存储实际数据,oracle都会预留系统空间,以备将来存储数据。
无论为表空间预留多大的空间,将来都有数据量超出的风险。因此,在创建表空间时,还可以指定数据文件自动扩展机制。如下:
create tablespace test datafile 'E:\Database\data\test_data.dbf' size 20M autoextend on next 5M;
autoextend指定党数据量超出物理文件的存储空间时,自动增加文件大小,而on next 5M则指定每次增长的尺寸为5M。
当然,允许物理文件无限制的增长是存在一定的风险的,一次你,可以设定表空间的最大大小。
create tablespace test datafile 'E:\Database\data\test_data.dbf' size 20M autoextend on next 5M maxsize 500M;
设定表空间最大为500M。
每个用户登录数据库时所作的建表动作,如果未显示指定将表创建于哪个表空间中,都会自动创建于该用户的默认表空间。默认表空间相当于用户的工作空间。
下面,演示如果获得数据库中所有用户的默认表空间。
从上图可看出,系统用户sys及system,其默认表空间为表空间SYSTEM,而普通用户的默认表空间为USERS.
普通用户的默认表空间有两种来源,一是创建用户时分配或后期手动修改;二是从未进行分配或者修改动作,那么则使用数据库的默认表空间。
oracle 10g数据库默认表空间为USERS,因此,未指定默认表空间而创建的用户,都将使用表空间USERS。
下面,演示修改数据库的默认表空间,从而联动普通用户的默认表空间做出更改。
SQL>alter database default tablespace test;
Database altered.
alter database default tablespace test 用于将数据库的默认表空间修改为test。在成功修改后,当前数据库的用户及默认表空间都会修改。
oracle 10g、11g都提供了直接重命名表空间的选项--rename。
SQL>alter tablespace test rename to test_data;
Tablespace altered
解释:alter tablespace test用于修改表空间test的属性,rename to test_data则用于将表空间名称修改为test_data.
当一个表空间不再需要时,可以利用drop命令进行删除,但是,此时的表空间必须不再被其他用户引用。
----------------------------------------------------------数据表------------------------------
一、创建Oracle数据表
二、数据表的相关操作
三、删除数据表
oracle表空间在逻辑结构上处于数据库之下,利用表空间可以更灵活的规划数据库结构。一个数据库可以包含多个表空间,每个表空间可以包含多个数据表。表空间会有独立的屋里文件,这使得用户可以自行决定表空间的大小、位置等。
一、创建Oracle表空间
创建表空间应该使用create tablespace命令,在制定表空间的同时,应当指定表空间物理文件的存储位置,并同时指定数据文件的初始大小。例子:在数据库中,创建表空间的命令如下:
SQL>create tablespace test datafile 'E:\Database\data\test_data.dbf' size 20M;
其中,test为表空间名称,datafile E:\Database\data\test_data.dbf' 指定表空间的物理文件,size 20M指定物理文件的初始大小。
在成功创建表空间之后,可以在数据字典中获得其相关信息。
SQL> select tablespace_name, file_name from dba_data_files order by file_name;
视图dba_data_files 可以用于查看当前数据库中表空间及其物理文件的完整路径。同样,可以在操作系统中查看物理文件的详细信息。
从文件的详细信息可以看出其大小为20M,正是文件创建时的大小。尽管此时表空间并未存储实际数据,oracle都会预留系统空间,以备将来存储数据。
无论为表空间预留多大的空间,将来都有数据量超出的风险。因此,在创建表空间时,还可以指定数据文件自动扩展机制。如下:
create tablespace test datafile 'E:\Database\data\test_data.dbf' size 20M autoextend on next 5M;
autoextend指定党数据量超出物理文件的存储空间时,自动增加文件大小,而on next 5M则指定每次增长的尺寸为5M。
当然,允许物理文件无限制的增长是存在一定的风险的,一次你,可以设定表空间的最大大小。
create tablespace test datafile 'E:\Database\data\test_data.dbf' size 20M autoextend on next 5M maxsize 500M;
设定表空间最大为500M。
二、表空间的使用
表空间很重要的一个作用就是规划数据表。也就是说,每个数据表都是某个表空间的子对象。数据表的真实数据也是存在于表空间的物理文件中,因此,了解表空间的使用规则,对于明确oracle数据库结构很有意义。每个用户登录数据库时所作的建表动作,如果未显示指定将表创建于哪个表空间中,都会自动创建于该用户的默认表空间。默认表空间相当于用户的工作空间。
下面,演示如果获得数据库中所有用户的默认表空间。
从上图可看出,系统用户sys及system,其默认表空间为表空间SYSTEM,而普通用户的默认表空间为USERS.
普通用户的默认表空间有两种来源,一是创建用户时分配或后期手动修改;二是从未进行分配或者修改动作,那么则使用数据库的默认表空间。
oracle 10g数据库默认表空间为USERS,因此,未指定默认表空间而创建的用户,都将使用表空间USERS。
下面,演示修改数据库的默认表空间,从而联动普通用户的默认表空间做出更改。
SQL>alter database default tablespace test;
Database altered.
alter database default tablespace test 用于将数据库的默认表空间修改为test。在成功修改后,当前数据库的用户及默认表空间都会修改。
三、表空间的重命名及删除
平时如果觉得表空间的名称,不符合本意,将表空间删除,然后重建,在操作上比较繁琐。有没有好的法子呢?oracle 10g、11g都提供了直接重命名表空间的选项--rename。
SQL>alter tablespace test rename to test_data;
Tablespace altered
解释:alter tablespace test用于修改表空间test的属性,rename to test_data则用于将表空间名称修改为test_data.
当一个表空间不再需要时,可以利用drop命令进行删除,但是,此时的表空间必须不再被其他用户引用。
----------------------------------------------------------数据表------------------------------
一、创建Oracle数据表
二、数据表的相关操作
三、删除数据表
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- 数据库链接字符串查询网站
- Oracle Containers for J2EE远程安全漏洞(CVE-2014-0413)
- Oracle 10g R2不能使用EM的问题
- 表空间操作
- PreparedStatement中in子句的处理
- VMware下RedHat4.8_64位安装Oracle 10g RAC--简略脚本
- oracle sql日期比较
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- DB2实例管理
- DB2实例管理
- OS block size和Oracle block size,查找OS Blocksize的方法
- 保障MySQL数据安全的14个最佳方法
- mysql问答汇集
- oracle中创建数据库和表空间的几点总结
- 数据库自动备份脚本
- 第三章 数据库备份和还原