日期:2014-05-16  浏览次数:20315 次

Oracle 表结构及操作
-- 创建表
-- drop table teacher;
create table teacher(
  id number(6),
  name varchar2(20),
  phone varchar2(20),
  constraint pk_teacher primary key (id)
);
-- 为表加上注释
comment on table TEACHER IS '教师表';

-- 为列添加注释
comment on column TEACHER.ID IS '教师编号';
comment on column TEACHER.NAME IS '教师姓名';

-- 查看一个表的列信息
select * from user_tab_columns
where table_name=upper('tablename');
/*
  注意:
      1.如果当前列已经有当前约束,则不可重复添加
      2.如果表中已经有主键(primary key),则不可对所操作的列加主键约束
      3.把一列改变为null约束,则此列之前必须有not null约束
*/

-- 删除表
drop table tablename;

-- 修改表名
alter table tablename rename to new_tablename;

-- 增加列
alter table tablename add (
  column datatype [default value][null/not null][primary key/unique/...],...);

-- 修改列
alter table tablename modify (
  column datatype [default value][null/not null],[primary key/unique/...],...);

-- 删除列
alter table tablename drop (column_name1,column_name2,...);

-- 修改列名
alter table table_name rename column column_name to newname;

-- 示例:

-- 增加一列
alter table teacher add memo varchar2(200) default '暂无简介' not null;

-- 增加多列
alter table teacher add (note varchar2(200) default '暂无简介',age number(3)) ;

-- 修改一列
alter table teacher modify phone varchar2(20) not null;

-- 修改多列
alter table teacher modify (phone varchar2(20) not null,name varchar2(20) not null);

-- 修改为空的字段必须有not null约束才行
alter table teacher modify phone varchar2(20) unique null;

-- 删除一列
alter table teacher drop (age); 

-- 删除多列
alter table teacher drop (memo,note); 

commit;

?