===================

MySQL 데이타 타입

===================

1. 숫자형

 

TINYINT    : 1 byte [ 부호 있는 정수 -128 ~ 127, 부호 없는 정수 0 ~ 255 ]

                 자료 설계시  rowid tinyint(3) NOT NULL auto_increment 와 같이 할 때의

                 괄호 안의 수치 )3)는 자료 크기가 아니라 이 데이타를 특정 상황에서 표현할 때

                 몇 자리까지 채우는가 하는 값임. (3)이라고 하면 003 으로 표현해주고 (2)라고

                 하면 02로 표현해 주는 식임. 이하 정수형 자료형에서 모두 동일

SMALLINT   : 2 byte [ 부호 있는 정수 -32,768 ~ 32,767, 부호 없는 정수 0 ~ 65,536 ]
MEDIUMINT  : 3 byte [ 부호 있는 정수 -8,388,608 ~ 8,388,607, 부호 없는 정수 0 ~ 16,777,215 ]
INT        : 4 byte [ 부호 있는 정수 -2,147,483,648 ~ 2,147,483,647, 부호 없는 정수 0 ~ 4,294,967,295 ],

               데이타 베이스 설계시 rowid int(11) NOT NULL auto_increment  할 때

               11은 자료 크기가 아니라 표현하는 자릿수 크기임, 위 tinyint 설명 참조
BIGINT     : 8 byte [ 부호 있는 정수 -9223,372,036,854,775,808 ~ -9223,372,036,854,775,807, 
                      부호 없는 정수 0 ~ 18,446,744,073,709,551,615 ]
FLOAT      : 4 byte [ 부동 소수점 -3.402823488E+38 ~ 3.402823488E+38 ]
DOUBLE     : 8 byte [ 부동 소수점 -1.79769313486231517E+308 ~ 1.79769313486231517E+308 ]
DECIMAL    :  숫자데이터이지만 내부적으로는 String 형태로 저장됨

 

2. 날짜형

 

DATE       : 3 byte 날짜 [ 1000-01-01 ~ 9999-12-31 ]
DATETIME   : 8 byte 날짜와 시간 [ 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 ]
TIMESTAMP  : 4 byte [ 1970-01-01 00:00:00 ~ 2037 년까지]
TIME       : 3 byte 시간 [ -839:59:59 ~ 838:59:59 ] 
YEAR       : 1 byte 연도 [ 1901 년 ~ 2155 년 ]

 

3) 문자형

 

CHAR       : 1 ~ 255 고정 길이 문자열을 표현하는 유형, 
             설계자가 255 이내의 필드 크기를 지정할 수 있음
             이 필드 크기는 사용자의 입력한 문자열의 크기에 상관 없이
             필드 크기만큼 저장 공간이 확보되고, 남은 공간은 0 byte가 채워짐.
VARCHAR    : 1 ~ 255 가변 길이 문자열을 표현하는 유형, 
             설계자가 255 이내의 필드 크기를 지정할 수 있음.
             이 필드 크기는 그 크기 이내로 입력받는다는 의미임.
             실제 저장 길이는 입력한 문자열의 크기+ 1byte임.

 

BINARY     : CHAR와 유사. 텍스트에 표현되지 않는 문자도 입력 가능.
VARBINARY  : VARCHAR와 유사하나 이진 데이타가 저장되는 게 다른 점
             설계자가 255 이내의 필드 크기를 지정할 수 있음.
             이 필드 크기는 그 크기 이내로 입력받는다는 의미임.
             실제 저장 길이는 입력한 문자열의 크기+ 2byte임.
              mydata varbinary(200) default NULL 와 같은 식으로 생성

 

TINYTEXT   : 최대 255 개의 문자의 저장이 가능한 가변 길이 문자형, 
             필드 설정시 최대 크기를 지정하게 되어 있지 않음. 예를 들면
             email tinytext( 220 ) not null 가 아니라 email tinytext not null로 해야 오류 나지 않음.
             설계자가 220 byte의 문장을 입력하였다면 실제 저장 길이는 220+1 byte가 됨.
             아래 TEXT, MEDIUMTEXT, LONGTEXT도 최대 저장 가능 크기 외에는 성격이 같음.
TINYBLOB   : BLOB는 binary large object의 약자로 대용량 바이네리 데이타를 의미하는 말로서
             텍스트에 쓰이는 문자뿐만 아니라 컴퓨터 파일에 쓰이는 아스키 문자 (0 -255 )로 구성된 자료형을
             총칭한다. 이미지,사운드 파일, 아래한글, 실행 파일 등의 모든 파일은 이진 파일로 처리될 수 있다.
             TINYBLOB는 이진 데이타를 저장하는 것 말고는 TINYTEXT와 성격이 같다.

 

TEXT       : 최대 65,535 개의 문자의 저장이 가능한 가변 길이 문자형.
             필드 설정시 최대 크기를 지정하게 되어 있지 않음. 예를 들면
             address text( 520 ) NOT NULL 가 아니라 address text NOT NULL로 해야 오류 나지 않음.
             설계자가 520 byte의 문장을 입력하였다면 실제 저장 길이는 520+2 byte가 됨.
             MEDIUMTEXT, LONGTEXT도 최대 저장 가능 크기 외에는 성격이 같음.
BLOB       : BLOB는 데이타를 이진 데이타로 취급하는 것을 제외하고는 TEXT 자료형과 성격이 같다.

 

MEDIUMTEXT : 최대 16,777,215 개의 문자 저장 가능한 가변 길이 문자형, 
MEDIUMBLOB : MEDIUMBLOB는 데이타를 이진 데이타로 취급하는 것을 제외하고는 MEDIUMTEXT 자료형과 성격이 같다.

 

LONGTEXT   : 최대 4,294,967,295 개의 문자 저장 가능한 가변 길이 문자형,
LONGBLOB   : LONGBLOB는 데이타를 이진 데이타로 취급하는 것을 제외하고는 LONGTEXT 자료형과 성격이 같다.

 

4. 기타

 

ENUM       : 문자열 목록형, 최대 65535개 저장된 문자열 목록 중에서 하나를 택함
SET        : 문자열 목록형, 최대 64개 저장된 문자열 목록 중에서 하나를 택함
BOOL       : false, true 값만 갖는 가장 단순한 자료형.

------------------------------------------------------------------------------------