더북(TheBook)

3.2.2 숫자형

숫자형 역시 문자형처럼 많이 사용하는 데이터 타입입니다. MySQL에서 제공하는 숫자형은 크게 정수형과 실수형으로 나뉩니다. 숫자형 데이터를 선언할 때 MySQL에서는 2가지 옵션을 붙일 수 있는데, 이 내용을 먼저 짚고 넘어가겠습니다.

 

숫자형 선언 시 옵션

숫자형을 선언할 때 붙일 수 있는 옵션은 UNSIGNEDZEROFILL입니다.

첫 번째 옵션인 UNSIGNED는 부호가 없다는 뜻으로, 0과 0보다 큰 수만 입력할 수 있습니다. 따라서 UNSIGNED를 명시하면 양수만, 명시하지 않으면 양수와 음수 모두 입력할 수 있습니다. 예를 들어 저장 가능한 수의 범위가 -10에서 10까지라고 했을 때 UNSIGNED가 붙으면 0에서 20까지입니다. 즉, 숫자 범위는 유지한 채 음수가 저장될 공간을 양수로 넓힌다고 보면 됩니다.

두 번째 옵션인 ZEROFILL은 빈자리를 0으로 채워 저장한다는 뜻으로, 선언된 크기에서 입력된 숫자의 자리를 빼고 남은 나머지 자리를 0으로 채웁니다. ZEROFILL을 붙이면 MySQL은 자동으로 UNSIGNED 옵션을 추가합니다. 그런데 ZEROFILL 옵션은 없어질 예정이라고 하므로 이 책에서는 ZEROFILL 옵션을 사용하지 않습니다.

그럼 숫자형에는 어떤 것들이 있는지 알아봅시다.

 

정수형

TINYINT[(M)] [UNSIGNED] [ZEROFILL]

TINYINT는 -128에서 127 사이의 정수를 저장할 수 있는 데이터 타입입니다. 만약 UNSIGNED 옵션을 붙이면 0에서 255까지 저장할 수 있습니다. []로 표시한 부분은 생략할 수 있다는 뜻으로, 다른 데이터 타입에서도 [] 부분은 같은 의미입니다.

M에는 저장할 수 있는 크기를 명시하는데, 모든 정수형 데이터 타입에서 크기를 지정하는 부분은 향후 버전에서 없어진다고 합니다. TINYINT(1)이나 TINYINT(3)이나 저장할 수 있는 최대 정수는 127입니다(UNSIGNED인 경우는 255)입니다. 따라서 M은 명시하지 말고 TINYINT만 사용하세요.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.