복붙노트

[SQL] 나는 정렬을 이해하지? (MySQL은, RDBMS 문자 세트)

SQL

나는 정렬을 이해하지? (MySQL은, RDBMS 문자 세트)

나는 문자 집합을 이해하지만 데이터 정렬을 이해하지 않습니다. 난 당신이 MySQL의 또는 RDBMS의 모든 문자 집합에 기본 정렬을 얻을 알고 있지만 나는 아직도 그것을 얻을하지 않습니다! 누군가가 평신도 측면에서 설명시겠습니까?

사전에 감사합니다 ;-)

해결법

  1. ==============================

    1.데이터베이스 데이터 정렬의 주요 포인트는 데이터 정렬 및 비교하는 방법을 결정하는 것입니다.

    데이터베이스 데이터 정렬의 주요 포인트는 데이터 정렬 및 비교하는 방법을 결정하는 것입니다.

    문자열 비교의 대소 문자 구분

    SELECT "New York" = "NEW YORK";` 
    

    정렬 문자를 구분 경우에 대해 true를 반환합니다; 이 경우 민감한 하나 거짓.

    어떤 정렬하는 정렬의 이름으로 _ci 및 _cs 접미사에 의해 말 할 수 있습니다 않는다. _bin 정렬 이진 비교를 (문자열이 100 % 동일해야합니다) 않습니다.

    움라우트 / 악센트 부호가있는 문자의 비교

    조합은 또한 악센트 문자가 문자열 비교에서의 라틴어 기본 대응으로 처리할지 여부를 결정합니다.

    SELECT "Düsseldorf" =  "Dusseldorf";
    SELECT "Èclair" =      "Eclair";
    

    전자의 경우에 true를 돌려줍니다; 후자의 거짓. 당신은 어느 것이 어느 찾아 각 조합의 설명을 읽어해야합니다.

    문자열 정렬

    데이터 정렬 문자열 정렬되는 방식에 영향을 미친다.

    예를 들어,

    비 라틴 문자가 사용되는 경우이 규칙은 다른 정렬 순서가 발생합니다.

    런타임에 사용하여 정렬

    당신은 당신의 테이블과 열에 대한 데이터 정렬을 선택해야하지만 성능 저하를 괜찮다면, 당신은 COLLATE 키워드를 사용하여 런타임에 특정 데이터 정렬로 데이터베이스 작업을 강제 할 수 있습니다.

    이 독일 DIN-2 정렬 규칙을 사용하여 이름의 열을 기준으로 테이블을 정렬합니다 :

    SELECT name
    FROM table
    ORDER BY name COLLATE latin1_german2_ci;
    

    각 열은 쿼리시에 변환 할 수있다로, 성능에 영향이있을 것이다 런타임에 COLLATE를 사용. 그래서이 큰 데이터 집합을 적용하기 전에 두 번 생각합니다.

    MySQL을 참조 :

  2. ==============================

    2.정렬 문자열 정렬 및 비교하는 방법에 대한 정보입니다.

    정렬 문자열 정렬 및 비교하는 방법에 대한 정보입니다.

    그것은 예를 들어 대소 문자 예컨대 위해 포함 a는 A, 특수 문자 고려 사항, 예를 = 여부 = A 되든지 관계없이, 문자 순서, 예를 들어 O 여부를

  3. from https://stackoverflow.com/questions/3324900/i-dont-understand-collation-mysql-rdbms-character-sets by cc-by-sa and MIT license