Oracle数据库的下一层逻辑结构并非数据表,而是表空间。每个数据表都属于唯一的表空间。

  1、Oracle表空间

  与数据表相同,Oracle表空间是一个逻辑对象,而非物理对象,是数据库的组成部分。当使用SQL语句对数据库进行操作时,操作的都是逻辑对象,而非直接操作物理文件。一个数据库可以有多个表空间,一个表空间可以有多个数据表。

  Oracle表空间的Oracle数据库高性能的保证,对于访问频繁的数据表,可以将其放入单独的表空间中,并存储与高性能磁盘;将其他访问较少的数据表规划于单独的表空间,并存储与性能相对较低的磁盘,以实现合理利用服务器资源,最大限度提供数据库性能。另外一种应用场景为将更新频繁的数据表规划于单独的表空间,而很少更新的数据表规划于其他的表空间,在备份数据库时,可以针对不同表空间指定不同的备份周期,在最大程度减小备份数据库占用的系统资源。

  不同的表空间对应着不同的物理文件,当某个表空间物理文件损坏时,不会影响其他表空间的正常使用,提高了数据库的安全性。另外可以将数据库实际数据与日志规划为不同的表空间,并存储与不同的磁盘。即使数据库所在磁盘出现问题,还可以利用另一磁盘的日志文件恢复数据库,从而降低了数据丢失的风险。

  1.1、创建Oracle表空间

  Oracle表空间是一个逻辑概念,创建时需要指定物理文件,即为实际数据分配磁盘空间。表空间的物理文件为数据文件(datafile),同时指定数据文件初始大小。

  1>、创建基本表空间

CREATE TABLESPACE MEMBER DATAFILE 'F:\DATABASE\ORADATA\MEMBER_DATA.DBF' SIZE 20M

  数据文件的初始大小是必须参数,其完整鹭江必须包含在单引号中。

  2>、指定数据文件的可扩展性

  当存储在某个数据文件中的数据量超过了其初始大小时,数据文件可以进行自动扩展,使用autoextend选项。

CREATE TABLESPACE MEMBER DATAFILE 'F:\DATABASE\ORADATA\MEMBER_DATA.DBF' SIZE 20M
AUTOEXTEND ON

  autoextend选项值为“on”,表空间的数据文件可以自动扩展。若设置为“off”,则关闭自动扩展功能。

  3>、指定数据文件的增长幅度

  数据文件自动增长时,每次默认增长64K。当某个表空间数据更新很快,数据量的增长很快时,就会频繁地要求增加数据文件的大小。此时需要为每次的增长幅度设定一个合理的值,避免频繁执行增加数据文件大小的动作,影响数据库性能。

  设定自动增长幅度使用next选项。

CREATE TABLESPACE MEMBER DATAFILE 'F:\DATABASE\ORADATA\MEMBER_DATA.DBF' SIZE 20M
AUTOEXTEND ON NEXT 5M

  4>、指定数据文件的最大尺寸

  数据文件可以自动增长,但是无限制的增长往往带来风险。除非特殊需要,应为每个表空间的数据文件设定最大尺寸。

  为数据文件设定最大尺寸使用maxsize选项。

CREATE TABLESPACE MEMBER DATAFILE 'F:\DATABASE\ORADATA\MEMBER_DATA.DBF' SIZE 20M
AUTOEXTEND ON NEXT 5M MAXSIZE 500M

  如果不限制数据文件的最大尺寸,使用unlimited来代替实际值。

CREATE TABLESPACE MEMBER DATAFILE 'F:\DATABASE\ORADATA\MEMBER_DATA.DBF' SIZE 20M
AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED

  5>、查看表空间是否创建成功

  表空间成功创建之后,会在数据库系统表中添加相应的记录,并且创建相应的物理文件。可以通过查询视图dba_data_files中的记录和实际数据文件存在性,来判断表空间是否创建成功。

  查看表空间信息的SQL语句:

select file_name,tablespace_name from dba_data_files order by file_name

  6>、为一个表空间创建多个数据文件

  一个表空间可以有多个数据文件,为一个表空间创建多个数据文件需要指定多个数据文件的完整路径和详细的选项参数。各数据文件参数之间使用逗号(“,”)分隔。

CREATE TABLESPACE MEMBER DATAFILE 'F:\DATABASE\ORADATA\MEMBER_DATA_01.DBF' SIZE 20M,'F:\DATABASE\ORADATA\MEMBER_DATA_02.DBF' SIZE 10M

  1.2、查看表空间

  可以通过查询视图dba_tablespaces和视图dba_data_files来获得数据库的表空间信息。dba_tablespaces可以用来查看所有表空间的基本信息,dba_data_files可以用来查看相关数据文件的信息。

select tablespace_name,status,allocation_type from dba_tablespaces

  1.3、修改数据库默认表空间

  默认表空间是相对用户来说的,每个用户登录Oracle时,都有一个默认的工作空间。当进行与表空间相关操作时,如果为显示指定表空间,则该操作将作用于用户的默认表空间。

  查询每个用户的默认表空间:

select user_id,username,default_tablespace from dba_users

  修改数据库默认表空间的SQL语句:

alter database default tablespace MEMBER

  1.4、修改表空间名称

  修改表空间名称使用rename to命令,不能对数据的系统表空间进行重命名。

ALTER TABLESPACE MEMBER01 RENAME TO MEMBER02

  1.5、删除表空间

  如果某个表空间没有存在的必要,可以执行删除表空间命令,以释放磁盘空间。删除表空间的命令为drop tablespace。删除表空间有两种方式,一是仅仅删除其在数据库中的记录,另一种是将记录和数据文件一起删除。

  1>、仅删除其在数据库中记录的SQL语句

DROP TABLESPACE MEMBER01

  2>、删除表空间及其数据文件的SQL语句

  including contents and datafiles表明当删除该表空间时,应将数据文件一并删除。

DROP TABLESPACE MEMBER01 INCLUDING CONTENTS AND DATAFILES

  2、创建Oracle数据表

  利用SQL语句查看数据表所属的表空间:

select table_name,tablespace_name from user_tables
DESCRIBE T_USER

  3、修改Oracle数据表结构

  1>、使用rename选项修改列名

ALTER TABLE T_USER RENAME COLUMN USER_EMAIL TO EMAIL

  2>、使用modify选项修改列的属性

ALTER TALBE T_USER MODIFY (USER_NAME VARCHAR2(15))

  一次修改多个属性

ALTER TALBE T_USER MODIFY (USER_NAME VARCHAR2(15), EMAIL VARCHAR2(30))

  3>、添加列

ALTER TABLE T_USER ADD (REMARK VARCHAR2(50))

  4>、删除列

ALTER TABLE T_USER DROP COLUMN REMARK

  5>、修改表名

ALTER TABLE T_USER RENAME TO T_USERS

  4、删除数据表

DROP TABLE T_USERS
DROP TABLE T_USERS CASCADE CONSTRAINS
  有时某些数据表的列被其他表引用,如外键引用时,直接使用DROP TABLE将无法删除该表,此时需要使用CASCADE CONSTRAINS选项,CASCADE CONSTRAINS表示删除表时,将一起作用于约束。

Oracle 11g系列:数据表对象的更多相关文章

  1. ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法

    ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法 语法 第一种: 通过使用Oracle语句块  --指定文档所有部门都能查看 declare cursor TABLE_DEPT and ...

  2. 吴裕雄--天生自然ORACLE数据库学习笔记:数据表对象

    create table students( stuno ) not null, --学号 stuname ), --姓名 sex ), --性别 age int, --年龄 departno ) n ...

  3. oracle 11G 导出空表失败的解决方法

    一.问题原因:     11G中有个新特性,当表无数据时,不分配segment,以节省空间     1.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除 ...

  4. Oracle 11g 学习3——表空间操作

    一.表空间概述 表空间是Oracle中最大的逻辑存储结构,与操作系统中的数据文件相相应: 基本表空间:一般指用户使用的永久性表空间,用于存储用户的永久性数据          暂时表空间: 主要用于存 ...

  5. Oracle 11g导出空表、少表的解决办法

    ORACLE 11G中有个新特性,当表无数据时,不分配segment,以节省空间. 解决方法: 1)insert一行,再rollback就产生segment了 该方法是在在空表中插入数据,再删除,则产 ...

  6. Oracle 11g系列:视图

    视图是数据库中特有的对象,视图用于存储查询,但不会存储数据(物化视图除外).这是视图和数据表的重要区别.Oracle中有4种视图:关系视图.内嵌视图.对象视图和物化视图. 1.关系视图 1>.创 ...

  7. ORACLE 11g 导出数据

    ORACLE 11g 导出 表的时候 不会导出空表 导出空表操作步骤 :(使用PLSQL) 1.打开SQL window 执行下面的 SQL Select 'alter table '||table_ ...

  8. 解决oracle 11g 导出空表的方法

    ORACLE 11G中有个新特性,当表无数据时,不分配segment,以节省空间. 解决方法: 1)insert一行,再rollback就产生segment了 该方法是在在空表中插入数据,再删除,则产 ...

  9. oracle 11g dbf数据文件从C盘迁移到D盘

    服务器系统为 windows 2008 R2 64位,由于C盘空间将满,要将C盘的oracle的DBF数据文件迁移到D盘下,步骤如下: 1.输入cmd,启动 cmd.exe窗口 2.输入 sqlplu ...

随机推荐

  1. week7 read

    对于银弹: 在<No Silver Bullet>这篇IBM大型电脑之父佛瑞德·布鲁克斯(Fred Brooks)在1987年所发表的一篇关于软体工程的经典论文中,强调了由于软件的复杂性本 ...

  2. 每天记一些php函数,jQuery函数和linux命令(三)

    简介:学习完了php和jQuery之后,对函数的记忆不到位,导致很多函数没记住,所以为了促进自己的记忆,每天花一点时间来写这个博客. 时间:2016-12-21   地点:太原    天气:雨夹雪 一 ...

  3. Android服务开机自启动

    新任务需要Android程序开机跑一个服务,查找资料得出如下方法: 用广播的方法监听系统启动事件:android.intent.action.BOOT_COMPLETED 并在AndroidManif ...

  4. 人脸识别经典算法三:Fisherface(LDA)

    Fisherface是由Ronald Fisher发明的,想必这就是Fisherface名字由来.Fisherface所基于的LDA(Linear Discriminant Analysis,线性判别 ...

  5. 安利eclipse插件之log4E

    敲完代码之后,据说要加注释.加log:OTL~~~~~~~~,在我仰天长叹之际,师父发给我了一个插件压缩包,解压-->拷贝-->重启-->了事.安装方法已经如此之便捷,简直是我辈懒癌 ...

  6. Go+sublime text3的环境搭建

    1.安装Go语言. .msi下载地址:http://download.csdn.net/detail/u014075041/9555543 根据提示安装成功! 在命令行中执行 go env   有提示 ...

  7. Android--SQLite的使用

    1.熟悉了SQLite的一般用法之后,在实际开发中,为了能够更好的管理和维护数据库,我们会封装一个继承自SQLiteOpenHelper类的数据库操作类,然后以这个类为基础,再封装我们的业务逻辑方法. ...

  8. (转)JQuery上传插件Uploadify使用详解

    原文地址:http://www.cnblogs.com/oec2003/archive/2010/01/06/1640027.html Uploadify是JQuery的一个上传插件,实现的效果非常不 ...

  9. iOS 资源大全

    这是个精心编排的列表,它包含了优秀的 iOS 框架.库.教程.XCode 插件.组件等等. 这个列表分为以下几个部分:框架( Frameworks ).组件( Components ).测试( Tes ...

  10. myrocks 之数据字典

    data dictionary rocksdb作为mysql的一个新的存储引擎,在存储引擎层,会维护自已的元数据信息.在innodb存储引擎中,我们通过information_schema下的INNO ...