테이블의 제약조건

SQL> CREATE TABLE emp(
        ename VARCHAR2(20)  CONSTRAINT emp_nn_ename NOT NULL );
        이런식으로 하면 ename 컬럼에는 꼭 데이터를 입력해야만 합니다.

        여기서 emp_nn_ename은 (테이블이름_제약조건이름_컬럼이름)형식으로
        CONSTRAINT NAME을 정의 합니다.

        CONSTRAINT NAME은 USER_CONSTRAINTS 뷰(VIEW)를 통해서 확인할수 있습니다.

SQL> SELECT CONSTRAINT_NAME
         FROM    USER_CONSTRAINTS
         WHERE  TABLE_NAME =’EMP’ ;

          CONSTRAINT_NAME
          -----------------------
          emp_nn_ename           이런 식으로 제약사항의 이름을 확인할수 있습니다.

 

 

SQL> ALTER TABLE emp
        ADD CONSTRAINT emp_uk_deptno UNIQUE (deptno)

테이블이 변경되었습니다.

     이런식으로 하면 deptno 컬럼에 중복된 데이터가 들어갈 수 없습니다.

-- 제약 조건의 삭제

SQL>ALTER TABLE emp
       DROP CONSTRAINT emp_uk_deptno ;

테이블이 변경되었습니다.

 


SQL>ALTER TABLE emp
       ADD CONSTRAINT emp_ck_comm
       CHECK (comm >= 10 AND comm <= 100000) ;

테이블이 변경되었습니다.

     comm컬럼은 체크조건에서 제한을 하고 있으므로 1에서 100까지의 값만을 가질수  있습니다.
     또체크 조건에서는 IN 연산자를 사용할수 있습니다.


-- 제약 조건의 삭제

SQL>ALTER TABLE emp
        DROP CONSTRAINTemp_ck_comm ;

테이블이 변경되었습니다.

SQL> ALTER TABLEemp
        ADD CONSTRAINT emp_ck_comm
        CHECK (comm  IN  (10000,20000,30000,40000,50000)) ;

테이블이 변경되었습니다.

     comm 컬럼은 10000,20000,30000,40000,50000의 값만을 가질수 있습니다.
 

 

이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by 밀리 | 2008/09/25 14:32 | DB[ORACLE/MS-SQL] | 트랙백 | 덧글(0)

트랙백 주소 : http://ggwangs.egloos.com/tb/870759
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶