[sql] 콜 레이션이란 무엇입니까?

데이터 정렬은 SQL에서 무엇을 의미하며 그 의미는 무엇입니까?



답변

데이터 정렬은 단순히 정렬 순서로 생각할 수 있습니다.

영어에서 (그리고 이상한 사촌 인 American), 데이터 정렬은 ASCII 코드로 정렬 된 매우 간단한 문제 일 수 있습니다.

악센트와 다른 기능을 가진 이상한 유럽 언어를 배우면 데이터 정렬이 변경됩니다. 예를 들어, 서로 다른 악센트 형식이 a다른 코드 포인트에 존재할 수 있지만 모두 같은 문자 인 것처럼 정렬해야 할 수도 있습니다.


답변

일부 서유럽 언어의 “악센트 문자는 악센트가없는 문자와 다르게 정렬됩니다”외에도, 때때로 다르게 정렬되는 문자 그룹도 고려해야합니다 .

전통적으로 스페인어에서 “ch”는 “ll”(둘 다 단일 음소를 나타냄)과 동일하게 자체 문자로 간주되므로 목록은 다음과 같이 정렬됩니다.

  • 카발로
  • 친코
  • 코체
  • 초콜릿
  • 추 에코
  • 징두리 판벽
  • (…)
  • 람 파라
  • 루 에고
  • 란타
  • 루비아
  • 마데 라

단일로 시작하는주의 모든 단어 C는 로 시작하는 단어를 제외하고, 함께 이동 채널 이동 와 같은 그들, LL는 단일로 시작하는 모든 단어 후 이동 단어 -starting 리터를 . 이것은 오래된 사전과 백과 사전에서 볼 수있는 순서이며 때로는 오늘날 매우 보수적 인 조직에서도 볼 수 있습니다.

Royal Academy of the Language는 컴퓨팅 세계에서 스페인어를 쉽게 수용 할 수 있도록 이것을 변경했습니다. 그럼에도 불구하고, ñ 는 여전히 n 과 다른 문자로 간주되어 그 뒤를 따르고 o 앞에옵니다 . 따라서 이것은 올바르게 정렬 된 목록입니다.

  • 나미비아
  • 누 메로
  • 얀두
  • 오브 라
  • 오조

올바른 데이터 정렬을 선택하면이 모든 작업이 자동으로 수행됩니다. 🙂


답변

문자열을 비교하고 정렬하는 방법을 알려주는 규칙 : 글자 순서; 사건이 중요한지, 분음 부호가 중요한지 등

예를 들어, 모든 문자를 다르게하려면 (예 :에 파일 이름을 저장하는 경우 UNIX) UTF8_BIN데이터 정렬 을 사용합니다 .

SELECT  'A' COLLATE UTF8_BIN = 'a' COLLATE UTF8_BIN

---
0

대소 문자와 분음 부호 차이 (예 : 검색 엔진)를 무시하려면 UTF8_GENERAL_CI데이터 정렬 을 사용합니다 .

SELECT  'A' COLLATE UTF8_GENERAL_CI = 'ä' COLLATE UTF8_GENERAL_CI

---
1

당신이 볼 수 있듯이,이 조합 (비교 규칙) 자본 고려 A하고 lowecase ä같은 문자 무시 케이스와 발음 구별 차이를.


답변

데이터 정렬은 문자열 값을 정렬하고 비교하는 방법을 정의합니다

예를 들어, 처리 방법을 정의합니다

  • 악센트 ( äàa등)
  • 사례 ( Aa)
  • 언어 문맥 :
    • 프랑스어 데이터 정렬에서 cote < côte < coté < côté.
    • SQL Server Latin1 기본값에서 cote < coté < côte < côté
  • ASCII 정렬 (이진 데이터 정렬)

답변

데이터 정렬은 ASCII 또는 유니 코드 등의 알파벳 문자에 순서를 할당하는 것을 의미합니다.

알파벳에 {A, B, C} 문자가 3 개 있다고 가정합니다. 문자에 정수 값을 할당하여 예시 데이터 정렬을 정의 할 수 있습니다.

  1. 예 1 = {A = 1, B = 2, C = 3}
  2. 예 2 = {C = 1, B = 2, A = 3}
  3. 예 3 = {B = 1, C = 2, A = 3}

사실, n을 정의 할 수 있습니다! 크기 n의 알파벳에 대한 데이터 정렬. 그러한 순서가 주어지면 LSD / MSD 문자열 정렬과 같은 다른 정렬 루틴이 문자열 정렬에 사용합니다.


답변

데이터 정렬은 데이터 정렬 및 비교 방법을 결정합니다. internazionalization과 관련하여 매우 자주 중요합니다. 예를 들어 일본어 한자를 어떻게 정렬합니까?

Google 데이터 정렬 및 SQL Server를 사용하면 이에 대해 많은 기사를 찾을 수 있습니다!


답변

참고이 문서에서 가져온 것입니다 :
데이터 정렬은 문자 세트의 문자를 비교하기위한 규칙의 집합입니다. 또한 문자 정렬에 대한 규칙이 있으며 두 문자의 올바른 순서는 언어마다 다릅니다. 데이터 정렬은 단어가 다른 문자열보다 큰 경우와 같이 두 문자열을 비교 한 후 정렬합니다.

“latin1″문자 집합을 사용하는 경우 “latin1_swedish_ci”데이터 정렬을 사용할 수 있습니다.

잘못된 데이터 정렬은 데이터베이스 성능에 영향을 줄 수 있으므로 올바른 데이터 정렬을 선택해야합니다.