標籤:
一、表Table
測試表:MY_TEST_TABLE
-- Create tablecreate 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_SEQminvalue 1maxvalue 9999999999start with 1increment by 1cache 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值為10
select 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和增長率
Oracle 經常使用的改動語句