资源描述
第七章 存储结构和它们之间的关系(2012-04-14)
一:存储结构包含:段,区,块
段:段是在数据库中占有磁盘空间的对象。
段的类型:
1. 表(正规表或者普通表)表是oracle中最重要的段。
2.分区表:(最重要)
当表的数据量比较大,并且操作比较频繁时,可以把一个表分成若干分区,以便进行管理和查询。
1)。分区表的创建方式:create table st
(
Sno varchar(20)primary key,
Sname varchar(20)not null,
Sage int,
Ssex varchar(3),
Sbrithday date,
Constraint pk check(ssex in(‘男’,‘女’))
)
删除分区表:drop table 表名(st);
创建分区表
create table st(
Sno varchar(20)primary key,
Sname varchar(20)not null,
Sage int,
Ssex varchar(3),
Sbrithday date,
Constraint pk check(ssex in(‘男’,‘女’))
)partition by range(sage)
(
Partition p1 values less than(20),
Partition p2 vlues less than(30),
Partition p3 values less than (40)
)
Insert into st values(&sno,&sname,&sage,
查分区:
Select * from st(表名)partition(p1);
修改分区:
删除分区:alter table st drop partion p3;
添加分区:
Alter table st add partition p3 values less than(35);
列表分区:
创建列表分区:
create table st1
Sno varchar(20)primary key,
Sname varchar(20)not null,
Sage int,
Ssex varchar(3),
Sbrithday date,
Constraint pk check(ssex in(‘男’,‘女’)))
partition by list(sage)
(
Partition p1 values in(‘aa’‘bb‘),
Partition p2 vlues in (‘cc’,’dd’),
Partition p3 values less than (’ff’,’ss’)
);
3索引:(2012-04-16)
Create index 索引名 on emp(字段名);
索引创建在字段上
4簇(cu)
讲不同的数据,存储到簇中,通过相同数据连接,这样可以提高数据库中的使用效率。
5索引分区
将一个大型表中的索引分成若干区,这样可以数据库的效率。
6索引表
表中字段有索引的,就是索引表。
7还原段
又称回滚段,rollback
将不确定要删除的数据,存放到回滚段中,这样可以进行回滚,但如果在数据时,用drop,truncate 来删除,是不能进入回滚段中的。只有通过delete 删除的数据才能进入回滚段中,可以进行回滚。
8大对象段
LOB:大对象段→存储一些大的数据(文档、声音、图像)→4GB大小
9嵌套表
表中的某个字段,和其他表进行关联,从而形成嵌套表。
1. 自然表:是由脚本来创建的,又称为高速缓存段
第二节 存储参数的优先级
Oracle 数据库系统默认的存储参数
表空间所定义的存储参数
段所定义的存储参数
区段:在表空间中由某个段所使用的一块空间,它是一组连续的数据块。引入区段的目的是为了提高数据库的效率。
区段的分配和回收?
分配:
1. 当一个段创建时
2. 当一个段扩展时
3. 当一个段改变时
回收:
1.当一个段删除时
2.当一个段减少时
3.当一个段被截断时
数据块:数据块是oracle存储单元中最小的单位,在oracle中数据块的初始大小都是固定的是4096k——>DB_BLOCK_SIZE 设置大小,数据块大小不需要手动设置,它是自动分配的。如果强制手动设置会出现服务器错误。
数据块的具体内容:
数据头
数据区
空闲区
数据块存储数据的原理:
数据存储到数据块时,从底层开始存储,向空闲区移动,通过数据头寻找数据块。
数据块的参数:1.Intrans:定义事物槽的初始值,可以保证在数据块中,并行8个事物。
2.Maxtrans:事物槽的最大值,默认最大值为255
3.Pctfree:空闲大小的比例
4.Pctused:占用大小。
创建表空间,自动增长段的大小:
Create tablespace st
Datafile ‘路径’size 10m
Extent management local
Uniform size 1m
Segment soaccemanagement auto;
第八章 管理还原数据
一:还原数据的管理方法:
Update 表名 set 字段=值 where 条件
Commit
还原段的作用:在对表进行操作是,为了能保证数据的安全性,将原来的数据还原到和还原段中,以便数据出现错误时,便于回滚。
还原数据的两种方法:
1自动的还原数据管理
2. 手动的还原数据管理:
3. 制图:p177
二Oracle使用还原段的目的:
1. 事物回滚:
2. 事物恢复;
3. 保证数据的读一致性:
三:还原段的类型:
create table student
(
Sno varchar(20)primary key,
Sname varchar(20)not null,
Sage int,
Ssex varchar(3),
Constraint pk check(ssex in(‘男’,‘女’)));
2create table st1
Kcbh varchar(20)primary key,
Kcmc varchar(20)not null,
Xf varchar(3),
3 create table chengjibiao
Xueshengbianhao no varchar(20)primary key,
Kechengbianhao varchar(20)not null,
创建学生表:
create table st
(
Sno varchar(20) primary key,
Sname varchar(20) not null,
Sage int,
Ssex varchar(3),
Constraint Pk check(Ssex in ('男','女'))
);
表已创建。
2。创建课程表:
create table kc
2 (
3 kcno varchar(20) primary key,
4 kcname varchar(20) not null,
5 kcxf varchar (20)
6 );
表已创建。
3.创建成绩表:
create table cj
(
xsno varchar(20) primary key,
kcno varchar(20) not null
);
表已创建。
三:还原数据的管理方式——>自动管理
自动管理配置的参数:
1. Undo_management
2. Undo_tablespace
Undo_management=auto;
Undo_tablespace=undotbs;
通过系统命令来修改当前设置自动管理的表空间
Alter system set undo_tablespace=undotbs;
怎么查询当前撤消表空间是否自动的
动态性能视图:v$parameter
3. 创建还原表空间的方式:
Create undo tablespace t1
Datafile‘lujing\t1.dbf’ size 5 m;
语句:select name,value from v$parameter where name like ‘%undo%’;
注意:oracle 系统内部,当前只有一个还原表空间被使用,如果想利用其他的还原表空间需要切换。
Alter system set undo_tablespace=T1;
删除还原表空间:
注意:删除还原表空间时,当前使用的是无法删除的。如果想删除当前还原表空间,需要切换才可以
Drop tablespace 表空间的名称
4. 自动还原数据管理的一些参数:
Undo_suppes_error:解决版本不同而出现的错误。
Alter session set undo_suppress_errors=true;
Undo_retention:还原表空间存储数据的时间上限。单位为秒。
具体设置方式:alter system set undo_retention=1800
5获得还原数据的信息:
通过v$undoStat;
Begin_time:标识时间间隔的开始
End_time:标识时间间隔的结束
Undoblks:占有的数据块总数
Txtncount:时间段中事物的总数
Maxquerylen:时间内最长的查询
具体语句:
Select to_char(begin_time,’HH:MM:SS’)begintime,
To_char(end_time,’HH:MM:SS’)endtime,
Undoblks,txncount,maxquerylen from v$undostsat;
2012-04-23 第十章 管理表
第一节 存储数据的方法和oracle内置数据类型:
表
创建学生表:
create table st
(
Sno varchar(10) primary key,
Sname varchar(20) not null,
Sage int defualt(),
Ssex varchar(3),
Constraint Pk check(Ssex in ('男','女'))
);
2。创建课程表:
create table kc
(
kcno varchar(10) primary key,
kcname varchar(20) not null,
kcxf int
);
表已创建。
3.创建成绩表:
create table cj
(
sno varchar(10) conferences student(student(sno) on delete cascade(级联删除)
primary key,
cno varchar(10) primary key not null
cj number(3,1)
);
...............................................
Varchar2()和varchar(),char()问什么有三种不同的表示方法?
Varchar2()只能应用于oracle
Varchar()可以用于oracle和sql里
Char可应用于oracle sql
常见的删除:
Drop delete truncate
Drop:删除表
Delete:彻底删除
Truncate:截断表,与drop彻底删除,truncate至少保留表的结构,delete删除数据,可以回滚,truncate删除数据后不能回滚。
4. Lob数据类型:
Large object binary
Clob:Clob和nclob:定长的文本类型
Blob:存储二进制数据(声音,视频,mp3,照片都是二进制)
Bfile:比较大的无结构的二进制数据
Raw:直接存储二进制数据,但是存储空间小,而效率高。
Long
Long raw:都是用来存储无结构的二进制数据,例如:地理信息,二进制图像。
5. oracle提供集合类型:
1. 数组
2. 嵌套表:看数据库黄皮书197页
6.数据库中的表最后存储在表空间里。
系统表空间里:
创建表指定表空间
Create tablespaces 表空间名
Datafile‘d:\data01.dbf’size 10m;
创建一个表:
Create table st11 (字段名 类型)
Tablespace TS;
关联:
分区表:列表分区和范围分区:
Create table st12(
)partition by range(字段)
(
Partition p1 value less than(30),(注意:逗号)
列表分区:Create table st12(
)partition by list(年龄)
(
Partition p1 values(30,50),
)
6. Oracle提供关系数据类型(了解即可)
第二节 ROWID
Rowid:行编号
自动编号:
Sql里:编号:int identity(1,1)
Access:自动编号:
Oracle:rowid 来表示自动编号,在oracle每一行数据都有唯一rowid。Oracle是用rowid来定位行的,
Rowid就是一个标量类型,就是一个系统类型:
Rowid的特性:
1.唯一 2.不显示 3.定位行的,并且直接给出物理地址 4. 次数据类型访问行时速度最快。
注意:所有的表中都有此字段,——>rowid
ROWID:由18个英文字符构成,占10Byte
查询rowid的方法语句:
展开阅读全文