Loading...
MySQL 9.5 Reference Manual 9.5의 12.3.9 Examples of Character Set and Collation Assignment의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
다음 예제들은 MySQL이 기본 character set 및 collation 값을 어떻게 결정하는지 보여 줍니다.
예제 1: Table 및 Column 정의
1CREATE TABLE t1 2( 3 c1 CHAR(10) CHARACTER SET latin1 COLLATE latin1_german1_ci 4) DEFAULT CHARACTER SET latin2 COLLATE latin2_bin;
여기서는 latin1 character set과 latin1_german1_ci collation을 가진 컬럼이 있습니다.
정의가 명시적이므로 이해하기 간단합니다. latin1 컬럼을 latin2 테이블에 저장하는 데에는 아무런 문제가 없다는 점에 주목하십시오.
예제 2: Table 및 Column 정의
1CREATE TABLE t1 2( 3 c1 CHAR(10) CHARACTER SET latin1 4) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;
이번에는 latin1 character set과 기본 collation을 가진 컬럼이 있습니다.
자연스럽게 느껴질 수도 있지만, 기본 collation은 테이블 수준에서 가져오지 않습니다. 대신 latin1의 기본 collation은 항상 latin1_swedish_ci이므로, 컬럼 c1의 collation은 latin1_swedish_ci이며 (즉 latin1_danish_ci가 아닙니다).
예제 3: Table 및 Column 정의
1CREATE TABLE t1 2( 3 c1 CHAR(10) 4) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;
여기서는 기본 character set과 기본 collation을 가진 컬럼이 있습니다.
이러한 상황에서 MySQL은 컬럼의 character set과 collation을 결정하기 위해 테이블 수준을 확인합니다. 그 결과 컬럼 c1의 character set은 latin1이 되고, collation은 latin1_danish_ci가 됩니다.
예제 4: Database, Table, 및 Column 정의
1CREATE DATABASE d1 2 DEFAULT CHARACTER SET latin2 COLLATE latin2_czech_cs; 3USE d1; 4CREATE TABLE t1 5( 6 c1 CHAR(10) 7);
여기서는 컬럼의 character set과 collation을 지정하지 않고 컬럼을 생성합니다.
또한 테이블 수준에서도 character set과 collation을 지정하지 않습니다. 이러한 상황에서 MySQL은 데이터베이스 수준을 확인하여 테이블 설정을 결정하고, 이후 이 설정이 컬럼 설정이 됩니다. 그 결과 컬럼 c1의 character set은 latin2이고, collation은 latin2_czech_cs입니다.
12.3.8 Character Set Introducers
12.3.10 Compatibility with Other DBMSs