Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 지원하는 모든 문자 집합을 확인하는 쿼리(SHOW CHARACTER SET)

MySQL은 전 세계 다양한 언어를 지원하기 위해 수십 가지의 문자 집합(character set)을 내장하고 있습니다. 현재 MySQL 서버가 지원하는 문자 집합의 전체 목록을 확인하려면 SHOW CHARACTER SET 문 하나만 실행하면 됩니다.

mysql> SHOW CHARACTER SET;
+-----------+-----------------------------+---------------------+--------+
| Charset   | Description                 | Default collation   | Maxlen |
+-----------+-----------------------------+---------------------+--------+
| big5      | Big5 Traditional Chinese    | big5_chinese_ci     |      2 |
| dec8      | DEC West European           | dec8_swedish_ci     |      1 |
| cp850     | DOS West European           | cp850_general_ci    |      1 |
| hp8       | HP West European            | hp8_english_ci      |      1 |
| koi8r     | KOI8-R Relcom Russian       | koi8r_general_ci    |      1 |
| latin1    | cp1252 West European        | latin1_swedish_ci   |      1 |
| latin2    | ISO 8859-2 Central European | latin2_general_ci   |      1 |
| swe7      | 7bit Swedish                | swe7_swedish_ci     |      1 |
| ascii     | US ASCII                    | ascii_general_ci    |      1 |
| ujis      | EUC-JP Japanese             | ujis_japanese_ci    |      3 |
| sjis      | Shift-JIS Japanese          | sjis_japanese_ci    |      2 |
| hebrew    | ISO 8859-8 Hebrew           | hebrew_general_ci   |      1 |
| tis620    | TIS620 Thai                 | tis620_thai_ci      |      1 |
| euckr     | EUC-KR Korean               | euckr_korean_ci     |      2 |
| koi8u     | KOI8-U Ukrainian            | koi8u_general_ci    |      1 |
| gb2312    | GB2312 Simplified Chinese   | gb2312_chinese_ci   |      2 |
| greek     | ISO 8859-7 Greek            | greek_general_ci    |      1 |
| cp1250    | Windows Central European    | cp1250_general_ci   |      1 |
| gbk       | GBK Simplified Chinese      | gbk_chinese_ci      |      2 |
| latin5    | ISO 8859-9 Turkish          | latin5_turkish_ci   |      1 |
| armscii8  | ARMSCII-8 Armenian          | armscii8_general_ci |      1 |
| utf8      | UTF-8 Unicode               | utf8_general_ci     |      3 |
| ucs2      | UCS-2 Unicode               | ucs2_general_ci     |      2 |
| cp866     | DOS Russian                 | cp866_general_ci    |      1 |
| keybcs2   | DOS Kamenicky Czech-Slovak  | keybcs2_general_ci  |      1 |
| macce     | Mac Central European        | macce_general_ci    |      1 |
| macroman  | Mac West European           | macroman_general_ci |      1 |
| cp852     | DOS Central European        | cp852_general_ci    |      1 |
| latin7    | ISO 8859-13 Baltic          | latin7_general_ci   |      1 |
| utf8mb4   | UTF-8 Unicode               | utf8mb4_general_ci  |      4 |
| cp1251    | Windows Cyrillic            | cp1251_general_ci   |      1 |
| utf16     | UTF-16 Unicode              | utf16_general_ci    |      4 |
| cp1256    | Windows Arabic              | cp1256_general_ci   |      1 |
| cp1257    | Windows Baltic              | cp1257_general_ci   |      1 |
| utf32     | UTF-32 Unicode              | utf32_general_ci    |      4 |
| binary    | Binary pseudo charset       | binary              |      1 |
| geostd8   | GEOSTD8 Georgian            | geostd8_general_ci  |      1 |
| cp932     | SJIS for Windows Japanese   | cp932_japanese_ci   |      2 |
| eucjpms   | UJIS for Windows Japanese   | eucjpms_japanese_ci |      3 |
+-----------+-----------------------------+---------------------+--------+
39 rows in set (0.14 sec)

위 예시에서는 총 39개의 문자 집합이 출력되었습니다. MySQL 버전에 따라 목록과 개수는 조금씩 다를 수 있습니다.

결과 컬럼의 의미

  • Charset : 문자 집합의 고유 이름입니다. 테이블이나 컬럼을 정의할 때 이 이름을 그대로 사용합니다.
  • Description : 해당 문자 집합이 어떤 언어·지역·표준을 위해 만들어졌는지 설명합니다.
  • Default collation : 문자 집합에 기본으로 연결된 콜레이션(문자 비교 및 정렬 규칙)입니다.
  • Maxlen : 한 글자를 저장하는 데 필요한 최대 바이트 수입니다. 예를 들어 euckr은 2바이트, utf8mb4는 최대 4바이트를 사용합니다.

특정 문자 집합만 조회하는 방법

전체 목록이 아니라 원하는 문자 집합만 확인하고 싶다면 LIKE 절을 활용하면 됩니다.

mysql> SHOW CHARACTER SET LIKE 'utf%';

또한 INFORMATION_SCHEMA.CHARACTER_SETS 테이블을 조회하면 동일한 정보를 일반 SQL 문법으로 자유롭게 필터링하여 가져올 수 있습니다.

mysql> SELECT * FROM INFORMATION_SCHEMA.CHARACTER_SETS;

참고로 한글 데이터를 저장할 때는 과거 euckr(EUC-KR)을 많이 사용했지만, 이모지를 포함한 모든 유니코드 문자를 지원하는 utf8mb4가 현재에는 표준처럼 권장됩니다.