一、表Table
測試表:MY_TEST_TABLE
-- Create table
create table MY_TEST_TABLE
(
A VARCHAR2(30),
B NUMBER(10) default 1,
C DATE
)
tablespace BOSSWG_CFG
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
-- Add comments to the table
comment on table MY_TEST_TABLE
is 'test';
-- Add comments to the columns
comment on column MY_TEST_TABLE.A
is 'aaaa';
comment on column MY_TEST_TABLE.B
is 'bbbb';
comment on column MY_TEST_TABLE.C
is 'cccc';
0.增加字段
alter table MY_TEST_TABLE add D VARCHAR2(50);
-- Add comments to the columns
comment on column MY_TEST_TABLE.D
is 'dddddd';
1. 修改表字段名
alter table MY_TEST_TABLE rename column A to D; //將A字段名改成D
2. 修改表字段類型
alter table MY_TEST_TABLE modify B varchar2(10); //將B字段的number(10)類型修改爲varchar2(10)
3. 修改表字段默認值
alter table MY_TEST_TABLE modify B default 2; //將B字段的默認值1改成2
4. 修改表字段的非空屬性
alter table MY_TEST_TABLE modify B not null; // 將B字段改成非空
5. 修改表字段的備註
comment on column MY_TEST_TABLE.B // 修改B字段的備註值
is 'bbbb2';
6. 主鍵操作
alter table MY_TEST_TABLE
add constraint PK_MY_TEST_TABLE primary key (A); //添加主鍵
alter table MY_TEST_TABLE
drop constraint PK_MY_TEST_TABLE cascade; //刪除主鍵
//如果要修改主鍵的話,即必須先刪除主鍵,再添加主鍵。
7.check約束操作
alter table MY_TEST_TABLE
add constraint CKC_MY_TEST_TABLE_B //添加約束
check (B in(1,2,3));
alter table MY_TEST_TABLE
drop constraint CKC_MY_TEST_TABLE_B; //刪除約束
//如果要修改約束,則必須先刪除約束,再添加約束。
8. 外鍵操作
alter table MY_TEST_TABLE
add constraint FK_MY_TEST_DTABLE_A foreign key (A) //添加外鍵
references MY_TEST_TABLE2 (A) on delete cascade;
alter table MY_TEST_TABLE
drop constraint FK_MY_TEST_DTABLE_A; //刪除外鍵
//如果要修改外鍵,必須先刪除外鍵,再添加外鍵
二、序列SEQ
測試序列:MY_TEST_SEQ
create sequence MY_TEST_SEQ
minvalue 1
maxvalue 9999999999
start with 1
increment by 1
cache 20;
1. 修改minvalue與maxvalue值:
alter sequence MY_TEST_SEQ
minvalue 20
maxvalue 99999999999;
2. 修改nextvalue值:
alter sequence MY_TEST_SEQ increment by 8 nocache; //由原來nextvalue值爲2,修改爲nextvalue值爲10select MY_TEST_SEQ.nextval from dual;
alter sequence MY_TEST_SEQ increment by 1 cache 20; //這句必須有,不然會重置cache和增長率
alter sequence MY_TEST_SEQ increment by -8 nocache; //由原來nextvalue值爲10,修改爲nextvalue值爲2
select MY_TEST_SEQ.nextval from dual;
alter sequence MY_TEST_SEQ increment by 1 cache 20; //這句必須有,不然會重置cache和增長率