1.表空间管理:永久、临时、撤销三种类型
①准则
使用多个表空间:不同空间/分区存不同数据,防磁盘损坏相互影响,提高I/O;将不同的用户数据从数据字典中分离,减少数据文件的数据字典对象和模式对象竞争
指定表空间的存储参数
为表空间指定限额:防资源浪费
②可进行的操作
新建表空间,调整数据文件大小,添加数据文件到表空间;
设置和修改缺省的数据段存储设置;
使表空间变为只读或读写状态;
设置表空间为临时或永久;
删除表空间。
③语法格式
CREATE TABLESPACE tablespace_name
DATEFILE 'path/filename' [SIZE integer [K|M]][REUSE]
[AUTOEXTEND[OFF|ON [NEXT integer[K|M]] /*OFF/ON禁止或允许自动扩展数据文件,NEXT指定下次分配给数据文件的磁盘空间*/
[MAXSIZE UNLIMITED|integer[K|M]]]] /*允许分配给数据文件的最大磁盘空间,UMLIMITED没有限制*/
[DEFAULT STORAGE storage_clause] /*为在该表空间创建的对象指定默认的存储参数*/
[ONLINE|OFFLINE] /*空间的可用/不可用设置*/
[LOGGING|NOLOGGING] /*将来的表、索引等是否进行日志处理*/
[PERMANENT|TEMPORARY] /*表空间的状态,永久或临时*/
[EXTENT MANAGEMENT[DICTIONARY| /*如何管理表空间的盘区*/
LOCAL[AUTOALLOCATE|UNIFORM[SIZE integer[K|M]]]]]
④例
创建表空间:
CREATE TABLESPACE tablespace_name
DATAFILE '/home/oracle/oradata/tablespace_name01.dbf'
SIZE 10M AUTOEXTEND ON NEXT 1M MAXSIZE 20M;
指定系统缺省时表空间:
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp;
表空间离线(不能访问):
ALTER TABLESPACE tablespace_name OFFLINE; /*ONLINE恢复*/
表空间只读:
ALTER TABLESPACE tablespace_name READ ONLY; /*READ WRITE 读写*/
删除表空间:
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;
添加数据文件到表空间:
ALTER TABLESPACE tablespace_name ADD DATAFILE '/home/oracle/oradata/tablespace_name02.dbf' size 1M;
设置表空间数据文件的缺省位置:
ALTER SYSTEM SET DB_CREATE_FILE_DEST '/home/oracle/oradata';
获得表空间和数据文件信息:
SELECT * FROM v$tablespace;
SELECT * FROM v$datafile;
2.表管理
①表完整性:防止不合法数据进入基表
域完整性:列完整性,指定某个数据集对某列是否有效并确定是否允许为空,CHECK
实体完整性:行完整性,主关键字约束,PRIMARY KEY(一个,值非空)、UNIQUE(可多个,值可空),自动产生索引
参照完整性:引用完整性,保证主从表数据的一致性,主键外键,PRIMARY KEY、FOREIGN KEY
如果定义了两个表间的参照完整性,则:从表不能引用不存在的键值;主表键值变,从表随着变;主表无关联记录,从表不能插入记录;删从表后删主表
查看视图:
SELECT * FROM user_constraintS WHERE table_name='EMP'; /*或all_constraints*/
②创建表语法格式
CREATE TABLE [schema.]table_name
(column_name datatype [DEFAULT expression][column_constraint],...n)
[PCTFREE integer] /*指定表或分区的每个数据块为将来更新表行所保留的空间百分比*/
[PCTUSED integer] /*指定每个数据块易用空间的最小百分比*/
[INITRANS integer] /*指定分配给表的每一数据块中事务条目的初值*/
[MAXTRANS integer] /*指定可更新分配给表的数据块的最大并发事务数*/
[TABLESPACE tablespace_name] /*指定表空间*/
[STORGE storage_clause] /*指定表的存储特征*/
[CLUSTER cluster_name(cluster_column,...n)] /*指定表作为簇的一部分*/
[AS subquery] /*子查询返回的行插入所创建的表中,后创建约束,如果同时有AS subquery 和CONSTRAINT子句,忽略AS subquery*/
完整性约束语法格式
CONSTRAINT constraint_name
[NOT] NULL
[UNIQUE]
[PRIMARY KEY
[REFERENCES [schema.] table_name(column_name)]
[CHECK(condition)]
③例
CREATE TABLE KC
(KCH CHAR(8) NOT NULL,
KCM CHAR(20) NOT NULL,
XS NUMBER(2) NOT NULL,
KKXQ NUMBER(1) NOT NULL,
XF NUMBER(2),
CONSTRAINT CH_KKXQ CHECK(KKXQ between 1 and 8),
CONSTRAINT "PK_KCH" PRIMARY KEY(KCH),
CONSTRAINT "FK_XS" FOREIGN KEY(XS) REFERENCES XS(XH) )
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
TABLESPACE "MYTS"
STORAGE (INITIAL 64K MINEXTENTS 1 PCTINCREASE 40 FREELISTS 1 FREELIST GROUPS 1);
)
④修改表语法格式
ALTER TABLE [schema.] table_name
[ADD (column_name datatype [DEFAULT expression][column_constraint],...n)]
[MODIFY([datatype][DEFAULT expression] [column_constraint],...n]
[STORAGE storage_clause] /*修改存储个正*/
[DROP drop_clause] /*删除列或约束*/
DROP子句语法格式:
DROP
COLUMN column_name| /*删除列*/
PRIMARY| /*删主键约束*/
UNIQUE| /*删唯一性约束*/
(column_name,...n)|
CONSTRAINT| /*删名为column_name的完整性约束*/
[CASCADE] /*删除所有其他的完整性约束,这些约束依赖于被删除的完整性约束*/
⑤例
ALTER TABLE XS
MODIFY (DJSM DEFAULT '奖金800');
3.其他
GRANT UNLIMITED TABLESPACE,DBA TO feifei; /*给用户授予表空间权限*/
Oracle项目应用:创建表空间--创建用户--给用户分配默认表空间
索引:供服务器在表中快速查找一个行的数据库结构,可快速存取数据、改善数据库性能保证列值唯一性、实现参照完整性、使用ORDER BY或GROUP BY时减少排序分组时间。
使用索引原则
在表中插入数据后创建索引:提高效率,若之前建立,插入每行时都要更改索引
索引正确的表和列:若经常检索表中少于15%的行,建议建立索引
合理安排索引列:通常将最常用列放最前面
限制表中索引数量、指定索引数据库空间的使用、根据索引大小设置存储参数。
唯一索引:
位图索引:将索引作为位图创建,适用于表数据量很大,唯一值很少的表,如性别。
语法格式:
CREATE [UNIQUE|BITMAP|INDEX /*UNIQUE指定索引所基于的列或多列值必须唯一*/
[schema.] index_name
ON [schema.] table_name(column_name[ASC|DESC],...n,[column_expression])| /*column_expression创建基于函数的索引*/
CLUSTER [schema.] cluster_name /*创建cluster簇索引*/
[INTRANS integer]
[MAXTRANS integer]
[PCTFREE integer]
[PCTUSED integer]
[TABLESPACE tablespace_name]
[STORAGE storage_clause]
[NOSORT] /*数据库中的行以升序保存,在创建索引时不必对行排序*/
[REVERSE]
例:CREATE bitmap INDEX bit_emp ON emp(sex);
原文地址:http://blog.csdn.net/chenmo_zhang/archive/2009/01/22/3850093.aspx