안녕하세요. 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에서 생성도 가능합니다.
이미지 - SSMS 체크 제약 생성
테이블 디자인에서 컬럼을 선택하고 “CHECK 제약 조건”을 선택합니다. 이후 위와 같이 체크 제약을 생성하거나 수정할 수 있습니다.
SQL 강좌 책 구매
강좌가 도움이 되셨다면, 책으로 구매 가능합니다. 책 판매 수익금은 전액 코딩 교육 사회공헌 활동에 기부되며, 아래 링크에서 구매하시면 더 많은 금액이 기부됩니다.