티스토리 뷰
MySQL 필드의 데이터 타입 정리
(대부분 MS-SQL,Access 와 비슷하지만 몇가지가 틀림,
또한 Access 의 경우, 이제 더이상 업그레이드가 되지 않지만,
MS-SQL 의 경우, 계속 업그레이드 되면서 필드 타입도 추가되는 추세임
대표적예: MS-SQL2005 버전에서는 smallint,bigint 등 새로운 타입이 추가되었음?)
-----------------------------------------------------------------------
MySQL 데이터베이스에는 크게 다음과 같은 세 가지 데이터 타입이 있다.
===========================================================
데이터타입 내용 예제
-----------------------------------------------------------
숫자형 숫자를 저장하는 필드 TINYINT, INT, FLOAT
-----------------------------------------------------------
문자형 문자를 저장하는 필드 CHAR, VARCHAR, TEXT, ENUM
-----------------------------------------------------------
날짜형 날짜를 저장하는 필드 DATE, DATETIME, TIMESTAMP
===========================================================
MySQL 데이터 타입의 모든 종류를 외울 필요는 없다.
그러나, 다음의 네 가지 데이터 타입은 상당히 많이 사용되므로 꼭 익혀둘것
INT : 4bytes 정수를 저장할때 사용
CHAR(n) : 문자의 수가 n 개인 문자열을 저장할때 사용
VARCHAR(n) 문자의 수가 최대 n 개인 문자열을 저장할때 사용
TEXT : 문자의 수가 최대 65535 개인 문자열을 저장할때 사용
주의: char 타입은 무조건 n 길이만큼을 차지하고, 출력시에도 n 길이로 체크되지만, varchar 은 실제로 들어있는 문자길이만큼 인식된다.
또한, int 형의 경우, 앞에 0 을 붙여 저장해도 0 이 없어지고, 첫자리는 0 이 아닌 숫자가 나올때까지 0 이 없어진다.
다음은 숫자형, 날짜형, 그리고 문자형의 데이터 타입을 정리해둔 표이다.
숫자형 데이터 타입
=====================================================================================
데이터타입 설명
-------------------------------------------------------------------------------------
TINYINT 가장 작은 숫자형으로 부호가 있는 경우에는 -128 ~ 127,
부호가 없는 경우에는 0 ~ 255 까지 데이터를 다룰 수 있다.
저장할때 필요한 용량은 1바이트이다.
-------------------------------------------------------------------------------------
SMALLINT 부호가 있는 경우에는 -32768 ~ 32767,
부호가 없는 경우에는 0 ~ 65535 까지 다룰 수 있으며,
저장할때 필요한 용량은 2바이트이다.
-------------------------------------------------------------------------------------
MEDIUMINT 부호가 있는 경우에는 -8388608 ~ 8388607,
부호가 없는 경우에는 0 ~ 16777215 까지 데이터를 다룰 수 있으며,
저장할때 필요한 용량은 3바이트이다.
-------------------------------------------------------------------------------------
INT 일반적으로 사용하는 숫자형으로
부호가 있는 경우에는 -2147483648 ~ 2144483647,
부호가 없는 경우에는 0 ~ 4294967295 까지 데이터를 다룰 수 있으며,
저장할때 필요한 용량은 4바이트이다.
-------------------------------------------------------------------------------------
INTEGER int 와 같이 사용한다.
(int 와 같은 뜻인듯하며, 이름만 달리 사용)
-------------------------------------------------------------------------------------
BIGINT 부호가 있는 경우에는 -922337036854775808 ~ 922337036854775807,
부호가 없는 경우에는 0 ~ 18446744073709551615 까지 데이터를 다룰 수 있으며,
저장할때 필요한 용량은 8바이트이다.
-------------------------------------------------------------------------------------
FLOAT 최소값 +_1.175494351E-38 ~ 최대값 +_3.402823466E_38 까지 지원,
4바이트의 크기를 가진다.
-------------------------------------------------------------------------------------
DOUBLE 최소 ±1.7976931348623157E-308, 최대 ±2.2250738585072014E+308 이며,
저장할때 필요한 용량은 8바이트이다.
-------------------------------------------------------------------------------------
DECIMAL 소수를 저장하지만 내부적으로는 문자 형태로 저장되는 타입이다.
예를들어 3.141592 의 경우, 3 이 char 하나의 공간에 저장된다.
=====================================================================================
문자형 데이터 타입
=====================================================================================
데이터타입 설명
-------------------------------------------------------------------------------------
CHAR char(0) 도 지원하며,
실제값이 M보다 작을 때 남는 자릿수만큼 공백을 붙여서 저장한다.
1부터 최대 255 의 자릿수를 지원하며, 지정한 용량만큼 바이트를 사용.
-------------------------------------------------------------------------------------
VARCHAR 지정할 수 있는 길이는 1부터 255까지이며,
지정한 길이보다 작은 데이터를 저장할때 필요한 길이만큼 저장된다.
char 형보다 기억장치를 효율적으로 사용할 수 있다. 지정한용량+1바이트 사용.
-------------------------------------------------------------------------------------
TINYBLOB 최대 255개의 문자를 저장. 지정한 용량+1바이트(L < 2^8 -1) 를 사용.
-------------------------------------------------------------------------------------
TINYTEXT tinyblob 와 같이 사용(이름만 다른듯)
-------------------------------------------------------------------------------------
BLOB 최대 65535 개의 문자를 저장. 지정한 용량+2바이트(L < 2^16 -1)의 용량 사용.
-------------------------------------------------------------------------------------
TEXT blob 와 같이 사용(이름만 다른듯)
-------------------------------------------------------------------------------------
MEDIUMBLOB 최대 16777215 개의 문자를 저장. 지정한 용량+3바이트(L < 2^24 -1) 를 사용.
-------------------------------------------------------------------------------------
MEDIUMTEXT mediumblob 와 같이 사용(이름만 다른듯)
-------------------------------------------------------------------------------------
LONGBLOB 최대 429496729 개의 문자를 저장. 지정한 용량+4바이트(L < 2^32 -1) 를 사용.
-------------------------------------------------------------------------------------
LONGTEXT longbolb 와 같이 사용(이름만 다른듯)
-------------------------------------------------------------------------------------
ENUM 문자 형태인 value 를 숫자로 저장.
value 중에 하나만 저장하며, value 가 255 이하인 경우에는 1바이트,
65535 이하인 경우에는 2바이트를 사용.
=====================================================================================
날짜형 데이터 타입
PHP 의 날짜 및 시간 관련 함수와 비슷하다.
=====================================================================================
DATE '1001-01-01' 부터 '9999-12-31' 까지의 값이 들어갈 수 있으며,
저장할때 3바이트가 필요. 'YYYY-MM-DD' 와 같은 형식.
-------------------------------------------------------------------------------------
DATETIME 날자와 시간을 같이 저장하며,
'1001-01-01 00:00:00' 부터 '9999-12-31 23:59:59' 까지의 값을 다루고,
8바이트가 필요.
'YYYY-MM-DD HH:MM:SS' 와 같은 형식.
-------------------------------------------------------------------------------------
TIMESTAMP '1970-01-01 00:00:00' 이후부터 초를 숫자로 저장하는 자료형으로,
4바이트가 필요.
약 40억초를 저장할 수 있으므로 2037년까지의 값을 다룰 수 있다.
-------------------------------------------------------------------------------------
TIME '-838:59:59' 에서 '838:59:59' 의 값을 다루며,
3바이트를 사용.
HH:MM:SS 와 같은 형식
-------------------------------------------------------------------------------------
YEAR 연도만 저장하는 자료형이다.
year(n)? 와 같은 형식.
n 은 2와 4를 지정할 수 있으며, 2인 경우에 값의 범위는 70 에서 69,
4인 경우에는 1970 에서 2069 이다.
1바이트를 사용.
=====================================================================================
'■ Database ■ > MySQL' 카테고리의 다른 글
DB 데이터타입 지정의 예 (0) | 2014.10.21 |
---|---|
mysql DELETE문 (0) | 2013.10.16 |
mysql에서 UPDATE문 (0) | 2013.10.16 |
MySQL 기본 명령어 정리 (0) | 2013.10.16 |
SQL의 기초 (0) | 2013.10.15 |