1. 제약 조건
ㆍ 제약조건이란?
ㄴ 데이터의 무결성을 지키기 위해 제한된 조건
ㄴ 어떠한 조건을 만족했을때만 데이터가 입력되도록 제한해주는 역할
ㆍ SQL Server 에서 제공하는 제약 조건은 아래와 같다.
ㄴ NOT NULL
ㄴ CHECK 제약 조건
ㄴ UNIQUE 제약 조건
ㄴ PRIMARY KEY 제약 조건
ㄴ FOREIGN KEY 제약 조건
ㄴ DEFAULT
2. NOT NULL
ㆍ 해당 컬럼에는 NULL 값이 들어올 수 없다.
-- ID 라는 컬럼엔 NULL 값이 들어올 수 없다.
CREATE TABLE account_tbl (
ID varchar(10) NOT NULL
)
3. CHECK 제약 조건
ㆍ 해당 컬럼에 특정 조건을 걸어 이에 해당하는 값만 들어올 수 있게끔 해준다.
ㆍ 어떤 특정한 값을 기준으로 해당 값보다 적거나 혹은 많을 경우에만 들어올 수 있게 제한을 걸어주기 위해 사용하는 조건이다.
-- Age 라는 컬럼은 20 보다 크고 60 보다 작은 값만이 들어올 수 있다.
CREATE TABLE account_tbl (
ID varchar(10) NOT NULL,
Age int NOT NULL CHECK (Age >= 20 and Age < 60)
)
4. PRIMARY KEY 제약 조건
ㆍ 한 테이블에 고유하게 식별할 수 있는 값
ㆍ 한 테이블에 오직 1개만 설정이 가능하다. (단, 하나 이상의 컬럼을 묶어 PK (기본키) 로 설정할 수 있다.)
ㆍ NULL 값은 허용되지 않는다.
-- ID 라는 컬럼은 기본키로 지정되었으며, 테이블 내 값이 중복될 수 없으며, NULL 값이 허용되지 않는다.
CREATE TABLE account_tbl (
ID varchar(10) NOT NULL PRIMARY KEY,
Age int NOT NULL CHECK (Age >= 20 and Age < 60)
)
5. UNIQUE 제약 조건
ㆍ 한 테이블에 PK 가 아닌 컬럼에 유일한 값을 주고 싶을때 사용하는 조건이다.
ㆍ 한 테이블에 2개 이상 설정이 가능하다. (PRIMARY KEY 와의 차이)
ㆍ NULL 값이 허용되나, 이도 컬럼당 하나의 값만 가질 수 있다. (PRIMARY KEY 와의 차이)
6. FOREIGN KEY 제약 조건
ㆍ 두 테이블간의 관계를 선언함으로써, 데이터의 무결성을 보장해주는 조건이다.
ㆍ FK (외래 키) 설정 시, 기준 테이블에 외래키 테이블이 의존하게 된다.
ㆍ 참조할 테이블은 PK 이거나 UNIQUE 컬럼이여야 한다.
ㆍ 참조할 테이블의 컬럼에 값이 존재하여야 한다.
ㆍ 참조 대상 테이블의 컬럼 값이 변경/삭제 될 경우, 외래키의 값 역시 변경/삭제된다.
-- 기준 테이블 생성, ID 컬럼에 PK 설정
CREATE TABLE account_tbl (
ID varchar(10) NOT NULL PRIMARY KEY,
Age int NOT NULL CHECK (Age >= 20 and Age < 60)
)
-- 외래키 테이블 생성, ID 컬럼에 FK 설정
CREATE TABLE detail_tbl (
ID varchar(10) NOT NULL FOREIGN KEY REFERENCES account_tbl(ID)
)
7. DEFAULT
ㆍ 해당 컬럼 값을 넣지 않았을 경우, 자동으로 설정해준 기본 값이 들어간다.
-- RegDate 컬럼에 값을 설정하지 않을 경우, 현재 시간으로 자동 입력된다.
CREATE TABLE account_tbl (
ID varchar(10) NOT NULL,
Age int NOT NULL CHECK (Age >= 20 and Age < 60),
RegDate datetime DEFAULT(getdate())
)