oracle空间管理

 表空间:组织数据文件的一种途径,  是一个逻辑概念  包含有 表,字段,索引   

           一个数据库可以对应多个表空间  

           一个物理文件对应一个表空间

任何一个数据库创建的第一一个表空间是 system Tablesapce,任何一个数据文件将自动分配给system Tablespace

--创建表空间
create tablespace myspace
  datafile 'D:\Oracle\database\myspace01.dbf' size 10M;
  --添加 修改
alter tablespace myspace
 add  datafile 'D:\Oracle\database\myspace02.dbf' size 10M;
--创建临时表空间
create temporary tablespace Temp
   Tempefile 'D:\Oracle\database\myspace.dbf' size 1m;
--删除 只删除在控制文件中的指针 并没有删除文件,必须手动删除物理文件   
drop tablespace myspace including contents;

表空间一旦被删除,该表空间上的所有数据将不能回复.  

查询表空间 与数据字典

  dba_data_files   实例中所有数据文件和表空间的信息

  dba_tablespaces 表空间的信息

  dba_free_space  表空间的空闲空间信息

oracle数据类型

    数字数据类型: number 整数或实数 number[p,s] p是精度(最大38位 ),s刻度范围

    字符数据类型:  char :定长字符,空格填位 char(L) 缺省为1 最大32767个字符,作为数据储存在oracle中最大为2000  nchar(L)

                        varchar2 :变长字符 varchar2(L)没有缺省值,最大32767字符, 作为数据储存在oracle中最大为4000  nvarchar(L)

                        long:变量 高达2G 可以表示一个最大长度为32760字节的可以变为字符串

    data数据类型:储存日期和时间格式的数据

    lob:数据类型储存非结构化数据,比如二进制,图形文件.或其他外部文件 4G大小

          CLOB:字符数据

          BLOB:二进制数据

          BFILE:二进制文件

索引:

   是一种树状结构 从逻辑上分:单列索引,组合索引,唯一索引,非唯一索引,基于函数的索引等;从物理角度:分区索引,非分区索引,B索引,正向索引,反向索引,位图索引等

  create [unique] index 索引名

   on 表名(列名1,列名2,,,)

    where 条件

  创建唯一索引的条件:不能为空值,不能出现重复行

eg:

--创建
create unique index E_id on empry(id);
--修改 重建
alter index E_id rebuild;
-- 合并
alter index E_id coalesce;
--删除
drop index E_id;

视图:查询一个或多个表的select 语句的描述 一张虚拟的表 不占用空间储存数据

         create [or replace] view 视图名

             as [query]

                 [select 语句....]

           or replace 如果有则覆盖,可修改        

--视图
create or replace  view view_ey
as 
 select * from empry  
 
 select * from  view_ey ;
--删除
drop view view_ey;

同义词:

  数据库方案对象的一个别名,经常用于简化对象访问和提高对象访问的安全性,不占用实际储存空间

  类型:私有同义词 (只能当前模式的用户访问)

          公有同义词(所有的数据库用户访问)

create [or replace] [public] synonym 同义词名

  for 创建同义词的对象

    public 是否公开

--同义词
 create synonym Semp for scott.emp;
--查询
 select * from Semp;
--删除
drop synonym Sempre;

序列:

     数据库对象,可以生成唯一的整数 ,可以生成多个,每一个序列号是唯一的 

    create sequence 序列名

       [increment by n]序列号之间的间隔 可正可负 但不能为0 升序 忽略该值,默认为1

       [start with n] 开始值

       [maxvalue n| nomaxvalue] 最大

       [minvalue n | nominvalue]; 最小

   currval:返回当前序列的值

   nextval: 返回序列的下一个值,调用时都是用它

 --序列
 create sequence my_ey
 start  with 49
 increment by 10
 maxvalue 200 
--删除
 drop sequence my_ey
 --测试
 insert into empry values(my_ey.nextval,'张三')
 select * from empry  
--修改
alter sequence my_ey

       [increment by n]

       [maxvalue n| nomaxvalue] 

       [minvalue n | nominvalue]; 

  

 

 

                      

     

posted @ 2013-12-26 00:50  狐狸不会飞  阅读(718)  评论(0编辑  收藏  举报