MySQL의 자료형은 표준 SQL 자료형과 거의 일치한다.
자료형은 String, Numeric, Date/Time 의 3가지 자료형으로 구분한다.
Numeric 자료형에서 Zerofill이란 숫치 앞부분을 자료형 크기만큼 '0'을 채워넣는다는 의미.
실예로, 자료형이 0~255까지 인데서 1이면 001이 돼고, 30은 030, 이런식이다.
Numeric 자료형
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
signed : -128~127, unsigned: 0~255, 2^8
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
signed: -32768~32767, unsigned: 0~65535, 2^16
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
signed: -8388608~8388607, unsigned: 0~16777215, 2^24
INT[(M)] [UNSIGNED] [ZEROFILL]
signed: -2147483648~2147483647, unsigned: 0~4294967295, 2^32
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
signed: -9223372036854775808~9223372036854775807, unsigned: 18446744073709551616, 2^64
FLOAT[(precision)] [ZEROFILL]
부동소숫점이면 unsigned될 수 없다. 2^128
1.7014118346046923173168730371588e-38~1.7014118346046923173168730371587e+38
FLOAT[(M,D)] [ZEROFILL]
부동소숫형으로 아이고 머리아파 모르겠다. 하여튼 크다. 두뇌의 한계로 포기.
DOUBLE[(M,D)] [ZEROFILL]
@#%^(&&^)(* 두뇌시스템 에러. 그냥 FLOAT보다 많다고만 알면 됨.
REAL[(M,D)] [ZEROFILL]
위에 DOUBL캉 같다고 보면 됨.
날짜 자료형.
DATE
'1000-01-01' ~ '9999-12-31'을 지원합니다.
Format: 'YYYY-MM-DD'
DATETIME
'1000-01-01 00:00:00'~'9999-12-31 23:59:59' 까지 지원.
Format: 'YYYY-MM-DD HH:MM:SS'
TIMESTAMP[(M)]
Timestamp 나도 몰라.
TIME
이것도 몰라.
YEAR[(2|4)]
넘어가자.
문자 자료형
[NATIONAL] CHAR(M) [BINARY]
1~255개까지의 고정길이형 문자열. 고정폭이므로 왼쪽부터 저장하고 남은공간은 곤백으로 채움
[NATIONAL] VARCHAR(M) [BINARY]
1~255개까지의 가변길이형 문자열. 가변적 길이이므로 문자의 길이만 정하고 저장할 공간을 크기만큼 따로 확보한다.
그러므로 사용자와는 무관하지만 저장공간을 CHAR보다는 1BYTE가 더 많게된다.
TINYBLOB, TINYTEXT
최대길이 255(2^8) - 1) 의 BLOB, TEXT 형
BLOB, TEXT
최대길이 65535(2^16 -1)의 BLOB, TEXT형
LONGBLOB, LONGTEXT
최대길이 4294967295(2^32 - 1)의 BLOB, TEXT형
마지막으로 알아야 할 점 BLOB과 TEXT형
1. 인덱스를 생성할 수 없다.
2. 지정된 최대크기보다 작은 문자열이 저장시에도 공백이 제거되지 않는다.
3. 기본값을 지정할 수 없으므로 NOT NULL 은 무효이다.
4. 테이블이 아닌 다른 영역에 저장된다.
[이 게시물은 최고관리자님에 의해 2007-08-07 16:26:20 홈페이지에서 이동 됨]

최고관리자
07-03-12 15:39
0개
481회
MySQL
MySQL의 자료형은
추천
0
비추천
0
댓글목록
등록된 댓글이 없습니다.