굉장히 중요하다고 한다. 별 다섯개~!!!

10. CONSTRAINT ( 제약 조건 ***** )
   (1) 설명
       테이블의 해당컬럼에 원치않는 데이터를 입력/수정/삭제
       되는 것을 방지하기위해 테이블 생성(create)시 또는
       변경(alter)시 설정하는 조건

   (2) 종류
      1) PRIMARY KEY (식별키)
         하나의 ROW데이터를 구별하게하는 제약조건으로
         하나의 테이블에 오직 하나만 존재하며 자동으로 INDEX가
     부여된다. 

      2) FOREIGN KEY ( 참조키 / 외래키 )
         부모 테이블의 PK를 참조하는 컬럼에 부여되는 제약조건 

      3) UNIQUE KEY ( 유일키 )
         PK가 아니더라도 컬럼의 모든 값이 유일해야 하는 경우
     에 사용되는 제약조건이다.
     즉, 중복데이터를 허용하지 않는 컬럼에 부여되는 제약조건

     cf) PK와 차이점
      첫째, NULL을 입력할 수 있다.
      둘째, 하나의 테이블에 여러개의 유일키 생성 가능

      4) CHECK
         '조건'에 맞는 데이터만 입력되도록 조건을 부여한 제약조건
         
     cf) 위에서의 '조건'이란 ?
       - 데이터의 값의 범위
       - 특정 패턴 숫자
       - 문자값 설정
       ....

      5) NOT NULL
         해당컬럼에 NULL을 입력되지 않게하는 제약조건
     'COLUMN-LEVEL'으로만 부여할 수 있는 제약조건
 
        cf1) PK는 NOT NULL 조건을 가지고 있음
    cf2) default 는 제약조건이 아님
    cf3) NOT NULL 조건도 constraint_type 에 'C'로 표현
   

   (3) LEVEL 기준 제약조건 부여 방법
      1) COLUMN-LEVEL
        -> 하나의 컬럼에 제약조건을 부여할 때 사용하며
      5가지 제약조건 모두 부여할 수 있다.

      제약조건확인1> CON_DEPT 테이블(제약조건:2개, default:1개)
      error> insert into CON_DEPT values(20, 'aa', '1');//PK위배
      error> insert into CON_DEPT values(50, 'aa', '3');//Check위배
      SQL> insert into CON_DEPT(deptno, loc) values(50, '2');
        //null 대신 default 값이 입력 확인

          제약조건확인2> CON_EMP 테이블(제약조건:5개)
          SQL> insert into CON_EMP values(
          1000, '이현록', '서울', '1234567890123', 20);//성공
      error> insert into CON_EMP values(
          2000, NULL , '서울', '1234567890555', 20); //nn위배
          error> insert into CON_EMP values(
          2000, '정애란' , '부산', '1234567890123', 20);//unique위배
          error> insert into CON_EMP values(
          2000, '정애란' , '부산', '1234567890222', 80);//fk위배

     example)
       const1.sql -> 이름을 지정하지 않는 것
       const2.sql -> 이름을 지정하는 것 (관리용이)

      2) TABLE-LEVEL
        -> 하나의 컬럼에 여러개의 제약조건을 부여할 때 or 
      여러개의 컬럼에 제약조건을 부여할 때 사용한다.

    example)
       const3.sql -> 이름을 지정하지 않는 것
           const4.sql -> 이름을 지정하는 것(관리용이)
           const5.sql -> table생성 후에 제약조건 추가, 이름을 지정

SOO Android 교육중에 배운 내용들 입니다. 알았던 사실도 있고 몰랐던 사실, 정리되지 않은것들이 머릿속에 쏙쏙 들어오는것 같네요. 잘 봅시다

'데이터베이스 > 오라클' 카테고리의 다른 글

alter문 정리  (0) 2011.03.31
Soo Android 수업에서 배운 오라클 과정입니다.  (0) 2011.03.31
sqlplus 명령어  (0) 2010.06.02
테이블 생성시 TIP?  (0) 2010.06.02
오라클 사용자에 대해서 다뤄보자.  (0) 2010.06.02

+ Recent posts