반응형

출처:https://otoong.tistory.com/entry/MYSQL-%EB%AC%B8%EC%9E%90%EC%97%B4-%ED%83%80%EC%9E%85-1-column-type


 MySQL의 문자열 타입은 주로 텍스트를 저장하는데 쓰이지만, 임의의 데이터를 담을 수 있는 범용 타입이다. 이 타입들은 최대 길이가 변하는 값들을 담을 수 있고 대 소문자를 구별해서 처리하는 지에 따라 선택할 수 있다.

MySQL 4.1부터 CHAR, VARCHAR 그리고 TEXT 타입에 대해 문자 세트를 특정 칼럼에 적용할 수 있다. 문법은 CHARACTER SET charset 이고, 여기서 charset은 latin1, greek혹은 utf8과 같은 문자 세트 식별자이다. 서버에 의해 지원되는 허용되는 문자 세트는 SHOW CHARACTER SET문을 실행해서 정해질 수 있다. CHAR이나 VARCHAR 칼럼에 대해 문자 세트를 적용하면 보통 이들 타입에 허용되는 BINARY 속성의 사용이 미리 막혀 버린다는 것에 주의하라.

CHAR [ (M) ]

의미 : 0부터 M바이트 길이의 고정 길이의 문자를 가진 문자열. M은 0부터 255이하의 정수 값 이어야 한다. M을 생략하면 1이 기본값으로 주어진다. M문자보다 큰 문자열은 저장할 때 M길이로 잘린다. M보다 짧은 문자열은 저장될 때 오른쪽이  공백문자로 채워진다. 채워진 공백은 값을 가져올 때 제거된다.
가능한 속성 : BINARY, CHARACTER SET
허용되는 길이 : 0부터 M바이트
기본 값 : 칼럼이 NULL이 가능하면 NULL, 그렇지 않으면 ''(빈 문자열)
필요한 저장공간 : M바이트
비교 : BINARY속성이 지정되지 않으면, 대소문자를 비교하지 않음
동의어 : 인자 없는 CHAR는 CHAR(1)에 대한 동의어이다.


VARCHAR [ (M) ]


의미 
: 0부터 M바이트 길이의 가변 길이 문자열. M은 0부터 255미만까지의 정수라야 한다. M문자보다 긴 문자열은 저장될 때 길이 M까지로 잘려나간다. 뒤쪽의 공백문자들은 저장될 때 제거된다.
허용되는 속성들 : BINARY, CHARACTER SET
허용되는 길이 : 0부터 M바이트
디폴트 값 : 칼럼에 NULL이 가능하면 NULL, 그렇지 않으면 ''(빈 문자열)
필요한 저장공간 : 값의 길이에 그 길이를 기록하기위한 1바이트를 더함
비교 : BINARY 속성이 지정되지 않으면 대소문자 구별하지 않음
동의어 : CHAR VARYING(M). MySQL 3.23.5부터 NCHAR VARYING(M)와 NATIONAL CHAR VARYING(M)는 VACHAR(M)에 대한 동의어이다.


TINYBLOB


의미 
: 작은 BLOB값
허용되는 속성들 : 전역 속성 외에는 없음
허용되는 길이 : 0부터 255바이트
디폴트 값 : 칼럼에 NULL이 가능하면 NULL, 그렇지 않으면 ''(빈 문자열)
필요한 저장공간 : 값의 길이에 그 길이를 기록하기 위한 1바이트를 더함
비교 : 대소문자 구별함


BLOB


의미 
: 보통 크기의 BLOB값
허용되는 속성들 : 전역 속성 외에는 없음
허용되는 길이 : 0부터 65535바이트
디폴트 값 : 칼럼에 NULL이 가능하면 NULL, 그렇지 않으면 ''(빈 문자열)
필요한 저장공간 : 값의 길이에 그 길이를 기록하기 위한 2바이트를 더함
비교 : 대소문자 구별함


MEDIUMBLOB


의미 
: 중간 크기의 BLOB값
허용되는 속성들 : 전역 속성 외에는 없음
허용되는 길이 : 0부터 16777215바이트
디폴트 값 : 칼럼에 NULL이 가능하면 NULL, 그렇지 않으면 ''(빈 문자열)
필요한 저장공간 : 값의 길이에 그 길이를 기록하기 위한 3바이트를 더함
비교 : 대소문자 구별함
동의어 : LONG VARBINARY


LONGBLOB


의미 
: 큰 BLOB값
허용되는 속성들 : 전역 속성 외에는 없음
허용되는 길이 : 0부터 4294967295바이트
디폴트 값 : 칼럼에 NULL이 가능하면 NULL, 그렇지 않으면 ''(빈 문자열)
필요한 저장공간 : 값의 길이에 그 길이를 기록하기 위한 4바이트를 더함
비교 : 대소문자 구별함


TINYTEXT


의미 
: 작은 크기의 TEXT값
허용되는 속성 : CHARACTER SET
허용되는 길이 : 0부터 255바이트
디폴트 값 : 칼럼에 NULL이 가능하면 NULL, 그렇지 않으면 ''(빈 문자열)
필요한 저장공간 : 값의 길이에 그 길이를 기록하기 위한 1바이트를 더함
비교 : 대소문자를 구별하지 않음


TEXT


의미 
: 보통 크기의 TEXT값
허용되는 속성들 : CHARACTER SET
허용되는 길이 : 0부터 65535바이트
디폴트 값 : 칼럼에 NULL이 가능하면 NULL, 그렇지 않으면 ''(빈 문자열)
필요한 저장공간 : 값의 길이에 그 길이를 기록하기 위한 2바이트를 더함
비교 : 대소문자를 구별하지 않음


MEDIUMTEXT


의미 
: 중간 크기의 TEXT값
허용되는 속성 : CHARACTER SET
허용되는 길이 : 0부터 16777215바이트
디폴트 값 : 칼럼에 NULL이 가능하면 NULL, 그렇지 않으면 ''(빈 문자열)
필요한 저장공간 : 값의 길이에 그 길이를 기록하기 위한 3바이트를 더한다.
비교 : 대소문자를 구별하지 않음


LONGTEXT


의미 
: 큰 TEXT값
허용되는 속성들 : CHARACTER SET
허용되는 길이 : 0부터 4294967295바이트
디폴트 값 : 칼럼에 NULL이 가능하면 NULL, 그렇지 않으면 ''(빈 문자열)
필요한 저장공간 : 값의 길이에 그 길이를 저장하기 위한 4바이트를 더함
비교 : 대소문자를 구별하지 않음


ENUM ('value1', 'value2', ···)


의미 
: 열거값. 값의 목록 중 정확학 하나의 수에 할당되는 칼럼값
허용되는 속성들 : 전역 속성
디폴트 값 : 칼럼에 NULL이 가능하면 NULL, 그렇지 않으면 첫 번째의 열거 값
필요한 저장공간 : 1부터 255 개의 멤버까지의 열거형에 대해서는 1바이트, 255부터 65536멤버까지의 열거형에 대해서는 2바이트
비교 : 대소문자를 구별하지 않음


SET ('value1', 'value2', ···)


의미 
: 집합. 값 목록 중 영 또는 그 이상의 멤버를 할당할 수 있는 칼럼값
허용되는 속성들 : 전역 속성
디폴트 값 : 칼럼이 NULL이 가능하면 NULL, 그렇지 않으면 ''(빈 집합)
필요한 저장공간 : 1부터 8까지의 멤버가 있는 집합에 대해서는 1바이트, 9부터 16까지의 멤버가 있는 집합에 대해서는 2바이트, 17부터 24까지의 멤버가 있는 집합에 대해서는 3바이트, 25에서 32까지의 멤버가 있는 집합에 대해서는 4바이트, 그리고 33부터 64까지의 멤버가 있는 집합에 대해서는 8바이트
비교 : 대소문자를 구별하지 않음



출처: https://otoong.tistory.com/entry/MYSQL-문자열-타입-1-column-type [OT연구소]

반응형

+ Recent posts