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];