본문 바로가기
Database/MySQL

MySQL String Type

by oncerun 2020. 5. 9.
반응형

문자열 타입

 

MySQL은 다양한 형태의 문자열 타입을 제공해줍니다.

 

  • CHAR와 VARCHAR (ORACLE과 다르게 N의 키워드는 사용하지 않습니다.)

  • BINARY와 VARBINARY

  • BLOB과 TEXT

  • ENUM

  • SET

1. CHAR , VARCHAR

 

둘 다 문자열 데이터를 저장할 수 있는 타입입니다.

하지만 저장 방식, 추출방식 , 최대 길이를 다루는 방식에서 차이점이 존재합니다.

 

CHAR는 문자열 길이가 설정되면 고정길이의 문자열로 다루지만 VARCHAR는 문자열 길이가 고정되지 않는 가변 길이의 문자열로 다룹니다.

 

문법

CHAR(M)

VARCHAR(M)

 

M은 저장할 수 있는 문자열의 최대 길이 입니다.

CHAR는 0~255까지 설정할 수 있으며

NVARCHAR는 0~65,535까지 설정할 수 있습니다.

 

CHAR는 설정한 크기보다 작은 길이의 문자열이 입력되면 나머지 공간을 공백으로 채워 M값과 같도록 만듭니다.

VARCHAR는 실제 입력된 문자열의 길이만큼만 저장하고 있습니다.

 

 

 

2. BINARY와 VARBINARY

 

BINARY와 VARBINARY는 각각 CHAR와 VARCHAR과 거의 비슷합니다.

다만 BINARY와 VARBINARY는 문자 집합이 아닌 바이너리(binary) 데이터를 저장할 때 사용된다는 점만이 다릅니다.

 

문법

BINARY(M)

VARBINARY(M)

 

 

3. BLOB과 TEXT

 

BLOB은 Binary Large Object를 의미하며, 다양한 크기의 바이너리 데이터를 저장할 수 있는 타입입니다.

저장할 수 있는 데이터의 최대 크기에 따라 TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB로 구분됩니다.

 

TEXT는 VARCHAR와 비슷하지만, VARCHAR와는 달리 기본값을 가질 수 없습니다.

또한, TEXT는 BLOB과도 비슷하지만, BLOB과는 달리 문자열의 대소문자를 구분합니다.

저장할 수 있는 데이터의 최대 크기에 따라 TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT로 구분됩니다.

 

 

4. ENUM

 

ENUM은 미리 정의한 집합 안의 요소 중 하나만을 저장할 수 있는 타입입니다.

ENUM을 사용하면 가독성을 높일 수 있으며, 특정 숫자에 문자열로 의미를 부여할 수 있습니다.

단, 0은 빈 문자열('')과 대응되며, 1부터 집합의 첫 번째 요소와 대응됩니다.

 

ENUM 목록 집합은 최대 65,535개의 ENUM 데이터를 포함할 수 있습니다.

이렇게 설정된 ENUM 데이터는 내부적으로 정수로 변환되어 인식됩니다.

 

문법

ENUM('데이터 값 1', '데이터 값 2',...)

 

 

5. SET

SET은 미리 정의한 집합 안의 요소 중 여러 개를 동시에 저장할 수 있는 타입입니다.

SET 목록 집합은 최대 64개의 SET 데이터를 포함할 수 있습니다.

 

문법

SET('데이터 값 1', '데이터 값 2',...)

반응형

'Database > MySQL' 카테고리의 다른 글

[MySQL] 트리거  (0) 2020.07.01
[MySQL] 커서  (0) 2020.07.01
[MySQL] Stored Program  (0) 2020.07.01
MySQL DATE / TIME TYPE  (0) 2020.05.09
MySQL Numeric Type  (0) 2020.05.08

댓글