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 查询一个数据表后通过遍历再插入另一个表中的两种写法
ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法 语法 第一种: 通过使用Oracle语句块 --指定文档所有部门都能查看 declare cursor TABLE_DEPT and ...
吴裕雄--天生自然ORACLE数据库学习笔记:数据表对象
create table students( stuno ) not null, --学号 stuname ), --姓名 sex ), --性别 age int, --年龄 departno ) n ...
oracle 11G 导出空表失败的解决方法
一.问题原因: 11G中有个新特性,当表无数据时,不分配segment,以节省空间 1.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除 ...
Oracle 11g 学习3——表空间操作
一.表空间概述 表空间是Oracle中最大的逻辑存储结构,与操作系统中的数据文件相相应: 基本表空间:一般指用户使用的永久性表空间,用于存储用户的永久性数据 暂时表空间: 主要用于存 ...
Oracle 11g导出空表、少表的解决办法
ORACLE 11G中有个新特性,当表无数据时,不分配segment,以节省空间. 解决方法: 1)insert一行,再rollback就产生segment了 该方法是在在空表中插入数据,再删除,则产 ...
Oracle 11g系列:视图
视图是数据库中特有的对象,视图用于存储查询,但不会存储数据(物化视图除外).这是视图和数据表的重要区别.Oracle中有4种视图:关系视图.内嵌视图.对象视图和物化视图. 1.关系视图 1>.创 ...
ORACLE 11g 导出数据
ORACLE 11g 导出 表的时候 不会导出空表 导出空表操作步骤 :(使用PLSQL) 1.打开SQL window 执行下面的 SQL Select 'alter table '||table_ ...
解决oracle 11g 导出空表的方法
ORACLE 11G中有个新特性,当表无数据时,不分配segment,以节省空间. 解决方法: 1)insert一行,再rollback就产生segment了 该方法是在在空表中插入数据,再删除,则产 ...
oracle 11g dbf数据文件从C盘迁移到D盘
服务器系统为 windows 2008 R2 64位,由于C盘空间将满,要将C盘的oracle的DBF数据文件迁移到D盘下,步骤如下: 1.输入cmd,启动 cmd.exe窗口 2.输入 sqlplu ...
随机推荐
vim 把满足条件的数字进行加上一些数字
1,1,1,n4s-1 1,3,4,n3s= 1,4,6,e4h= 1,5,8,e4h-1 1,6,2,e3ntx-2 1,7,5,n1s+2 1,8,7,n3s= 比如以上的数据格式以“,”为列 ...
怎样对ListView的项进行排序
当您使用资源浏览器查看文件时,您能够随心所欲的按名称.大小.类型及改动日期不同的列对文件进行大小排序..Net提供的ListView组件没有直接提供这样的功能,但要实现并不难. ListView. ...
String.prototype.trim
/*内置对象添加方法:String.prototype.trim(给String添加一个trim方法) *^这个是以什么什么开头 *$这个是以什么什么结尾 *'/s是String /d是数字' *re ...
网络学习笔记(一):TCP连接的建立与关闭
五层网络模型分为:物理层.数据链路层.网络层.传输层.应用层.其中,传输层有两种主要协议:面向连接的TCP(Transmission Control Protocol 传输控制协议).无连接的UD ...
Java学习笔记 -- Java定时调度工具Timer类
1 关于 (时间宝贵的小姐姐请跳过) 本教程是基于Java定时任务调度工具详解之Timer篇的学习笔记. 什么是定时任务调度 基于给定的时间点,给定的时间间隔或者给定的执行次数自动执行的任务. 在Ja ...
hzy 和zsl 的生存挑战
Problem Description zsl 和hzy 来到了臭臭城堡,打算挑战臭臭城堡的大魔王hyz,大魔王hyz设置了这样的一个挑战:1. zsl 和hzy两个人各自来到一间密室,期间两人无法以 ...
DWZ(JUI) 教程 跨域请求 iframeNavTab
如果想navTab访问其他的网址,可以使用 iframe navTab 使用时也非常简单