언어/MySQL

[MySQL / Workbench] 열 플래그 의미(PK / NN / UQ / BIN / UN / ZF / AI / Default/Expression)? 제약조건!

보리시스템 2022. 11. 30.

[들어가며]

 

MySQL 워크벤치에서 데이터를 만들 때 열(Column)에서 PK, NN, UQ, BIN, UN, ZF, AI, Default/Expression를 볼 수 있는데, 이는 제약 조건을 의미한다. 각각 어떤 의미인지 설명하고자 한다.

 

 


 

 

[MySQL 제약조건]

 

PK Primary key - 기본 키 (중복이나 빈값(NULL)이 들어올 수 없음)
NN Not Null - Null(빈값)이 들어올 수 없음
B Binary - 데이터를 이진 문자열((010101)로 저장함
UN Unsigned data type
- 부호 없음 (음수가 아닌 숫자만 해당)

- INT, DOUBLE 등의 경우 UN을 사용하면 -값~+값의 범위인 경우 -값은 없어지고 +값만 2배로 늘어남

*예시 : 범위가 -50 ~ 50인 경우 범위는 동일하지만 0에서 시작해 0 ~ 100으로 됨

UQ  Unique 중복 값을 넣을 수 없음
ZF Zero Filled
- 열 크기보다 작은 값을 넣은 경우 0으로 채운 뒤 삽입시킴

- INT(5)인 경우 모든 필드는 5번째 자리까지 0으로 채워짐

* 예시 : 11 = 00011, 864 = 00864 등으로 0으로 채워짐

AI Auto Increment - Insert 시마다 값이 1씩 늘어남
G Generated Column - 다른 열을 기반으로 한 수식으로 생성된 값
Default/
Expression
- - 기본값, 기본값에 수식 설정

 

 


 

[참조]

 

1. https://stackoverflow.com/questions/3663952/what-do-column-flags-mean-in-mysql-workbench

 

What do column flags mean in MySQL Workbench?

In MySQL Workbench table editor there are 7 column flags available: PK, NN, UQ, BIN, UN, ZF, AI. PK obviously stands for Primary Key. What about others?

stackoverflow.com

2. https://wakestand.tistory.com/451

 

MySQL 테이블 생성 및 제약조건 설정방법 정리

MySQL에서 테이블 생성 시에는 CREATE TABLE 테이블명 ( 컬럼명 데이터타입 제약조건 ) 이런 식으로 사용하게 되는데 직접 타이핑을 쳐서 테이블을 만들 수도 있지만 MySQL Workbench에서 편하게 만들 수

wakestand.tistory.com