Oracle 空间管理

时间:2021-12-09 14:16:42

表空间:组数据文件的一种途径

  分类:

    目录表空间(sysaux)

    常表空间(system)

    系统临时表空间(temp)

    用户临时表空间(user)

    undo表空间

  创建表空间:

//表空间名为name,大小为50M
create tablespace name datafile '物理路径' size 50M

  修改表空间:
  

//增加1 0M
alter tablespace name add datafile 'filename' size 10M //设置表空间为默认表空间
alter database default tablespace name;

  删除表空间:表空间删除后数据不可恢复

drop tablespace name including contents;

  表空间和数据文件有关的数据字典

    dba_data_files:实例中所有数据文件盒表空间信息

    dba_tablespaces:表空间信息

    dba_free_space:表空间空闲信息

SQL语言基础:

  oracle数据类型:

    数字类型(number):number(p,s)==》》p:精度,s:刻度范围

    字符类型:  

      char(L)/nchar(L):定长的字符串  实际值不够定义的长度,以空格自动补齐

      varchar2(L)/nvarchar2(L):变长的字符串  无缺省值 ==》》L表示长度

      long:保存高达2G的数据  表示最大长度(32760个字节)

      lob:存储非结构化的数据  可存储4G字节大小(clob:字符型数据  blob:二进制数据  bfile:二进制文件)

  ddl(数据定义语言):创建,修改,截断,删除表等

  dml(数据操作语言):增删查改操作语句

  dcl(数据控制语言):授权(grant)撤销(revoke)等

索引:类似书本目录,是树状结构

  分类:

    逻辑设计:单列、组合、唯一、非唯一、函数索引等

    物理实现:分区、非分区、B树、正向、反向、位图索引等

  创建索引:

//唯一索引
create unique index name on student(stuName,stuNo) ;
//位图索引
create bitmap index name on student(stuName)
//单列索引(普通索引)
create index name on student(stuNo);

  

  修改索引:

--重建
alter index name rebuild;
--合并
alter index name coalesce;

  

  删除索引:

drop index name;

  

视图:查询一个或多个表的select语句的描述

  创建视图:

create [ or replace] view view_name[stuno,stuname,stusex] as select * from student;

  删除视图:

drop view view_name;

同义词:数据库方案对象的别名   用于简化对象访问以及提高对象访问安全性(消除模式带给用户的困扰)

  分类:私有同义词(默认)、共有同义词

  创建:

--语法
create or replace [public] synonym synonym_name for objec_name; --创建私有同义词
create or replace synonym emp for scott.emp; --创建公有同义词
create or replace public synonym emp for scott.emp; --调用
--未定义同义词前
select * from scott.emp;
--定义同义词之后
select * from emp;

  删除:

drop [public] synonym synonym_name;

序列:数据库对象,可生成唯一的整数 允许同时生成多个序列号 每个序列号唯一

  创建:

create sequence sequence_name
increament by n --增量
start with n --标志种子
maxvalue n --最大值(nomaxvalue(无最大值))
minvalue n --最小值(nominvalue(无最小值))
cache n --缓存
cycle --循环

  使用:

    currentval:序列当前值

    nextval:序列的下一个值

select name.currentval from dual;

   更改:

alter sequence seq_name
increment by n,
maxvalue n
minvalue n; --实例
alter sequence seq_name maxvalue 90000 cycle;

  删除:

drop sequence seq_name;