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 |