본문 바로가기

DataBase

SQL Constraints

Constraints (제약조건)

- SQL 테이블에 문제되는/결함있는 데이터가 입력되지 않도록 컬럼별로 미리 지정해 둔 조건.

- 테이블 생성시 추가할 수 있고 테이블 생성 후 ALTER명령어를 통해 추가가 가능하다.

 

Constranits NULL 허용 여부 데이터 중복 여부 특징
NOT NULL NULL 불가 중복 가능  
UNIQUE NULL 가능 중복 불가  
PRIMARY KEY NULL 불가 중복 불가 지정한 속성 유일한 값을 가져야하며, 테이블마다 1개씩 있어야 한다.
FORIEGN KEY
다른 테이블 열을 참조하여 해당 테이블에 존재하는 값만 입력 가능 다른 테이블의 고유키(PRIMARY KEY)를 참조
CHECK
설정한 조건식을 만족하는 데이터만 입력가능 조건식을 만족하지 않는 데이터는 입력이 거부됨

 

PK 설정 방법 

- 테이블 생성시 추가

CREATE TABLE 테이블(
…
CONSTRAINT 제약_조건_이름 PRIMARY KEY (컬럼) );

또는 

CREATE TABLE 테이블(
컬럼 데이터타입 CONSTRAINT 제약_조건_이름 PRIMARY KEY,
…);

- 테이블 생성 후 추가 삭제

-- PK 제약조건 추가
ALTER TABLE '테이블명' ADD PRIMARY KEY ('칼럼명1, 칼럼명2...');
 
-- PK 제약조건 추가(제약조건명 지정)
ALTER TABLE '테이블명' ADD CONSTRAINT '제약조건명' PRIMARY KEY ('칼럼명1, 칼럼명2...');
 
-- 테이블의 PK 제약조건 삭제
ALTER TABLE '테이블명' DROP PRIMARY KEY:

FK 설정 방법

- 테이블 생성시 추가

CREATE TABLE 테이블(
…
CONSTRAINT 제약_조건_이름 FOREIGN KEY (컬럼)
REFERENCES 참조할_테이블 (참조할_컬럼)
[ON DELETE CASCADE | ON DELETE SET NULL]
 );

또는

CREATE TABLE 테이블(

컬럼 데이터타입 CONSTRAINT 제약_조건_이름 FOREIGN KEY
                         REFERENCES 참조할_테이블 (참조할_컬럼)
                         [ON DELETE CASCADE | ON DELETE SET NULL] 

…);

- 테이블 생성 후 추가 삭제

-- FK 제약조견 추가
ALTER TABLE '테이블명' ADD CONSTRAINT '제약조건명' FOREIGN KEY('외래키 칼럼명') 
REFERENCES '참조테이블'('참조테이블_PK') [ON DELET 옵션] [ON UPDATE 옵션]

-- FK 제약조건 삭제
ALTER TABLE '테이블명' DROP CONSTRAINT '제약조건명';

UNIQUE 제약조건 생성 삭제

-- UNIQUE 제약조건 추가
ALTER TABLE '테이블명' ADD UNIQUE ('칼럼명');
 
-- UNIQUE 제약조건 추가(제약조건명 지정)
ALTER TABLE '테이블명' ADD CONSTRAINT '제약조건명' UNIQUE ('칼럼명'); 

-- 제약조건 삭제
ALTER TABLE '테이블명' DROP CONSTRAINT '제약조건명';

'DataBase' 카테고리의 다른 글

[SQL] NULL 관련 함수  (0) 2023.03.20
TOP, LIMIT, ROWNUM  (0) 2023.03.20
MySQL Foregin Key 설정  (0) 2023.03.20
Commit, Rollback, Save Point  (0) 2023.03.20
[DB] DDL, DML, DCL  (0) 2023.03.20