1. SQL 시작하기 > 1-4. 자료형

자료형

자료형 (data type)은 저장 공간을 효율적으로 사용하기 위해 바이트 수를 미리 정의하는 것 입니다. 예를 들어 나이와 관련한 데이터를 저장할 때, 나이는 최대 3자리 수(3byte) 이상을 넘어가지는 않으니 TINYINT (~127)로 지정한다면 저장 공간이 낭비되지 않습니다. (메모리를 적게 차지하니까 그만큼 컴퓨터의 연산 속도도 빨리집니다!) 이처럼 데이터베이스의 TABLE을 만들 때는 각 COLUMN의 데이터 타입을 저장하는 데이터의 종류, 크기에 따라 지정해주는 과정이 필요합니다. 따라서 적합한 데이터 타입을 지정해주기 위해서는 데이터 타입 종류에 대한 이해 및 암기가 필요합니다.

아래 표에는 거의 모든 데이터 타입이 정리되어 있는데, 이 중에서 숫자형의 INT와 문자형의 VARCHAR(), TEXT 등 많이 사용되는 몇 가지의 타입만 기억해두면 됩니다.
추가로, 가변 길이 데이터 타입인 VARCHAR와 고정 길이 데이터 타입인 CHAR의 차이를 예시를 통해 덧붙이겠습니다. 예를 들어, 'ABC' 라는 데이터가 입력되었을 때, VARCHAR(5)로 지정된 COLUMN에서는 ABC 세 자리만 저장하고 남은 두 자리는 채우지 않습니다. 반면 고정형인 CHAR(5)로 지정된 COLUMN에서는 ABC 세 자리를 채운 뒤, 남은 두 자리는 공백(SPACE)으로 채우게 됩니다. 즉, 정해진 길이보다 입력된 데이터의 길이가 짧을 경우, 고정 길이는 그대로 인식하고 가변 길이는 유동적으로 인식한다는 것입니다. VARCHAR가 CHAR에 비해 아주 미세하게 느린 특징이 있으니 상황에 따라 적절하게 선택하면 됩니다.

데이터 타입정의
숫자형INT정수형 데이터 타입(4byte). -2147483648 ~ +2147483647 또는 0 ~ 4294967295수 표현 가능
숫자형TINYINT정수형 데이터 타입(1byte). -128 ~ +127 또는 0 ~ 255수 표현 가능
숫자형SMALLINT정수형 데이터 타입(2byte). -32768 ~ 32767 또는 0 ~ 65536수 표현 가능
숫자형MEDIUMINT정수형 데이터 타입(3byte). -8388608 ~ +8388607 또는 0 ~ 16777215수 표현 가능
숫자형BIGINT정수형 데이터 타입(8byte). 무제한 수 표현 가능
숫자형FLOAT(정수부 길이, 소수부 자릿수)부동 소수형 데이터 타입(4byte). 고정 소수점을 사용하는 형태
숫자형DECIMA(정수부 길이, 소수부 자릿수)고정 소수형 데이터 타입(길이+1byte). 소수점을 사용하는 형태
숫자형DOUBLE(정수부 길이, 소수부 자릿수)부동 소수형 데이터 타입(8byte). DOUBLE을 문자열로 저장
문자형VARCHAR(n)가변 길이 데이터 타입 (n <= 65535)
문자형CHAR(n)고정 길이 데이터 타입 (n <= 255)
문자형TEXT(n)문자열 데이터 (n <= 65535)
문자형TINYTEXT(n)문자열 데이터 (n <= 255)
문자형MEDIUMTEXT(n)문자열 데이터 (n <= 16777215)
문자형LONGTEXT(n)문자열 데이터 (n <= 4294967295)
날짜형DATE날짜(YYYY-MM-DD) 형태의 기간 표현 데이터 타입(3byte)
날짜형TIME시간(hh:mm:ss) 형태의 기간 표현 데이터 타입(3byte)
날짜형DATETIME날짜와 시간 (YYYY-MM-DD hh:mm:ss) 형태의 기간 표현 데이터 타입(8byte)
날짜형TIMESTAMP날짜와 시간 형태의 기간 표현 데이터 타입(4byte) 시스템 변경 시 자동으로 그 날짜와 시간이 저장
날짜형YEAR(n)연도 표현 데이터 타입(1byte) n은 2또는 4로 지정가능.

데이터 타입에 대한 추가적인 학습 및 예시는 아래의 링크를 참고해보세요.
참고자료 / TCP School - 타입

마지막으로 업데이트 된 날짜:
2022년 9월 24일