문자열 데이터 유형에 대한 CHARACTER SET 이진 속성을 지정할 때 MySQL은 해당 열을 후속 이진 문자열 유형으로 생성합니다. CHAR, VARCHAR 및 BLOB 데이터 유형에 대한 변환은 다음과 같이 발생합니다. -
- CHAR는 BINARY가 됩니다.
- VARCHAR는 VARBINARY가 됩니다.
- TEXT는 BLOB가 됩니다.
ENUM, SET 데이터 타입은 위와 같은 변환이 일어나지 않고 테이블 생성 시 선언된 대로 생성된다.
예시
아래 예에서 다음과 같이 CHARACTER SET 바이너리로 지정된 4개의 열이 있는 'EMP'라는 테이블을 만들었습니다. -
mysql> Create table Emp(Name varchar(10) CHARACTER SET binary, Address CHAR(10)CHARACTER SET binary, Designation TEXT CHARACTER SET binary, Field ENUM('ENG','SS') CHARACTER SET binary); Query OK, 0 rows affected (0.16 sec)
그러나 이제 아래 쿼리를 사용하여 테이블의 상태를 확인하면 MySQL이 후속 바이너리 문자열에 따라 데이터 유형을 변경했음을 알 수 있습니다.
mysql> Show Create Table EMP\G *************************** 1. row *************************** Table: EMP Create Table: CREATE TABLE `emp` ( `Name` varbinary(10) DEFAULT NULL, `Address` binary(10) DEFAULT NULL, `Designation` blob, `Field` enum('ENG','SS') CHARACTER SET binary DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 1 row in set (0.00 sec)