Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL Workbench 열 플래그(Flags) 완벽 정리 – PK, NN, AI 등 8가지 의미와 활용법

MySQL Workbench에서 테이블을 설계할 때 각 컬럼(열)에 설정할 수 있는 열 플래그(Column Flags)는 데이터의 무결성을 유지하는 데 중요한 역할을 합니다. 이러한 플래그를 적절히 활용하면 잘못된 데이터 입력을 사전에 방지하고, 데이터베이스 구조를 더욱 견고하게 만들 수 있습니다.

MySQL Workbench에서 확인할 수 있는 주요 열 플래그는 다음과 같습니다.

  • PK – Primary Key (기본 키)
  • NN – NOT NULL (널 값 허용 안 함)
  • BIN – Binary (바이너리)
  • UN – Unsigned (부호 없음)
  • UQ – Unique (고유 값)
  • ZF – Zero Filled (0으로 채우기)
  • G – Generated Column (생성된 열)
  • AI – Auto Increment (자동 증가)

각 플래그의 의미와 사용 방법을 하나씩 자세히 살펴보겠습니다.

1. PK (Primary Key) – 기본 키

PK는 해당 컬럼을 테이블의 기본 키로 지정합니다. 기본 키는 테이블 내에서 각 행(row)을 고유하게 식별하는 역할을 하며, 중복된 값을 가질 수 없고 NULL 값도 허용되지 않습니다. 일반적으로 회원 번호, 상품 코드처럼 고유한 식별자가 필요한 컬럼에 설정합니다.

2. NN (NOT NULL)

NN은 해당 컬럼에 NULL 값을 허용하지 않겠다는 의미입니다. 이 플래그를 설정하면 데이터 삽입 시 반드시 값을 입력해야 하며, 비워두면 오류가 발생합니다. 이름, 이메일 주소처럼 필수로 입력해야 하는 정보에 유용합니다.

3. BIN (Binary) – 바이너리

BIN은 데이터를 바이너리 문자열(binary string) 형태로 저장하도록 합니다. 일반적인 문자열 비교와 달리 대소문자를 엄격하게 구분하여 저장 및 비교하므로, 정확한 바이트 단위의 데이터 처리가 필요한 경우에 사용됩니다.

4. UN (Unsigned) – 부호 없음

UN은 숫자형 컬럼에서 음수를 허용하지 않고 양수만 저장하도록 합니다. 예를 들어 일반 INT 타입은 -2147483648부터 2147483647까지 저장할 수 있지만, UNSIGNED로 설정하면 0부터 4294967295까지 저장 범위가 두 배로 늘어납니다. 나이, 재고 수량처럼 음수가 될 수 없는 값에 적합합니다.

5. UQ (Unique) – 고유 값

UQ는 해당 컬럼에 중복된 값이 입력되지 않도록 강제합니다. 기본 키와 비슷해 보이지만, 기본 키와 달리 NULL 값을 허용할 수 있으며 한 테이블에 여러 개의 UNIQUE 컬럼을 둘 수 있다는 차이점이 있습니다. 사용자 아이디, 이메일 주소처럼 고유해야 하는 데이터에 활용됩니다.

6. ZF (Zero Filled) – 0으로 채우기

ZF는 숫자 앞을 0으로 채워서 표시하는 기능입니다. 예를 들어 컬럼 타입을 int(3)으로 선언하고 값 21을 저장하면, Zero Filled 옵션에 따라 결과가 021로 출력됩니다. 주의할 점은 실제 저장되는 값 자체가 변경되는 것은 아니며, 표시 방식만 달라진다는 것입니다.

7. G (Generated Column) – 생성된 열

G는 생성된 열(Generated Column)을 의미합니다. 생성된 열은 다른 컬럼의 값을 기반으로 계산식이나 표현식을 통해 자동으로 값이 결정되는 컬럼입니다. 예를 들어 '이름'과 '성' 컬럼이 있을 때, 두 값을 합친 '전체 이름' 컬럼을 생성 열로 만들 수 있어 별도의 계산 로직 없이 편리하게 활용할 수 있습니다.

8. AI (Auto Increment) – 자동 증가

AI는 새로운 행이 추가될 때마다 해당 컬럼의 값이 자동으로 1씩 증가하도록 설정합니다. 주로 게시글 번호, 회원 번호처럼 순차적으로 증가하는 고유 식별자가 필요한 경우 기본 키와 함께 많이 사용됩니다.

MySQL Workbench에서 열 플래그 확인하기

MySQL Workbench에서 테이블을 생성하거나 수정하는 화면에서는 위에서 설명한 열 플래그들이 체크박스 형태로 표시됩니다. 원하는 컬럼에 해당 플래그를 체크하기만 하면 손쉽게 제약 조건을 설정할 수 있어, SQL 문을 직접 작성하지 않아도 직관적으로 테이블을 설계할 수 있다는 장점이 있습니다.