Oracle 常用的修改語句,oracle修改語句

來源:互聯網
上載者:User

Oracle 常用的修改語句,oracle修改語句
一、表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';

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語句中,怎更改一個表的一個欄位數值

update "table_name" set "salary" = "salary" + 1000;
commit work;
 
ORACLE 欄位值 替換更改語句

update table set a=case when a='1' then 'A' when a='2' then 'B' when a='3' then 'C' when a='4' then 'D';
不知道這是不是你要的結果?
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.