Oracle 11g系列:数据表对象
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系列:数据表对象的更多相关文章
- 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 ...
随机推荐
- Python socket (单线程)
client, 客户端 code : 客户端主要方法, s.send(); s.sendall(); s.recv(); s.connect() class Client(object): def _ ...
- 高德地图API编译警告
版本: V2.1.1 警告内容: (null): warning: (i386) /Users/xiaominghan/Desktop/autonavi/MAMapKit_3D_r923_201310 ...
- 基于Moodle的IT课程辅助教育平台搭建
基于Moodle的IT课程辅助教育平台搭建 Moodle是一个开源课程管理系统(CMS),也被称为学习管理系统(LMS)或虚拟学习环境(VLE).它已成为深受世界各地教育工作者喜爱的一种为学生建立网上 ...
- Python学习之路--面向对象
1.面向对象概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向 ...
- 【转】windows消息和消息队列详解
转载出处:http://blog.csdn.net/bichenggui/article/details/4677494 windows消息和消息队列 与基于MS - DOS的应用程序不同,Wind ...
- Paypal支付接口
先吐槽一下,国外的创业环境真的远远好于国内的创业环境. vps便宜,网络质量好,没有各种政策监管,各种便捷的金融工具.这其中就包括paypal. Paypal 支持两种付款方式,信用卡+paypal注 ...
- ubuntu 14.04 下svn + apache2 配置
1.svn的配置 sudo apt-get install subversion // 安装svn mkdir /home/svn // 创建仓库 svnadmin create /home/svn/ ...
- poj1083
The famous ACM (Advanced Computer Maker) Company has rented a floor of a building whose shape is in ...
- python中re.findall()找到的结果替换
正则表达式re模块中用findall查找到的是ascii码,所以当比对替换时也需要对应的ascii码才能匹配成功.以下程序是查找文件夹下文件名中含有男.女的文件,并将男替换成1,将女替换成2的程序 # ...
- iOS图片加载框架-SDWebImage解读
在iOS的图片加载框架中,SDWebImage可谓是占据大半壁江山.它支持从网络中下载且缓存图片,并设置图片到对应的UIImageView控件或者UIButton控件.在项目中使用SDWebImage ...