안녕하세요. SQLER의 코난 김대우입니다. 
이번 강좌에서는, 6-4. 데이터 무결성 - 체크 제약(CHECK Constraint)을 진행 하겠습니다.


SQLER에서 진행되는, 챗GPT와 함께 배우는 SQL Server 강좌 목록

 

이번에 진행할 강좌는 데이터 무결성 - 체크 제약(CHECK Constraint)입니다.

 

 

 

TL;DR

체크 제약은 나이와 같은 컬럼에 제한 조건을 설정하여, 특정 범위 내 값만 허용하도록 할 수 있습니다. SQL 쿼리나 SSMS를 통해 체크 제약을 생성하거나 수정할 수 있으며, 이를 통해 데이터의 유효성을 보장할 수 있습니다.



체크제약은 일종의 도메인 무결성으로 체크 제약이 설정된 컬럼에는 제약에 맞는 데이터만 입력받게 됩니다.

 

 

체크제약 생성

예를 들어, 나이를 입력받는 컬럼에 체크 제약을 설정할 수 있습니다.
아래의 샘플 쿼리는 나이가 10세 초과, 20세 미만만 삽입이 가능하게 제한하는 체크 제약 샘플입니다.

 

USE AdventureWorks;
GO

-- ClubMembers 테이블 생성
CREATE TABLE ClubMembers(
member_name NVARCHAR(10) NOT NULL,
member_age TINYINT NOT NULL,
    CONSTRAINT CHK_member_age  -- 10 초과 20 미만 숫자값만 허용 
       CHECK (member_age > 10 AND member_age < 20)
);
GO

INSERT INTO ClubMembers(member_name, member_age) VALUES(N'김대우', 19);  -- 성공
GO
INSERT INTO ClubMembers(member_name, member_age) VALUES(N'박은빈', 21);  -- 에러
GO

메시지 547, 수준 16, 상태 0, 줄 249
The INSERT statement conflicted with the CHECK constraint "CHK_member_age". The conflict occurred in database "AdventureWorks", table "dbo.ClubMembers", column 'member_age'.
The statement has been terminated.

 


SSMS에서 체크제약 생성 / 수정

SSMS에서 생성도 가능합니다.

 

74-1-체크제약.png

이미지 - SSMS 체크 제약 생성


테이블 디자인에서 컬럼을 선택하고 “CHECK 제약 조건”을 선택합니다. 이후 위와 같이 체크 제약을 생성하거나 수정할 수 있습니다.
 

 

SQL 강좌 책 구매

강좌가 도움이 되셨다면, 책으로 구매 가능합니다. 책 판매 수익금은 전액 코딩 교육 사회공헌 활동에 기부되며, 아래 링크에서 구매하시면 더 많은 금액이 기부됩니다. 

 

책구매 링크: 챗GPT와 함께하는 마이크로소프트 SQL Server 2022 

책구매링크.png

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 13589
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 8399
2274 SQL강좌: 8-3. 저장 프로시저 - 매개변수(파라미터) 코난(김대우) 2023.08.18 23
2273 SQL강좌: 8-2. 저장 프로시저 - 생성과 실행 코난(김대우) 2023.08.18 27
2272 SQL강좌: 8-1. 저장 프로시저(Stored Procedure) - 소개 코난(김대우) 2023.08.18 35
2271 SQL강좌: 7-10. 실무에서 뷰 사용 코난(김대우) 2023.08.18 22
2270 SQL강좌: 7-9. 인덱싱된 뷰(Indexed View) file 코난(김대우) 2023.08.18 21
2269 SQL강좌: 7-8. 분할 뷰(Partitioned View) file 코난(김대우) 2023.08.18 20
2268 SQL강좌: 7-7. 뷰에서 데이터 수정 코난(김대우) 2023.08.18 21
2267 SQL강좌: 7-6. 뷰에서 뷰 생성 코난(김대우) 2023.08.18 20
2266 SQL강좌: 7-5. 뷰 옵션 코난(김대우) 2023.08.18 15
2265 SQL강좌: 7-4. 뷰 삭제 코난(김대우) 2023.08.18 8
2264 SQL강좌: 7-3. 뷰 수정 코난(김대우) 2023.08.18 18
2263 SQL강좌: 7-2. 뷰 생성 file 코난(김대우) 2023.08.18 14
2262 SQL강좌: 7-1. 뷰(VIEW) 소개 코난(김대우) 2023.08.18 19
2261 SQL강좌: 6-9. 데이터 무결성 - 데이터 무결성 주의사항 file 코난(김대우) 2023.08.18 28
2260 SQL강좌: 6-8. 데이터 무결성 - 트리거(TRIGGER) file 코난(김대우) 2023.08.18 48
2259 SQL강좌: 6-7. 데이터 무결성 - 사용자 정의 형식(User-Defined Type - UDT) 코난(김대우) 2023.08.18 17
2258 SQL강좌: 6-6. 데이터 무결성 - 기본값(DEFAULT) file 코난(김대우) 2023.08.18 9
2257 SQL강좌: 6-5. 데이터 무결성 - 규칙(RULE) 코난(김대우) 2023.08.18 23
» SQL강좌: 6-4. 데이터 무결성 - 체크 제약(CHECK Constraint) file 코난(김대우) 2023.08.18 26
2255 SQL강좌: 6-3. 데이터 무결성 - 기본 키(Primary Key) 제약, UNIQUE 제약, 외래 키(Foreign Key) 제약 file 코난(김대우) 2023.08.18 33





XE Login