본문 바로가기

오라클/제약조건

제약조건 CHECK

--CHECK : 추가 또는 수정시 설정한 조건에 맞는 올바른 데이터인지 검증

    -- 추가 및 수정시 마다 체크하므로 성능 저하

    

    --컬럼레벨로 지정

      CREATE TABLE 테이블명(

        컬러명 타입 [CONTRAINT 제약조건이름] CHECK(조건)

              :

      );

      

  --확인

  SELECT * FROM USER_CONSTRAINT;

  SELECT * FROM USER_CONS_COLUMNS;

  

  --이미 존재하는 테이블에 CHECK

  ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건이름 CHECK (컬럼명);

  

  --CHECK 제거

  ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건이름;

  

EX)

  CREATE TABLE test2(

    id VARCHAR2(20) PRIMARY KEY

    ,name VARCHAR2(20) NOT NULL

    ,gender VARCHAR2(20) CHECK(gender IN('남자','여자'))

    ,score NUMBER(3) CHECK(score BETWEEN 0 AND 100)

  );

  

  INSERT INTO test2(id,name, gender, score) VALUES('1','a','남자',50);

  INSERT INTO test2(id,name, gender, score) VALUES('2','b','man',50); --성별 설정한 check 조건 제약위반

  INSERT INTO test2(id,name, gender, score) VALUES('3','c','남자',150); --점수 설정한 check 조건 제약위반

  INSERT INTO test2(id,name, gender, score) VALUES('4','d',null,50);

  COMMIT;

  SELECT * FROM test2;

  

  UPDATE test2 SET score=120 WHERE id='1'; --점수 check제약위반(테이블 생성시에 만든 숫자 범위를 벗어남)

  

  

  

'오라클 > 제약조건' 카테고리의 다른 글

참조키(외래키, FORIGN KEY)  (0) 2013.06.11
제약조건 DEFAULT 디폴트  (0) 2013.06.01
제약조건 NOT NULL  (0) 2013.06.01
제약조건 UNIQUE 유니크  (0) 2013.06.01
제약조건 PRIMARY KEY 기본키  (0) 2013.06.01