10-5. CHECK 제약 조건 > 학습자료 | IOTsw_u2 U2 Project
학습자료

SQL 10-5. CHECK 제약 조건

본문

  

CHECK 제약 조건은 각 행이 만족시켜야 하는 조건을 정의한다.

이 조건에서는 질의 조건과 동일한 구조를 사용할 수 있지만 다음과 같은 예외가 있다.

 

CURRVALNEXTVALLEVES ROWNUM 의사 열 참조

SYSDATEUID,USER USERENV 함수 호출

․ 다른 행의 다른 값을 참조하는 질의

 

단일 열이 자신을 참조하는 CHECK 제약 조건을 열 정의에 여러 개 포함시킬 수 있다.

열에 정의할 수 있는 CHECK 제약 조건의 수에는 제한이 없다.

CHECK 제약 조건은 열 레벨 또는 테이블 레벨로 정의할 수 있습니다.

 

CREATE TABLE employees

(...

salary NUMBER(8,2) CONSTRAINT emp_salary_min CHECK (salary > 0),

...

)

 

MSSQL 디비 예제

create table checkexam(

city char(10)

check( city in ('서울', '대전', '강릉', '태백'))

)

 

insert into checkexam values('서울')

insert into checkexam values('춘천') //안들어감

-- 또는

create table checkexam1(

city char(10)

constraint ch_checkexam_city check (city in ('서울', '대전', '강릉', '태백'))

)

 

insert into checkexam1 values('춘천')

 

 

create table checkconst(

eid int identity not null,

value1 tinyint not null check (value1 between 1 and 100),

value2 int not null,

name1 varchar(10) not null check (name1 like '[a-f]%'),

name2 varchar(10) null default 'f' check (name2 in ('a', 'b', 'c')),

check (value1 < value2)

)

또는

create table checkconst1(

eid int identity not null,

value1 tinyint not null,

value2 int not null,

name1 varchar(10) not null,

name2 varchar(10) null default 'f',

check(value1 between 1 and 10),

check(name1 like '[a-f]%'),

check(name2 in ('a', 'b')),

check(value1 < value2)

)

 

CONSTRAINT emp_job_nn NOT NULL 

,salary NUMBER(8,2) CONSTRAINT emp_salary_ck CHECK (salary>0)

,commission_pct NUMBER(2,2)

, manager_id NUMBER(6)

, department_id NUMBER(4) CONSTRAINT emp_dept_fk REFERENCES departments (department_id)

);

 

MSSQL 디비 예제 :

use pubs -- 테스트를 위해 pubs 디비로 이동하자.

 

UPDATE employee

SET pub_id = 55

WHERE emp_id = 'F-C16315M';

메시지 547, 수준 16, 상태 0, 줄 2

UPDATE 문이 FOREIGN KEY 제약 조건 "FK__employee__pub_id__24927208"과(와) 충돌했습니다.

데이터베이스 "pubs", 테이블 "dbo.publishers", column 'pub_id'에서 충돌이 발생했습니다.

문이 종료되었습니다.

 

select * from checkconst

insert into checkconst values(1,2,'a..','a')

insert into checkconst values(200, 300, 'f..', 'b')

insert into checkconst values(100, 100, 'f..','b')

insert into checkconst values(100, 200, 'd..', default) 

댓글목록

10. 제약 조건 포함​
이어쓰기 1.A 10-1. NOT NULL 제약 조건
이어쓰기 2.B 10-2. UNIQUE 제약 조건
이어쓰기 3.C 10-3. PRIMARY KEY 제약 조건
이어쓰기 4.D 10-4. FOREIGN KEY REFERENCES 제약 조건
이어쓰기 5.E 10-5. CHECK 제약 조건
이어쓰기 6.F 10-6. 제약조건 위반
이어쓰기 7.G 10-7. 서브 쿼리 구문을 사용한 테이블 생성
이어쓰기 8.H 10-8. 테이블 삭제
이어쓰기 9.I 10-9. 객체 이름 변경
이어쓰기 10.J 10-10. 테이블 주석 추가 --MSSQL에서는 지원하지 않는 기능이다.
이 원글에 이어쓰기

학습자료 목록

Total 91건 1 페이지
게시물 검색

IOTsw_u2 정보

회사 . U2
주소 . 어느별 하늘 아래에 있것지요
사업자 등록번호 . 백수임 대표 . 김씨 전화 . 02-123-4567 팩스 . 팩스없음
통신판매업신고번호 . 낼할께 개인정보관리책임자 . 김씨가 알아서 함 부가통신사업신고번호 신고안함
Copyright © 2001-2013 U2. All Rights Reserved.
닫기