MySQL 8.0에서 추가된 모든 기능

MySQL 8.0에서 추가된 모든 기능 – 캐릭터셋과 콜레이션

Estimated reading: 1 minute 63 views

1. UTF-8(utf8mb4)을 기본 캐릭터셋으로

[원본제공링크 1 2 3 4 5 6 7 8 9 10 11]

UTF-8(utf8mb4)를 기본 캐릭터셋으로 사용함으로써, MySQL은 전 세계의 다양한 문자와 이모지까지 모두 지원할 수 있게 되었습니다. 크게 2가지 의의가 있는데, 기존의 5.7까지는 유니코드인 UTF-8이 아니라 latin1이 기본 캐릭터셋이었기에 기본상태에서는 한글등이 저장되지 않아 변경하고 사용해야 했습니다. 이에 다국어를 지원하는 UTF-8이 기본값이 되었다는 것에 의의가 있고, 나아가 8.0의 UTF-8은 4바이트 UTF-8 인코딩을 사용하여 유니코드의 전체 범위를 표현합니다. 데이터베이스, 테이블, 컬럼의 기본 문자 집합과 콜레이션은 utf8mb4와 관련된 설정으로 지정할 수 있습니다.

예시:

-- 서버 전체의 기본 문자 집합 설정
SET GLOBAL character_set_server = 'utf8mb4';
SET GLOBAL collation_server = 'utf8mb4_unicode_ci';

-- 데이터베이스 생성 시 지정
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 테이블 생성 시 지정
CREATE TABLE mytable (
    id INT PRIMARY KEY,
    content VARCHAR(255)
) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

장점:

  • 호환성 향상: UTF-8은 웹과 애플리케이션에서 널리 사용되는 문자 인코딩 방식입니다.
  • 다국어 지원 강화: UTF-8을 사용하여 다양한 언어의 문자를 저장하고 처리할 수 있습니다.
  • 이모지 저장 가능: 4바이트 문자 지원으로 이모지와 특수 기호를 저장할 수 있습니다.

2. 독일어(사전 순), 오스트리아 독일어(사전 순), 영어, 프랑스어(악센트가 없는 캐나다 프랑스어 포함), 아일랜드어, 인도네시아어, 이탈리아어, 룩셈부르크어, 말레이어, 네덜란드어(플랑드르어 포함), 포르투갈어(브라질 포르투갈어 포함), 스와힐리어, 줄루어를 포함하는 일반 유니코드 9.0 정렬 규칙

[원본제공링크 1 2]

3. 체코어를 위한 유니코드 9.0 정렬 규칙

4. 덴마크어를 위한 유니코드 9.0 정렬 규칙 (노르웨이어에도 유효)

5. 독일어(전화부 순)를 위한 유니코드 9.0 정렬 규칙

6. 에스페란토어를 위한 유니코드 9.0 정렬 규칙

7. 스페인어를 위한 유니코드 9.0 정렬 규칙

8. 스페인어(전통)를 위한 유니코드 9.0 정렬 규칙

9. 에스토니아어를 위한 유니코드 9.0 정렬 규칙

10. 크로아티아어를 위한 유니코드 9.0 정렬 규칙 (라틴 문자를 사용하는 세르비아어 및 보스니아어에도 유효)

11. 헝가리어를 위한 유니코드 9.0 정렬 규칙

12. 아이슬란드어를 위한 유니코드 9.0 정렬 규칙

13. 리투아니아어를 위한 유니코드 9.0 정렬 규칙

14. 라트비아어를 위한 유니코드 9.0 정렬 규칙

15. 폴란드어를 위한 유니코드 9.0 정렬 규칙

16. 루마니아어를 위한 유니코드 9.0 정렬 규칙

17. 슬로바키아어를 위한 유니코드 9.0 정렬 규칙

18. 슬로베니아어를 위한 유니코드 9.0 정렬 규칙

19. 스웨덴어를 위한 유니코드 9.0 정렬 규칙

20. 터키어를 위한 유니코드 9.0 정렬 규칙

21. 베트남어를 위한 유니코드 9.0 정렬 규칙

22. 일본어를 위한 유니코드 9.0 정렬 규칙 (가나 민감 정렬 포함)

23. 중국어를 위한 유니코드 9.0 정렬 규칙

24. 러시아어를 위한 유니코드 9.0 정렬 규칙 (불가리아어에도 유효)

MySQL은 유니코드 9.0 표준에 따른 정렬 규칙(collation)을 지원하여 다양한 언어의 문자 비교와 정렬 정확도를 향상시켰습니다. 영어, 독일어, 프랑스어, 이탈리아어, 포르투갈어 등등 여러 언어에 대한 언어별 정렬 규칙을 제공합니다.
공식 다큐멘테이션 링크를 따라 들어가보면, 위 다양한 언어들에 적용된 정렬 규칙 이름을 확인 가능합니다.

예시:

-- utf8mb4를 사용하는 프랑스어 대소문자 구분 없이 정렬
CREATE TABLE french_words (
    word VARCHAR(100)
) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

-- 데이터 삽입 및 정렬
INSERT INTO french_words (word) VALUES ('école'), ('École'), ('elephant'), ('Éléphant');
SELECT * FROM french_words ORDER BY word;

장점:

  • 정확한 문자 비교: 언어별 특수 문자와 악센트 처리로 정확한 문자열 비교가 가능합니다.
  • 정렬 일관성: 유니코드 표준에 따른 정렬로 국제화된 애플리케이션에서 일관된 정렬 결과를 얻을 수 있습니다.

25. RLIKE 및 REGEXP에서 유니코드 지원

[원본제공링크 1]

MySQL의 정규 표현식 함수 RLIKEREGEXP에서 유니코드 지원이 강화되어, 유니코드 패턴 매칭이 가능합니다. 이를 통해 다국어 텍스트에서 정교한 문자열 검색이 가능해집니다.

예시:

SELECT * FROM texts WHERE content RLIKE '[가-힣ㄱ-ㅎㅏ-ㅣ]';  -- 한글 문자가 포함된 행 검색

26. 유니코드 9.0 코드 포인트 순서 정렬 (utf8mb4_0900_bin)

[원본제공링크 1]

utf8mb4_0900_bin 콜레이션은 유니코드 9.0의 코드 포인트 순서대로 정렬하는 바이너리 콜레이션입니다. 여기서 코드포인트란 일반적으로 U+0000부터 U+10FFFF 사이의 값으로 표현되는, 특정 문자를 고유하게 식별하기 위한 값입니다. 이 순서로 정렬을 하는 방식은 정확한 이진 비교와 정렬이 필요할 때 사용됩니다.

예시:

CREATE TABLE binary_sorted_texts (
    text_column VARCHAR(100)
) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_bin;

Leave a Comment



이 문서 공유

MySQL 8.0에서 추가된 모든 기능 – 캐릭터셋과 콜레이션

링크 복사

CONTENTS