레이블이 column인 게시물을 표시합니다. 모든 게시물 표시
레이블이 column인 게시물을 표시합니다. 모든 게시물 표시

Oracle - 테이블, 컬럼 제약 조건의 확인하기

* 테이블에 걸려있는 제약 조건의 확인하기
USER_CONS_COLUMNS : 컬럼에 할당된 제약 조건을 볼 수 있다.
USER_CONSTRAINTS : 유저가 소유한 모든 제약 조건을 불 수 있다.


SELECT 

    SUBSTR(A.COLUMN_NAME,1,15) COLUMN_NAME,
    DECODE(B.CONSTRAINT_TYPE,
        'P','PRIMARY KEY',
        'U','UNIQUE KEY',
        'C','CHECK OR NOT NULL',
        'R','FOREIGN KEY') CONSTRAINT_TYPE,
    A.CONSTRAINT_NAME CONSTRAINT_NAME
FROM USER_CONS_COLUMNS A, USER_CONSTRAINTS B
WHERE A.TABLE_NAME = UPPER('&table_name')
    AND A.TABLE_NAME = B.TABLE_NAME
    AND A.CONSTRAINT_NAME = B.CONSTRAINT_NAME
ORDER BY 1;




* 테이블의 특정 컬럼에 걸려있는 제약 조건의 확인하기
USER_CONS_COLUMNS : 컬럼에 할당된 제약 조건을 볼 수 있다.


SELECT 

    SUBSTR(TABLE_NAME,1,15) TABLE_NAMES,
    SUBSTR(COLUMN_NAME,1,15) COLUMN_NAME,
    SUBSTR(CONSTRAINT_NAME,1,25) CONSTRAINT_NAME
FROM USER_CONS_COLUMNS
WHERE TABLE_NAME = UPPER('&table_name')
    AND COLUMN_NAME = UPPER('&column_name');

Oracle - 테이블 컬럼 변경

*** 컬럼 추가 ***
alter table [테이블명] add([컬럼명] [데이터타입]);

ex) alter table USER add(USER_NAME varchar2(50));


*** 컬럼명 변경 ***
alter table [테이블명] rename column [이전컬럼명] to [새컬럼명];

ex) alter table USER rename column USER_NAME to USER_NM;


*** 컬럼 데이터 타입 변경 ***
alter table [테이블명] modify([컬럼명] [데이터타입]);

ex) alter table USER modify(USER_NM varchar2(100));


*** 컬럼 삭제 ***
alter table [테이블명] drop([컬럼명]);

ex)  alter table USER drop(USER_NM);