程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle常用的修改語句

Oracle常用的修改語句

編輯:Oracle教程

Oracle常用的修改語句


一、表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';

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值為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和增長率

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved