데이터베이스

Total 205
Today 0
profile_image
최고관리자
07-03-12 15:39 0개 478회
MySQL
MySQL의 자료형은
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 홈페이지에서 이동 됨]

추천 0 비추천 0

댓글목록

등록된 댓글이 없습니다.