分享:我的oracle 9i学习笔记(12)

开发者在线 Builder.com.cn 更新时间:2008-04-23作者:please 来源:chinaunix

本文关键词: 数据库 Oracle Oracle 9i

##################### CREATE/ALTER TABLE #######################

alter table table_name drop column column_name ;---drop column

alter table table_name set unused (col1,col2,...);----设置列无效,这个比较快。

alter table table_name drop unused columns;---删除被设为无效的列

rename table_name1 to table_name2; ---重命名表

comment on table table_name is "comment message";----给表放入注释信息

create table table_name

(col1 int not null,col2 varchar2(20),col3 varchar2(20),

constraint uk_test2_1 unique(col2,col3))); -----定义表中的约束条件

alter table table_name add constraint pk_test2 primary key(col1,col2,...); ----创建主键

/*建立外键*/

create table table_name (rid int,name varchar2(20),constraint fk_test3 foreign key(rid) references other_table_name(id));

alter table table_name add constraint ck_test3 check(name like "K%");

alter table table_name drop constraint constraint_name;

alter table table_name drop primary key cascade;----级联删除主键

alter table table_name disable/enable constraint constraint_name;----使约束暂时无效

/*删除列,并级联删除此列下的约束条件*/

alter table table_name drop column column_name cascade constraint;

select * from user_constraints/user_cons_columns;---约束条件相关视图

############## Create Views #####################

CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name [(alias[,alias]...)]

AS subquery

[WITH CHECK OPTION [CONSTRAINT constraint_name]]

[WITH READ ONLY [CONSTRAINT constraint_name]]; ------创建视图的语法

example: Create or replace view testview as select col1,col2,col3 from table_name; ------创建视图

/*使用别名*/

Create or replace view testview as select col1,sum(col2) col2_alias from table_name;

/*创建复杂视图*/

Create view view_name (alias1,alias2,alias3,alias4) as select d.col1,min(e.col1),max(e.col1),avg(e.col1) from table_name1 e,table_name2 d where e.col2=d.col2 group by d.col1;

/*当用update修改数据时,必须满足视图的col1>;10的条件,不满足则不能被改变.*/

Create or replace view view_name as select * from table_name where col1>;10 with check option;

/*改变视图的值.对于简单视图可以用update语法修改表数据,但复杂视图则不一定能改。如使用了函数,group by ,distinct等的列*/

update view_name set col1=value1;

/*TOP-N分析*/

select [column_list],rownum from (select [column_list] from table_name order by Top-N_column) where rownum<=N;

/*找出某列三条最大值的记录*/

example: select rownum as rank ,col1 ,col2 from (select col1 ,col2 from table_name order by col2 desc) where rownum<=3;

用户评论

  • 用户名
  • 评论内容