반응형

[ORACLE] 테이블 컬럼 변경 (추가, 삭제, 데이터타입 변경)


--------------------------------------------------------------------------------
-- 테이블 컬럼 추가
--------------------------------------------------------------------------------
ALTER TABLE WEX001M ADD APR_DT DATE DEFAULT SYSDATE NOT NULL ;
ALTER TABLE WEX001M ADD APRR_ID VARCHAR2(15) DEFAULT 'ADMIN' NOT NULL ;
--------------------------------------------------------------------------------
-- 테이블 컬럼 삭제
--------------------------------------------------------------------------------
ALTER TABLE WEX002D DROP (UPDR_ID);
--------------------------------------------------------------------------------
-- 컬럼 데이터타입 자리수 변경
--------------------------------------------------------------------------------
ALTER TABLE WEX001H MODIFY (RGR_ID VARCHAR2(15));
ALTER TABLE WEX001H MODIFY (UPDR_ID VARCHAR2(15));
--------------------------------------------------------------------------------

[문법]

1. 테이블 컬럼 추가

ALTER TABLE [테이블명] ADD [컬럼명] [데이터타입](자릿수) 옵션 ;
-테이블에 컬럼을 추가할 때, 테이블의 제일 밑에만 컬럼을 추가할 수 있다.

-중간에 컬럼을 추가하고자 할 때는, DROP 후 컬럼을 추가하여 CREATE를 다시해야한다.

-모델에서 ERD의 중간에 컬럼을 추가하여도, 표준화 시스템에서는 DROP 후 CREATE문으로 DDL문이 생성된다.


2. 테이블 컬럼 삭제

ALTER TABLE [테이블명] DROP (컬럼명);

-테이블에 컬럼을 삭제할 때, 테이블의 컬럼순서에 상관없이 삭제할 수 있다.


3. 컬럼 데이터타입 자리수 변경

ALTER TABLE [테이블명] MODIFY (컬럼명 VARCHAR2(변경할 자릿수));

-컬럼 자릿수를 변경할 때, 입력된 데이터의 길이보다 작게 변경할 수 없다.

-VARCHAR2(10) 컬럼에 8자리의 데이터가 들어가있으면, 8보다 작게 변경할 수 없다.

-NUMBER 역시 입력된 데이터보다 작게 변경할 수 없다.

-더 크게는 가능하다.


반응형
반응형

[ORACLE] PK인덱스, UNIQUE인덱스, 인덱스 삭제 (DROP INDEX)


--------------------------------------------------------------------------------
ALTER TABLE WEX001M DROP PRIMARY KEY CASCADE;

DROP INDEX PK_WEX001M;

--------------------------------------------------------------------------------

ALTER TABLE WEX002D DROP PRIMARY KEY CASCADE;
DROP INDEX PK_WEX002D;
DROP INDEX IX_WEX002D_N01;

DROP INDEX IX_WEX002D_N02;

--------------------------------------------------------------------------------


[문법]

1. 인덱스 삭제

DROP INDEX [인덱스명];


2. PK인덱스 삭제

ALTER TABLE [테이블명] DROP PRIMARY KEY CASCADE;
DROP INDEX [인덱스명];

-PK인덱스 삭제의 경우, 해당 테이블에 컬럼 제약조건을 DROP 한 후에 PK인덱스 삭제가 가능하다.


반응형
반응형

[ORACLE] 인덱스 생성 (CREATE INDEX)


--------------------------------------------------------------------------------

CREATE UNIQUE INDEX PK_WEX001M ON WEX001M
 (INTG_CDINTG_GRCDFNC_SNO)
;

ALTER TABLE WEX001M ADD (
 CONSTRAINT PK_WEX001M
 PRIMARY KEY (INTG_CDINTG_GRCDFNC_SNO)

);

CREATE UNIQUE INDEX IX_WEX001M_N01 ON WEX001M
(INTG_CDFNC_SNO)
;

CREATE INDEX IX_WEX001M_N02 ON WEX001M
(INTG_CDINTG_CDNM)
;

--------------------------------------------------------------------------------


[설명]

1. 일반 인덱스 생성은 CREATE INDEX 명령어로, UNIQUE 인덱스 생성은 CREATE UNIQUE INDEX 명령어로 실행.

2. PK(PRIMARY KEY) 인덱스 설정은 UNIQUE 인덱스를 생성한 뒤 ALTER문으로 PK컬럼 설정 및 제약조건을 추가.


[문법]

1. 인덱스 설정

CREATE INDEX [인덱스명] ON [테이블명]

(컬럼1, 컬럼2)
;


2. UNIQUE 인덱스 설정

CREATE UNIQUE INDEX [인덱스명] ON [테이블명]

(컬럼1컬럼2)
;


3. PK 인덱스 설정

ALTER TABLE [테이블명] ADD (
 CONSTRAINT [PK설정할 인덱스명]
 PRIMARY KEY (컬럼1컬럼2컬럼3)

);


반응형
반응형

[ORACLE] 테이블 수정 (DEFAULT, NOT NULL 설정)


--------------------------------------------------------------------------------

ALTER TABLE WEX001M MODIFY (FNC_SNO NOT NULL);

ALTER TABLE WEX001M MODIFY (REG_DT NOT NULL);
ALTER TABLE WEX001M MODIFY (REG_DT DEFAULT SYSDATE);
ALTER TABLE WEX001M MODIFY (RGR_ID NOT NULL);
ALTER TABLE WEX001M MODIFY (RGR_ID DEFAULT 'ADMIN');
ALTER TABLE WEX001M MODIFY (UPD_DT NOT NULL);
ALTER TABLE WEX001M MODIFY (UPD_DT DEFAULT SYSDATE);
ALTER TABLE WEX001M MODIFY (UPDR_ID NOT NULL);
ALTER TABLE WEX001M MODIFY (UPDR_ID DEFAULT 'ADMIN');
--------------------------------------------------------------------------------


[문법]

1. DEFAULT 설정

ALTER TABLE [테이블명] MODIFY ([컬럼명] DEFAULT [설정할 DEFAULT]);

-설정할 DEFAULT가 SYSDATE, 숫자의 경우 ' ' 없이 사용

-설정할 DEFAULT가 문자일 경우 ' '로 묶어서 사용


EX) ALTER TABLE WEX001M MODIFY (REG_DT DEFAULT SYSDATE);

EX) ALTER TABLE WEX001M MODIFY (UPDR_ID DEFAULT 0);

EX) ALTER TABLE WEX001M MODIFY (UPDR_ID DEFAULT 'ADMIN');


컬럼 1개에 NOT NULL, DEFAULT를 설정하고 싶으면 위처럼 명령문을 실행하면 된다.


2. NULL, NOT NULL설정

ALTER TABLE [테이블명] MODIFY ([컬럼명] NULL);

ALTER TABLE [테이블명] MODIFY ([컬럼명] NOT NULL);


반응형

+ Recent posts