• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 1. 문자 세트 지원
    1. 일반 문자 집합 및 데이터 정렬
    2. MySQL에서의 문자 셋과 콜레션
    3. 문자 셋과 콜레션 지정
    4. 연결 문자 집합 및 데이터 정렬
    5. 응용 프로그램의 문자 집합 및 정렬 순서 구성
    6. 오류 메시지의 문자 세트
    7. 데이터 정렬 문제
    1. 데이터 정렬 이름
    2. SQL문에서 COLLATE 사용
    3. COLLATE 절 우선 순위
    4. 데이터 정렬과 문자 집합의 적절한 대응
    5. 식의 데이터 정렬
    6. _bin 및 binary 데이터 정렬
    7. BINARY 연산자
    8. 데이터 정렬의 효과의 예
    9. 데이터 정렬과 INFORMATION_SCHEMA 검색
    8. 문자열의 레퍼토리
    9. 문자 세트 지원의 영향을받는 연산
    10. Unicode 지원
    11. 이전 Unicode 지원에서 현재 Unicode 지원으로 업그레이드
    12. 메타 데이터에 UTF-8
    13. 컬럼 문자 집합 변환
    14. MySQL에서 지원되는 문자셋과 콜레션
    2. 오류 메시지 언어 설정
    3. 문자 세트 추가
    4. 문자 세트에 데이터 정렬 추가
    5. 문자 세트 구성
    6. MySQL Server에서 시간대 지원
    7. MySQL Server의 로케일 지원
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

10.1.7.8 데이터 정렬의 효과의 예

예 1 : 독일어 움라우트 정렬

테이블 T 의 컬럼 X 에 다음 latin1 컬럼의 값이 설정되어 있다고합니다.

 Muffler
 Müller
 MX Systems
 MySQL

또한 다음 문을 사용하여 컬럼의 값을 얻을 수 있다고합니다.

 SELECT X FROM T ORDER BY X COLLATE collation_name ;

다음 표에는 다른 데이터 정렬 ORDER BY 를 사용했을 경우 얻을 수있는 값의 순서를 보여줍니다.

latin1_swedish_ci latin1_german1_ci latin1_german2_ci
Muffler Muffler Müller
MX Systems Müller Muffler
Müller MX Systems MX Systems
MySQL MySQL MySQL

이 예에서 정렬 순서의 차이를 빚고있는 문자는 머리에 2 개의 점이 붙은 U ( ü )이며, 이것은 독일어로 "U 움라우트"라고하는 것입니다.

  • 첫 번째 열에는 스웨덴어 / 핀란드어 조합 룰을 사용했다 SELECT 의 결과가 나타나고 있습니다. 이 조합 룰에 따르면, U 움라우트는 Y와 정렬 순서가 일치합니다.

  • 두 번째 열에는 German DIN-1 룰을 사용했다 SELECT 의 결과가 나타나고 있습니다. 이 조합 룰에 따르면, U 움라우트는 U와 정렬 순서가 일치합니다.

  • 세 번째 열에는 German DIN-2 룰을 사용했다 SELECT 의 결과가 나타나고 있습니다. 이 조합 룰에 따르면, U 움라우트는 UE와 정렬 순서가 일치합니다.

예 2 : 독일어 움라우트 검색

사용되는 문자 셋과 콜레 션 만 다른 세 개의 테이블이 있다고합니다.

 mysql> SET NAMES utf8;
 mysql> CREATE TABLE german1 (
     ->  c CHAR(10)
     -> ) CHARACTER SET latin1 COLLATE latin1_german1_ci;
 mysql> CREATE TABLE german2 (
     ->  c CHAR(10)
     -> ) CHARACTER SET latin1 COLLATE latin1_german2_ci;
 mysql> CREATE TABLE germanutf8 (
     ->  c CHAR(10)
     -> ) CHARACTER SET utf8 COLLATE utf8_unicode_ci;

각 테이블에는 다음 두 개의 레코드가 포함됩니다.

 mysql> INSERT INTO german1 VALUES ('Bar'), ('Bär');
 mysql> INSERT INTO german2 VALUES ('Bar'), ('Bär');
 mysql> INSERT INTO germanutf8 VALUES ('Bar'), ('Bär');

위의 데이터 정렬의 2 개에는 A = Ä 의 등식이 포함 1 개에는 이러한 등식은 없습니다 ( latin1_german2_ci ). 따라서 비교는 다음의 결과를 얻을 수 있습니다.

mysql> SELECT * FROM german1 WHERE c = 'Bär';
+------+
| c    |
+------+
| Bar  |
| Bär  |
+------+
mysql> SELECT * FROM german2 WHERE c = 'Bär';
+------+
| c    |
+------+
| Bär  |
+------+
mysql> SELECT * FROM germanutf8 WHERE c = 'Bär';
+------+
| c    |
+------+
| Bar  |
| Bär  |
+------+

이것은 버그가 아니라 latin1_german1_ci 및 utf8_unicode_ci 정렬 프로퍼티의 결과입니다 (표시된 정렬은 German DIN 5007 표준에 따라 이루어지고 있습니다).

서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved