Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

문자열 데이터 유형에 대해 CHARACTER SET 바이너리 속성을 지정할 때 MySQL은 어떻게 반응합니까?

<시간/>

문자열 데이터 유형에 대한 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)