
피곤한 오후...오늘은 제약조건에 대해 정리해보자.
제약조건은 컬럼에 데이터를 넣을 때 특정한 조건을 만족시켜야 할 경우 사용한다.
1. 기본키 제약조건(Primary Key, PK)
테이블당 1개만 존재하며, 중복과 null을 허용하지 않는다. 한 개의 컬럼에 지정하는 것이 일반적이지만 최대 16개 컬럼에 지정할 수 있다. 일반적으로 가장 많이 사용하는 방법은 테이블 생성시 함께 기본키를 지정하는 것이다.
|
1
2
3
4
|
create table pkTest(
first_col int(3) primary key
,sec_col varchar(4)
);
|
cs |
이미 만들어놓은 테이블에 키를 추가할 경우에는,
alter table [테이블 이름] add constraint [이름] [제약조건 종류] [적용 필드];
|
1
|
alter table employees add constraint pk_employees primary key (emp_no);
|
cs |
이러한 방식으로 사용한다.
기본키를 설정해놓으면 중복으로 데이터가 들어갈 수 없으며, upsert를 사용할 수 있게 된다.(조건을 설정했으므로)
2. Not null 제약조건
not null 제약조건은 제약조건이라기 보다는 컬럼의 속성으로 취급하는 것이 편하다.
테이블 생성시 추가할 수 있으며,
|
1
2
3
4
|
create table pkTest(
first_col int(3) primary key
,sec_col varchar(4) not null
);
|
cs |
이미 존재하는 테이블에도 추가가 가능하다.
alter table [테이블명] modify [컬럼명][데이터타입]([사이즈]) not null;
|
1
2
|
alter table pktest modify sec_col varchar(4) not null;
|
cs |
3. 제약조건 확인과 삭제
not null은 속성으로 취급하므로 아래 쿼리로 찾을 수 없다. ''에는 테이블명을 넣는다.
|
1
2
|
select * from information_schema.TABLE_CONSTRAINTS where TABLE_NAME = 'pktest';
|
cs |
제약조건 삭제는 drop을 이용한다.
alter table [테이블 이름] drop [제약조건 종류];
|
1
2
|
alter table pktest drop primary key;
|
cs |
'Database' 카테고리의 다른 글
| Join(조인) (0) | 2022.04.28 |
|---|---|
| 집합(Union) (0) | 2022.04.28 |
| 서브 쿼리(Sub Query) (6) | 2022.04.27 |
| 참조제약 조건과 연계 참조 무결성 제약조건 (0) | 2022.04.26 |
| Table 만들기 (0) | 2022.04.25 |