programing

콜리메이션이 이해가 안 돼요?(Mysql, RDBMS, 문자 집합)

telebox 2023. 7. 21. 21:33
반응형

콜리메이션이 이해가 안 돼요?(Mysql, RDBMS, 문자 집합)

문자 집합은 이해하지만 정렬은 이해하지 못합니다.Mysql 또는 RDBMS에 있는 모든 문자 집합과 기본 데이터 집합을 얻는다는 것을 알고 있지만 여전히 이해할 수 없습니다!누가 평이한 말로 설명해 주시겠습니까?

잘 부탁드립니다 ;-)

데이터베이스 조합의 주요 내용은 데이터가 정렬되고 비교되는 방법을 결정하는 것입니다.

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

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

대/소문자를 구분하지 않는 데이터 정렬의 경우 true를 반환하고 대/소문자를 구분하는 데이터 정렬의 경우 false를 반환합니다.

어떤 조합이 어떤 것을 하는지, 어떤 것이 알려줄 수 있습니까?_ci그리고._cs데이터 집합 이름의 접미사입니다._bin데이터 정렬은 이항 비교를 수행합니다(데이터 세트는 100% 동일해야 함).

umlauts/악센트 문자 비교

또한 문자열 비교에서 악센트가 있는 문자가 라틴 기본 문자로 취급되는지 여부를 결정합니다.

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

전자의 경우 true를 반환하고 후자의 경우 false를 반환합니다.각 데이터 정렬에 대한 설명을 읽고 어느 데이터 정렬이 어느 데이터 정렬인지 확인해야 합니다.

문자열 정렬

정렬은 문자열이 정렬되는 방식에 영향을 미칩니다.

예를들면,

  • 움라우츠Ä Ö Ü핀란드/알파벳 알파벳의 알파벳 끝에 있습니다.latin1_swedish_ci

  • 그들은 로 취급됩니다.A O U독일 DIN-1 정렬(latin_german1_ci)

  • 그리고 로서AE OE UE독일 DIN-2 정렬(latin_german2_ci. ("전화번호부" 정렬)

  • latin1_spanish_ci"n" (n-틸데)는 "n"과 "o" 사이의 별도의 문자입니다.

이러한 규칙은 라틴 문자가 아닌 문자를 사용할 경우 정렬 순서가 달라집니다.

런타임에 데이터 정렬 사용

테이블과 열에 대한 데이터 정렬을 선택해야 하지만 성능 저하가 신경이 쓰이지 않는 경우 다음을 사용하여 런타임에 데이터베이스 작업을 특정 데이터 정렬에 강제로 적용할 수 있습니다.COLLATE키워드

정렬됩니다.table의 옆에name독일 DIN-2 정렬 규칙을 사용하는 열:

SELECT name
FROM table
ORDER BY name COLLATE latin1_german2_ci;

사용.COLLATE쿼리 중에 각 열을 변환해야 하므로 런타임에 성능에 영향을 미칩니다.따라서 대규모 데이터 세트를 적용하기 전에 다시 한 번 생각해 보십시오.

MySQL 참조:

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

예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어,a=A 문자 사항, 특수문예고항사(예: 여부려자예▁speciala=á 순서 및문자순예서예(서:순,)O<Ö.

언급URL : https://stackoverflow.com/questions/3324900/i-dont-understand-collation-mysql-rdbms-character-sets

반응형