● 개발목적
MySQL을 통해 간단한 테이블과 데이터값을 생성하고, 이 때 사용되는 열 플래그 (제약조건) 종류들과 그 사용방법에 대해 알아본다.
● 참고
MySQL에서의 테이블 생성 시에는 명령어를 하나하나 수기로 입력해 테이블을 생성할 수도 있겠지만, 본 포스팅에서는 MySQL WorkBench 프로그램을 이용, GUI 환경에서 간편하게 테이블을 생성하는 과정을 알아보도록 한다.
● MySQL WorkBench를 통한 스키마 / 테이블 생성
새로운 스키마 (SCHEMAS)
생성을 위해, 상단의 데이터베이스 모양의 버튼을 클릭한다.
스키마의 이름은 간단하게 DBTest
로 지정하고, Apply
버튼을 클릭해 스키마를 생성한다.
새로 생성한 dbtest
스키마를 더블 클릭하고, 마우스 우측 클릭을 해 Create Table
버튼을 누른다.
● 데이터 타입 (Datatype) 종류와 정의
테이블 이름 (Table Name)
을 지정한다. 가장 간단한 예시인 계정 정보 DB 테이블을 만들어 보고자 하는 의도로 account_info
로 지정했다.
칼럼 이름 (Column Name)
을 지어주어야 하는데, 간단하게 '이름' 정보를 보관할 name
칼럼과 'id' 정보를 보관할 id
칼럼, '비밀번호' 정보를 보관할 pwd
칼럼을 생성했다.
그 후에는 데이터 타입 (Datatype)
을 지정한다. MySQL에서 제공하는 데이터 타입은 굉장히 많지만, 주로 사용하는 몇가지들만 추려서 알아보도록 하겠다.
데이터 타입 유형 | 정의 |
CHAR(크기) | 최대 255byte의 고정 길이 데이터 타입. 설정한 크기보다 작은 데이터값 입력 시 남은 공간은 공백으로 채워짐. |
VARCHAR(크기) | 최대 65535byte의 가변 길이 데이터 타입. 설정한 크기보다 작은 데이터값 입력 시 남은 공간은 채우지 않음. |
INT(크기) | 정수형 데이터 타입. |
DOUBLE(길이, 소수) | 부동 소수형 데이터 타입. |
DATE | 연, 월, 일 형식의 날짜 표현 데이터 타입 |
TIME | 시, 분, 초 형식의 시간 표현 데이터 타입 |
DATETIME | 날짜와 시간을 합친 기간 표현 데이터 타입 |
상황에 알맞는 데이터 타입을 지정했으면, 제약 조건
을 지정한다. 제약 조건에 관련된 설명은 아래와 같다.
● 제약 조건 종류와 정의
제약 조건 유형 | 정의 |
PK (PRIMARY KEY) | NULL값 (빈값) 저장 불가하고, 중복된 값을 가질 수 없음. (NN과 UQ의 조건을 모두 갖는 제약조건.) |
NN (NOT NULL) | NULL값 (빈값) 저장 불가. 무조건 데이터를 가지고 있어야 함. |
UQ (UNIQUE) | 해당 필드에는 서로 다른 값만을 저장할 수 있음. 중복된 값은 저장 불가. |
B | 데이터를 2진 문자열로 저장함. |
UN | 음수 부호 삭제 후, 0부터 시작하여 마지막 값이 2배로 증가되어 삽입됨. ex) 범위 -100 ~ 100 값 전달 시 0 ~ 200 으로 삽입 (범위는 같음) |
ZF (ZERO FILLED) | 해당 필드의 크기보다 작은 값이 전달될 경우, 남은 공간을 0으로 채운 뒤 삽입함. |
AI | 해당 필드의 값 전달 시 마다, 1씩 증가되어 삽입됨. |
G | 다른 열을 기반으로 하는 수식에 의해 생성된 값. |
DEFAULT | 해당 필드의 기본값을 설정할 수 있게 함. 만약, 빈 값이 전달되면 설정된 기본값을 자동으로 저장함. |
참고) https://stackoverflow.com/questions/3663952/what-do-column-flags-mean-in-mysql-workbench
모두 완료되었으면 하단의 Apply
버튼을 클릭한다.
테이블 생성 스크립트를 보여준다. Apply
버튼을 클릭해 테이블을 생성하자.
테이블이 정상적으로 생성되었다.