본문 바로가기

무언가 만들기 위한 지식/Database

My-SQL DataType(자료형)

                                                        MySql 자료형

* (M) : 정수형자리 (D) : 소수점자리

자료형

표 현

길 이

Numeric

TINYINT[(M)]

signed : -128~127,

unsigned: 0~255, 2^8

SMALLINT[(M)]

signed: -32768~32767,

unsigned: 0~65535, 2^16

MEDIUMINT[(M)]

signed: -8388608~8388607,

unsigned: 0~16777215, 2^24

INT[(M)]

signed: -2147483648~2147483647,

unsigned: 0~4294967295, 2^32

BIGINT[(M)]

signed: -9223372036854775808~9223372036854775807,

unsigned: 18446744073709551616, 2^64

FLOAT[(precision)]

단정도 부동소수점 실수

signed: : -3.402823466E+38 ~ 1.175494351E-38,

unsigned: 1.175494351E-38 ~ 3.402823466E+38)

DOUBLE[(M,D)]

배정도 부동소수점 실수

signed: -1.7976931348623157E+308 ~ -2.2250738585072014E-308

unsigned: 2.2250738585072014E-308 ~ 1.7976931348623157E+308

REAL[(M,D)]

위에 DOUBLE과 같다고 보면 됨. DECIMAL 부동 소수점 실수 CHAR 형태로 동작

날 짜

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)]

1970-01-01 ~ 2037년 임의 시간

TIME

-838:59:59 ~ 838:59:59

YEAR [(2|4)]

901 ~ 2155, 0000

문 자

CHAR(M) [BINARY]

1~255개까지의 고정길이형 문자열.

고정폭이므로 왼쪽부터 저장하고 남은공간은 곤백으로 채움

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형

MEDIUMBLOB /

MEDIUMTEXT BOLB

TEXT형, 최대길이 16777215문자

LONGBLOB /

LONGTEXT BOLB

최대길이 4294967295문자

기 타

ENUM 문자열 목록형

최대 65535개, 저장된 문자열 목록 중에 오직 한가지만 얻을 수 있습니다.

SET 문자열 목록형

최대 64개, 저장된 문자열 목록 중에 0, 1개 이상을 얻을 수 있습니다

BOOL

false, true 값만 갖는 가장 단순한 자료형.


BLOB과 TEXT형의 기타 사항
1. 인덱스를 생성할 수 없다.
2. 지정된 최대크기보다 작은 문자열이 저장 시에도 공백이 제거되지 않는다.
3. 기본 값을 지정할 수 없으므로 NOT NULL 은 무효이다.
4. 테이블이 아닌 다른 영역에 저장된다.

[출처]작성자 실버트리


위 링크시킨 네이버에서 퍼온 자료형이다. 혼자 보고 정리할려다가 좀 무식한 짓 같아서 패스...
크게 숫자형, 문자형, 날짜형, Bool 형으로 나뉜다.(많이 쓰고 큼직큼직)
물론 Bool형은 기타 중에서 가장 많이 쓰이기때문에 넣은 것이고
숫자와 문자, 날짜가 있다.
숫자의 경우 C언어의 자료형과 비슷하게 INT, FLOAT, DOUBLE, REAL로 구성되고
날짜의 경우 DATE, TIME으로 구성된다.
문자(열)의 경우 CHAR형과 VARCHAR형, BLOB, TEXT형으로 나뉜다.
(그밖에 DEC라는 십진표현 형식도 있다.)

문자열의 경우 신선하고 재미있는데 위의 설명과 같다. VARCHAR형은 가변적이고 CHAR는 고정적이다. 공간이 남으면 CHAR형에서는 빈공백으로 처리하지만 VARCHAR의 경우 저장한 길이가 저장된다.
특이하고 낫선 BLOB, TEXT의 경우 아주 긴 문자열을 저장할때 사용된다고 한다. 그 특이 한 점은 위에 있는데로 NOT NULL처리가 되지 않고 인덱스를 생성할 수 없으며 공백제거가 되지 않으면 테이블이 아닌 다른 영역에 저장된다.

자료형이 중요한 이유는 속도처리면에서다. 해당 상황에서 적절한 자료를 사용해야지 최적화되고 빠른 응답과 질의가 이루어진다. 특히 속도를 중요시하는 DB쪽에서 알맞은 자료형을 찾아써야하는 것은 당연한 일이다.

'무언가 만들기 위한 지식 > Database' 카테고리의 다른 글

SELECT 문 And WHERE절  (1) 2010.04.09
DELETE문 UPDATE문  (0) 2010.04.06
CREATE TABLE 옵션 NULL, DEFAULT  (0) 2010.04.06
DROP, INSERT, SELECT  (0) 2010.04.06
CREATE, USE, DESC  (0) 2010.02.24