外部表:
在数据库服务器上任一路径下(例如:c:\)编写控制文件ctrl.txt;
LOAD DATA
INFILE 'D:\tt\test1.txt'(数据文件路径)
INTO TABLE TEST1.TXT
FIELDS ','
在步骤1中指定的data.txt存放路径下编写data.txt文件;
创建外部表;
create external table test1 (c1 int,c2 int,c3 int) from 'D:\tt\test1.ctl';--(命令文件路径)
查询外部表数据
select * from test1;
外部表是表文件,所以不会放在数据库里面,会放在操作系统里面。通过数据库管理工具可以查看外部表的数据库,外部表只能对外部表进行查询。
1、建立外部表时,不会产生页、簇、段等存储结构。
2、只能与表相关的定义放在数据库字典中,不能对外部表的内容进行修改(update 、inster delete)A
3、不能对外部表创建索引。
4、外部表可以通过sql语句解码器来完成。而不需要将外部表装载到数据库中。
视图管理:
视图有普通视图和物化视图两种,它们的区别是普通视图不含数据,但物化视图含数据并占存储空间。然后视图只有逻辑表,每次使用视图的时候都只是再重新执行sql。
普通视图:
建表并插入数据;
create table test(a int,b varchar(50),c date);
insert into test values(1,'路人甲','2010-01-02');
insert into test values(2,'路人乙','2011-01-02');
insert into test values(3,'路人丙','2012-01-02');
创建表上的视图并查询视图;
create view test1 as select * from test where a=3;
修改基表并重编译视图;
alter table test add column(d char(10));
select * from test;
alter view test compile;
select * from test;
对视图进行数据更新、删除操作
更新:
update test1 set b='路人丁' where a=3;
select * from test1;
删除:
drop view test1;
物化视图:
建表并创建物化视图;
create table test1(a1 int,a2 varchar(50),a3 date);
create table test2(b1 int,b2 varchar(50),b3 date);
insert into test1 values(1,'aaa','2020-09-22');
insert into test2 values(2,'bbb','2021-11-12');
insert into test1 values(3,'ccc','2020-09-28');
insert into test2 values(3,'aaa','2021-09-22');
insert into test1 values(4,'bbb','2020-11-12');
insert into test2 values(2,'ccc','2021-09-28');
create materialized view test(v1,v2,v3)
build immediate refresh complete enable query rewrite
as select
test1.a1 as v1,test1.a2 as v2,test1.a3 as v3
from test1,test2 where test1.a1=test2.b1;
对物化视图执行查询、修改、更新和删除操作
查询:
select * from test;
修改:
alter materialized view st2 disable query rewrite;
更新:
refresh materialized view test complete;
删除:
drop materialized view test;
所有操作成功执行
索引管理:
创建模式TS
建表,并在某一列建立普通B树索引
create tablespace TS datafile 'TS.dbf' size 128;
create table TS.t1(a1 int,a2 varchar(50),a3 date);
create index t1_inx on TS.t1(a1)
storage (initial 50,next 50,on TS);
建表,并在某一列上建立聚集索引
create table TS.t2(a1 int,a2 varchar(50),a3 date);
create cluster index t2_inx on TS.t2(a1);
建表,并在某一列上建立分区索引
create table TS.t3(a1 int,a2 varchar(50),a3 date)storage(branch(2,4));
create index t3_inx on TS.t3(a1) global partition by range(a1)(partition p1 values less than (20),
partition p2 values less than (maxvalue));
建表,并在某一列上建立唯一索引
create table TS.t4(a1 int,a2 varchar(50),a3 date);
create unique index t4_inx on TS.t4(a1);
建表,并在某一列上建立位图索引
create table TS.t5(a1 int,a2 varchar(50),a3 date);
create bitmap index t5_inx on TS.t5(a1);
建表,并在某一列上建立位图连接索引
create table TS.t6_1(a1 int unique,a2 varchar(50),a3 date);
insert into TS.t6_1 values(1,'gguysd','2020-07-23');
insert into TS.t6_1 values(2,'hcydsv','2021-09-25');
insert into TS.t6_1 values(3,'sduzhv','2017-03-14');
create table TS.t6_2(b1 int unique,b2 varchar(50),b3 date);
insert into TS.t6_2 values(4,'aaaaa','2034-07-23');
insert into TS.t6_2 values(3,'bbbbb','2056-09-25');
insert into TS.t6_2 values(2,'ccccc','2016-03-14');
create bitmap index t6_inx on TS.t6_1(a1) from TS.t6_1,TS.t6_2 where TS.t6_1.a1=TS.t6_2.b1;
select * from TS.t6_1,TS.t6_2 where TS.t6_1.a1=TS.t6_2.b1 and TS.t6_2.b3='2016-03-14';
建表,并在某一列上建立全文索引
create table TS.t7(a1 int,a2 varchar(50),a3 date);
create context index t7_inx on TS.t7(a2) lexer chinese_lexer;
以上索引均成功创建。