티스토리 뷰

오라클 테이블 컬럼 추가, 변경, 삭제 (alter table)

* 테이블 생성

view sourceprint?
1.create table test (

2. idx number not null;

3.);

 

* 테이블테이블 명 변경

view sourceprint?
1.rename after_table to before_table;

 

* 테이블 정보

view sourceprint?
1.desc test;

 

* 테이블에 addField 컬럼 추가

view sourceprint?
1.alter table test add(addField number(10));
(추가될 COLUMN 의 위치는 지정할 수 없다. 새로운 COLUMN 은은 마지막 위치에 생성된다.)* 테이블 addField 컬럼명을 modifyField 컬럼명으로 변경

view sourceprint?
1.alter table test rename column addField to modifyField;
COLUMN 의 크기를 확장할 수 있다.
데이타가 들어있지 않으면않으면 COLUMN 의 크기를 줄일 수 있다.
데이타가 들어있지 않다면 COLUMN 의의 타입을 수정할 수 있다.
COLUMN 에 NULL 값이 없다면 NOT NULLNULL CONSTRAINT 를 지정할 수 있다.
DEFAULT VALUE 를 변경할 수 있다.있다.
이미 생성되어 있는 COLUMN 을 변경한다

 

* Constraint 추가추가
이미 생성되어 있는 TABLE 에 CONSTRAINT 를 추가한다.

view sourceprint?
1.ALTER TABLE table_name 2.ADD (table_constraint); 3.ALTER TABLE S_EMP ADD (CONSTRAINT S_EMP_MANAGER_ID_FK FOREIGN KEY(MANAGER_ID) 4.REFERENCES S_EMP(ID));

* Constraint 삭제
이미 생성되어 있는 TABLE 의의 CONSTRAINT 를 삭제한다.

view sourceprint?
1.ALTER TABLE table_nameDROP PRIMARY KEY |

2.UNIQUE(column_name) |

3.CONSTRAINT constraint_name [CASCADE];

4.ALTER TABLE S_EMP 5.DROP CONSTRAINT S_EMP_MANAGER_ID_FK;

 

* 테이블 modifyField의 컬럼컬럼 데이터 타입 변경

view sourceprint?
1.alter table test modify(modifyField varchar(10));

 

* 테이블 modifyFieldmodifyField 컬럼 삭제

view sourceprint?
1.alter table test drop(modifyField);


alter table 테이블명 modify(컬럼명 number null) // not null 조건 삭제

오라클 컬럼명 변경
alter table table_name rename column old_name to new_name


---------------------------------------------------------
요기서 부터 mySql

1. 제약사항 이름 확인

SQL>select CONSTRAINT_NAME, CONSTRAINT_TYPE from user_constraints
        where table_name = '테이블이름'

 

 

2. 해당컬럼에 제약조건을 추가

SQL>ALTER TABLE 테이블이름

        ADD CONSTRAINT 제약사항이름 제약사항(컬럼명);

 

3. 해당 컬럼에 not null 제약조건을 추가

SQL>ALTER TABLE 테이블 이름

        MODIFY (컬럼명 타입(길이) CONSTRAINT 제약사항이름 제약사항)

띄워쓰기 잘 확인!!!

 

4. NOT NULL 조건을 삭제

SQL>ALTER TABLE 테이블이름

        DROP CONSTRAINT 제약이름;

 

 

 

** Not null 제약 조건 을 변경하고자 할 때

 

SQL>alter table member drop constraint member_jumin_nn   //제약을 지우고
SQL>ALTER TABLE member MODIFY jumin varchar2(12) //데이터 타입을 바꾸고

 

타입을 바꾸지 않고 제약사항 추가하면서 modify 할수 있는지는 아직 미확인.

 

SQL>ALTER TABLE member
        MODIFY (jumin varchar2(12) CONSTRAINT member_jumin_nn NOT NULL) //제약 추가

단, 해당 컬럼에 데이터가 있다면, 해당컬럼은 모두 데이터가 비워있지 않아야 한다.