06 제약조건(constraint)
제약 조건(constraint)
제약 조건(constraint)이란 데이터의 무결성을 지키기 위해, 데이터를 입력받을 때 실행되는 검사 규칙이다.
이러한 제약 조건은 CREATE 문으로 테이블을 생성할 때나 ALTER 문으로 필드를 추가할 때도 설정할 수도 있다.
사용할 수 있는 제약조건은 아래와 같다.
1. NOT NULL
2. UNIQUE
3. PRIMARY KEY
4. FOREIGN KEY
5. DEFAULT
1. NOT NULL
NOT NULL은 단어의 뜻 그대로, 해당하는 필드에 NULL 값을 저장할 수 없다.
[문법]
- CREATE 문으로 설정
CREATE TABLE 테이블명(
필드명 필드타입 NOT NULL,
...
);
- ALTER 문으로 설정
--새로운 필드를 추가할 때 NOT NULL 설정
ALTER TABLE 테이블명 ADD 필드명 필드타입 NOT NULL;
--기존 필드에 NOT NULL 설정
ALTER TABLE 테이블이름 MODIFY COLUMN 필드이름 필드타입 NOT NULL
[예시]
CREATE TABLE JOIN
(
USERID VARCHAR2(300) NOT NULL,
USERPW VARCHAR2(300)
);
ALTER TABLE JOIN MODIFY COLUMN USERPW VARCHAR2(300) NOT NULL
2. UNIQUE
UNIQUE 제약조건이 걸린 필드는 서로 다른 값을 가져야 한다.
즉, 이 제약 조건이 설정된 필드는 중복된 값을 저장할 수 없다.
[문법]
- CREATE 문으로 설정
--1번
CREATE TABLE 테이블이름(
필드명 필드타입 UNIQUE,
...
)
--2번 : 제약 조건에 이름을 설정할 수 있다.
CREATE TABLE 테이블이름(
필드이름 필드타입,
...,
CONSTRAINT 제약조건이름 UNIQUE (필드이름)
)
- ALTER 문으로 설정
-- 새로운 필드에 추가할 때
--1번
ALTER TABLE 테이블이름 ADD 필드이름 필드타입 UNIQUE;
--2번
ALTER TABLE 테이블이름 ADD CONSTRAINT 제약조건이름 UNIQUE (필드이름);
-- 기존 필드에 설정할 때
--1번
ALTER TABLE 테이블이름 MODIFY COLUMN 필드이름 필드타입 UNIQUE
--2번
ALTER TABLE 테이블이름 MODIFY COLUMN CONSTRAINT 제약조건이름 UNIQUE (필드이름)
[예시]
CREATE TABLE JOIN
(
USERID VARCHAR2(300) UNIQUE,
USERPW VARCHAR2(300)
);
ALTER TABLE JOIN ADD CONSTRAINT Q_usernum UNIQUE(USERNUM);
3. PRIMARY KEY
PRIMARY KEY 제약 조건을 설정하면, 해당 필드는 NOT NULL과 UNIQUE 제약 조건의 특징을 모두 가진다.
따라서 이 제약 조건이 설정된 필드는 NULL 값을 가질 수 없으며, 또한 중복된 값을 가져서도 안 된다.
이러한 PRIMARY KEY 제약 조건을 기본 키라고 한다.
UNIQUE는 한 테이블의 여러 필드에 설정할 수 있지만
PRIMARY KEY는 테이블당 오직 하나의 필드에만 설정할 수 있다.
이러한 PRIMARY KEY 제약 조건은 테이블의 데이터를 쉽고 빠르게 찾도록 도와주는 역할을 한다.
[문법]
- CREATE 문으로 설정
--1번
CREATE TABLE 테이블이름(
필드이름 필드타입 PRIMARY KEY,
...
)
--2번 : 제약 조건에 이름을 설정할 수 있다.
CREATE TABLE 테이블이름(
필드이름 필드타입,
...,
CONSTRAINT 제약조건이름 PRIMARY KEY (필드이름)
)
- ALTER 문으로 설정
-- 새로운 필드에 추가할 때
--1번
ALTER TABLE 테이블이름 ADD 필드이름 필드타입 PRIMARY KEY;
--2번
ALTER TABLE 테이블이름 ADD CONSTRAINT 제약조건이름 PRIMARY KEY (필드이름);
-- 기존 필드에 설정할 때
--1번
ALTER TABLE 테이블이름 MODIFY COLUMN 필드이름 필드타입 PRIMARY KEY;
--2번
ALTER TABLE 테이블이름 MODIFY COLUMN CONSTRAINT 제약조건이름 PRIMARY KEY (필드이름);
PRIMARY KEY 제약 조건을 추가할 기존 필드는 NULL 값을 갖지 않도록 먼저 선언되어 있어야 한다.
[예시]
CREATE TABLE JOIN
(
USERID VARCHAR2(300) PRIMARY KEY,
USERPW VARCHAR2(300)
);
ALTER TABLE JOIN CONSTRAINT PK_USERID ADD PRIMARY KEY (USERID);
4. FOREIGN KEY
https://yoonhihi.tistory.com/147?category=973755
04 외래키(Foreign Key)
외래키(Foreign Key) FOREIGN KEY 제약 조건을 설정한 필드는 외래 키라고 부르며, 한 테이블을 다른 테이블과 연결해주는 역할을 한다. 외래 키가 설정된 테이블에 레코드를 입력하면, 기준이 되는 테
yoonhihi.tistory.com
5. DEFAULT
DEFAULT 제약 조건은 해당 필드의 기본값을 설정할 수 있게 해준다.
만약 레코드를 입력할 때 해당 필드 값을 전달하지 않으면, 자동으로 설정된 기본값을 저장한다.
- CREATE 문으로 설정
CREATE TABLE 테이블이름(
필드이름 필드타입 DEFAULT 기본값,
...
)
- ALTER 문으로 설정
--새로운 필드를 추가할 때
ALTER TABLE 테이블이름 ADD 필드이름 필드타입 DEFAULT 기본값;
--기존 필드에 설정
--1번
ALTER TABLE 테이블이름 MODIFY COLUMN 필드이름 필드타입 DEFAULT 기본값;
--2번
ALTER TABLE 테이블이름 ALTER 필드이름 SET DEFAULT 기본값;
[예시]
CREATE TABLE JOIN(
USERNAME VARCHAR2(300) DEFAULT 'Anonymous',
USERID VARCHAR2(300) PRIMARY KEY,
USERPW VARCHAR2(300)
);
ALTER TABLE JOIN ALTER USERNAME SET DEFAULT 'Anonymous';
열심히 공부하고 있지만, 오류 사항이 존재 할 수 있습니다.
수정 사항이 존재 할 경우 알려주시면 감사하겠습니다 <(__)>