MySQL 에서 사용하는 데이터 타입에 대해서 알아본다.
CHAR 데이터 타입
CHAR와 VARCHAR(VARiable length CHARacter string)은 모두 텍스트 문자열을 허용하고, 필드의 크기를 제한한다. 두 타입의 차이점은 CHAR 필드의 모든 문자열은 크기가 정해진다는 것. 즉 더 작은 문자열을 입력하면 공백으로 채워진다. 반면 VARCHAR의 경우, 텍스트를 채우지 않으며, 입력한 텍스트 크기에 맞게 가변적으로 크기를 가진다. 그러나, VARCHAR는 각 값의 크기를 추적할 수 있는 약간의 오버헤드가 필요하기 때문에 모든 데이터의 크기가 비슷하다면, CHAR가 더 효율적이다.
TYPE | 사용되는 바이트 | 예제 |
CHAR(n) | 정확히 n (<=255) | CHAR(5) 'Hello'는 5바이트 사용 CHAR(50) 'Hello'는 50바이트 사용 |
VARCHAR(n) | 최대 n 까지(<=65535) | VARCHAR(100)'Hello'는 5바이트 사용 VARCHAR(5) 'Hello'는 5바이트 사용 |
BINARY 데이터 타입
BINARY 데이터 타입은 관련된 문자 세트가 없는 문자의 전체 바이트를 저장하는데 사용된다. 예를 들면 GIF 이미지를 저장하는데 사용할 수 있다.
TYPE | 사용되는 바이트 | 예제 |
BINARY(n) 혹은 BYTE(n) | 정확히 n (<=255) | CHAR이지만 바이너리 데이터를 가짐 |
VARBINARY(n) | 최대 n 까지(<=65535) | VARCHAR이지만 바이너리 데이터를 가짐 |
TEXT와 VARCHAR 데이터 타입
TEXT와 VARCHAR에는 작은 차이점이 있다.
TEXT 필드는 기본 값을 가질 수 없다.
MySQL은 TEXT 열의 처음 n 개의 문자만 인덱싱 할 수 있다.
이것은, 만약 전체 내용을 검색할 때는 VARCHAR이 더 알맞고, 빠르다는 것이다.
TYPE | 사용되는 바이트 | 속성 |
TINYTEXT(n) | 최대 n (<=255) | 문자열로 취급 |
TEXT(n) | 최대 n (<=65535) | 문자열로 취급 |
MEDIUMTEXT(n) | 최대 n (<=16777215) | 문자열로 취급 |
LONGTEXT(n) | 최대 n (<=4294967295) | 문자열로 취급 |
BLOB 데이터 타입
BLOB(Binary Large OBject)는 65535 바이트를 넘는 바이너리 데이터에 유용하며, 기본 값을 가질 수 없다.
TYPE | 사용되는 바이트 | 속성 |
TINYBLOB(n) | 최대 n (<=255) | 바이너리 데이터로 취급 |
BLOB(n) | 최대 n (<=65535) | 바이너리 데이터로 취급 |
MEDIUMBLOB(n) | 최대 n (<=16777215) | 바이너리 데이터로 취급 |
LONGBLOB(n) | 최대 n (<=4294967295) | 바이너리 데이터로 취급 |
숫자형 데이터 타입
TYPE | 사용되는 바이트 | 최소 값 (signed/unsigned) |
최대 값 (signed/unsigned) |
TINYINT | 1 | -128 0 |
127 255 |
SMALLINT | 2 | -32768 0 |
32767 65535 |
MEDIUMINT | 3 | -8388608 0 |
8388607 16777215 |
INT or INTEGER | 4 | -2147483648 0 |
2147483647 4294967295 |
BIGINT | 8 | -9223372036854775808 0 |
9223372036854775807 18446744073709551615 |
FLOAT | 4 | -3.40E+45 (no unsigned) |
3.40E+45 (no unsigned) |
DUBLE or REAL | 8 | -1.7976E+320 (no unsigned) |
1.7976E+320 (no unsigned) |
'프로그래밍 > 데이터베이스' 카테고리의 다른 글
[데이터베이스] 다양한 DB에서의 validation Query (0) | 2023.03.07 |
---|---|
[mySQL] MySQL에서 대용량 테이블의 경우 성능 개선을 위한 10 가지 방안 (0) | 2023.03.07 |
[MSSQL] 시스템 오브젝트에서 특정 테이블/함수 검색하는 쿼리 (0) | 2023.03.06 |
[오라클] SQLTools 무료 오라클 SQL 툴 (0) | 2023.03.06 |
[오라클]오라클과 NLS의 찰떡궁합 들여다보기(2) = characterset 변경 (0) | 2023.03.06 |
댓글