반응형
1. NOT NULL
컬럼에 NULL 금지
CREATE TABLE ACCOUNT_TABL (
ID varchar(10) NOT NULL
)
CREATE TABLE ACCOUNT_TABL (
ID varchar(10) PRIMARY KEY -- NOT NULL 안 써줘도 자동으로 NOT NULL
)
2. CHECK 제약 조건
지정 값 외에 다른 값 들어오지 못하도록 제약
CREATE TABLE ACCOUNT_TBL (
ID varchar(10) NOTNULL,
Age int NOT NULL CHECK (Age >= 20 AND Age < 60) -- 판단할 수 있는 조건
)
CREATE TABLE ACCOUNT_TBL (
ID varchar(10) NOTNULL,
Sex string NOT NULL CHECK (Sex IN ('여', '남') -- 판단할 수 있는 조건
)
3. UNIQUE 제약 조건
한 테이블에 PK가 아닌 컬럼에 유일한 값을 주고 싶은 경우 사용
PK와의 차이는 뭔가요?
UNIQUE 제약 조건은 2개 이상 설정 가능, NULL이 허용되나 이도 컬럼 당 하나만 가능
4. PRIMARY KEY(PK) 제약 조건
한 테이블에 고유하게 식별할 수 있는 값. 한 테이블에 오직 1개만 설정. 컬럼 묶어서 설정 가능. NULL값은 허용 X.
ex) 사원명, 사원번호, 주민번호, 이메일, 휴대폰번호, 나이
ex) 회사코드(PK), 사원명, 사원번호(PK), 주민번호, 이메일, 휴대폰번호, 나이
CREATE TABLE account_tbl (
-- ID varchar(10) NOT NULL PRIMARY KEY, -- 이렇게 쓰지 않아도 자동으로 NOT NULL
ID varchar(10) PRIMARY KEY,
Age int NOT NULLL CHECK (Age >= 20 and Age < 60),
)
5. FOREIGN KEY(FK) 제약 조건
설정 컬럼에 데이터의 무결성 보장. 참조할 테이블의 PK 또는 UNIQUE 컬럼의 도메인.
PRIMARY KEY: NULL 허용 X (NOT NULL은 붙이나 안붙이나 같음. 어차피 NOT NULL)
FOREIGN KEY: NULL도 허용 (NOT NULL은 선택)
CREATE TABLE account_tbl (
-- ID varchar(10) NOT NULL PRIMARY KEY, -- 이렇게 쓰지 않아도 자동으로 NOT NULL
ID varchar(10) PRIMARY KEY,
Age int NOT NULLL CHECK (Age >= 20 and Age < 60),
)
CREATE TABLE detail_tbl (
ID varchar(10) NOT NULL FOREIGN KEY REFERENCES account_tbl(ID)
-- , FOREIGN KEY (ID) REFERENCES account_tbl(ID)
-- , CONSTRAINT FK_account_tbl FOREIGN KEY (ID) REFERENCES account_tbl(ID)
-- 바로 위는 제약 명칭을 지정한 것.
-- 제약 명칭은 생략 가능하지만 실무에서는 컬럼에 대해 제약사항을 줄 때 이름을 줘야 함
)
6. DEFAULT
해당 컬럼 값을 넣지 않았을 겨웅, 자동으로 설정해 준 기본 값
CREATE TABLE account_tbl (
ID varchar(10) PRIMARY KEY,
Age int NOT NULLL CHECK (Age >= 20 and Age < 60),
RegDate datetime DEFAULT(getdate()), -- MS
)
반응형
'SQL' 카테고리의 다른 글
[SQL] 6장. DDL(DROP, ALTER) (0) | 2023.04.27 |
---|---|
[SQL] 5장. 단축키 (0) | 2023.04.27 |
[SQL] 3장. 자료형 (0) | 2023.04.27 |
[SQL] 2장. 주요 키워드 (0) | 2023.04.26 |
[SQL] 1장. DB 기본 (0) | 2023.04.26 |