Loading...
MySQL 9.5 Reference Manual 9.5의 12.3.5 Column Character Set and Collation의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
모든 “character” column(즉, CHAR, VARCHAR, TEXT type 또는 그 synonym인 column)은 column character set과 column collation을 가집니다. CREATE TABLE 및 ALTER TABLE에 대한 column 정의 구문에는 column character set과 collation을 지정하기 위한 선택적 절이 있습니다:
1col_name {CHAR | VARCHAR | TEXT} (col_length) 2 [CHARACTER SET charset_name] 3 [COLLATE collation_name]
이 절들은 ENUM 및 SET column에도 사용할 수 있습니다:
1col_name {ENUM | SET} (val_list) 2 [CHARACTER SET charset_name] 3 [COLLATE collation_name]
예:
1CREATE TABLE t1 2( 3 col1 VARCHAR(5) 4 CHARACTER SET latin1 5 COLLATE latin1_german1_ci 6); 7 8ALTER TABLE t1 MODIFY 9 col1 VARCHAR(5) 10 CHARACTER SET latin1 11 COLLATE latin1_swedish_ci;
MySQL은 다음과 같은 방식으로 column character set과 collation을 선택합니다:
CHARACTER SET charset_name과
COLLATE collation_name이 둘 다 지정된 경우, 문자 집합 _charset_name_과 collation _collation_name_이 사용됩니다.1CREATE TABLE t1 2( 3 col1 CHAR(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci 4) CHARACTER SET latin1 COLLATE latin1_bin;
문자 집합과 collation이 column에 대해 지정되었으므로 그것이 사용됩니다. column의 문자 집합은 utf8mb4이고 collation은 utf8mb4_unicode_ci입니다.
CHARACTER SET charset_name이 COLLATE 없이 지정되면, 문자 집합 _charset_name_과 그 기본 collation이 사용됩니다.1CREATE TABLE t1 2( 3 col1 CHAR(10) CHARACTER SET utf8mb4 4) CHARACTER SET latin1 COLLATE latin1_bin;
문자 집합은 column에 대해 지정되었지만 collation은 지정되지 않았습니다. column의 문자 집합은 utf8mb4이고, utf8mb4의 기본 collation인 utf8mb4_0900_ai_ci입니다.
각 문자 집합의 기본 collation을 보려면 SHOW CHARACTER SET 구문을 사용하거나 INFORMATION_SCHEMA CHARACTER_SETS 테이블을 조회하십시오.
COLLATE collation_name이 CHARACTER SET 없이 지정된 경우, _collation_name_과 연관된 문자 집합과 collation _collation_name_이 사용됩니다.1CREATE TABLE t1 2( 3 col1 CHAR(10) COLLATE utf8mb4_polish_ci 4) CHARACTER SET latin1 COLLATE latin1_bin;
collation은 column에 대해 지정되었지만 문자 집합은 지정되지 않았습니다. column의 collation은 utf8mb4_polish_ci이고, 문자 집합은 이 collation과 연관된 utf8mb4입니다.
CHARACTER SET도 COLLATE도 지정되지 않은 경우), 테이블 character set과 collation이 사용됩니다.1CREATE TABLE t1 2( 3 col1 CHAR(10) 4) CHARACTER SET latin1 COLLATE latin1_bin;
column에 대해 character set도 collation도 지정되지 않았으므로, 테이블 기본값이 사용됩니다. column의 character set은 latin1이고 collation은 latin1_bin입니다.
CHARACTER SET 및 COLLATE 절은 표준 SQL입니다.
ALTER TABLE을 사용하여 column을 한 character set에서 다른 character set으로 변환하는 경우, MySQL은 데이터 값을 매핑하려고 시도하지만, character set이 서로 호환되지 않으면 데이터 손실이 발생할 수 있습니다.
12.3.4 Table Character Set and Collation
12.3.6 Character String Literal Character Set and Collation