본문 바로가기

Data/MariaDB

DB] 제약 조건(constraint) 1 - 기본 키 제약 조건 / NOT NULL

 

제약 조건은 테이블에 저장되는 데이터를 제약하는 특정 규칙으로

컬럼에 데이터를 넣을 경우 특정한 조건을 만족시켜야 할 경우에 사용한다.

즉, 지정된 조건에 맞지않으면 데이터 입력이 안되기 때문에 데이터의 정확성이 유지된다.

 

기본 키 제약 조건 ( PK ) - primary key

NOT NULL

참조 제약 조건 (외래키, 참조키 , FK) - foreign key references

연계 참조 무결성 제약 조건 - on delete cascade

유니크 제약 조건 ( 유니크 키, 후보 키) - unique

체크 제약 조건 - check

 

 

1. 기본 키 제약 조건 (Primary Key, PK)

- 테이블 당 1개만 존재

- 중복 허용 안함, NULL 허용 안함

- 한 개의 컬럼에 지정하는 것이 일반적이지만 최대 16개 컬럼에 지정할 수 있다.
=> 복합 키

 

테이블 생성 시 지정하는 방법 ( 가장 일반적으로 많이 사용 )

기본 키로 지정할 컬럼 옆에 primary key 적기

혹은

컬럼 다 적어준 뒤 따로 적어주기! 이 경우 복합 키 가 된다.

- 복합 키 : 한 개 이상의 컬럼이 합쳐져서 만들어진 키, 16개 까지 가능

 

이미 만들어진 테이블에 추가하는 방법
ALTER TABLE [테이블 이름] ADD CONSTRAINT [이름] [제약조건 종류] ([적용 필드]);

만들어진 테이블을 수정하는 것이기 때문에 ALTER 사용!

 

테이블 구조 확인하는 쿼리문 desc employees; 로 보면

emp_no의 Key 부분에 PRI (primary 의 약자) 가 있다.

혹은

제약 조건 검색 쿼리문
select * from information_schema.TABLE_CONSTRAINTS tc where TABLE_NAME = 'employees'; 로 보면

근데 어느 컬럼이 기본 키 인지는 안나온다.??

 

 

2. NOT NULL 제약 조건

- 제약 조건이라기 보다는 컬럼의 속성으로 취급한다.

- 따라서 제약 조건 검색 쿼리문이 아닌 테이블 구조를 확인하면 알 수 있다.

sec_col 이 not null - Null 부분에 NO 라서 not null

 

테이블 생성시 추가하는 방법

not null 을 적어준다.

 

이미 존재하는 테이블에 추가하는 방법
ALTER TABLE [테이블명] MODIFY [컬럼명] [데이터타입]([사이즈]) NOT NULL;

속성 취급 -> 테이블 속성 변경과 같다.

테이블 속성 변경

 

 

제약 조건 삭제
ALTER TABLE [테이블 이름] DROP [제약조건 종류];

 

 

> 제약 조건 2 -