데이터 정렬은 SQL에서 무엇을 의미하며 그 의미는 무엇입니까?
데이터 정렬은 SQL에서 무엇을 의미하며 그 의미는 무엇입니까?
답변:
데이터 정렬은 단순히 정렬 순서로 생각할 수 있습니다.
영어에서 (그리고 이상한 사촌 인 American), 데이터 정렬은 ASCII 코드로 정렬 된 매우 간단한 문제 일 수 있습니다.
악센트와 다른 기능을 가진 이상한 유럽 언어를 배우면 데이터 정렬이 변경됩니다. 예를 들어, 서로 다른 악센트 형식이 a
다른 코드 포인트에 존재할 수 있지만 모두 같은 문자 인 것처럼 정렬해야 할 수도 있습니다.
e
, ë
, é
, ě
, 및 è
수도 주문의 목적을 위해 별개의 글자 수 (하지만 아마도 같은 문자를 검색 할 때, 그 미친 유럽인 젠장)).
42
문자 15
들을 분음 부호있는의?
where st= 'aaa'
입니까?
일부 서유럽 언어의 "악센트 문자는 악센트가없는 문자와 다르게 정렬됩니다"외에도, 때때로 다르게 정렬되는 문자 그룹도 고려해야합니다 .
전통적으로 스페인어에서 "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 ä
같은 문자 무시 케이스와 발음 구별 차이를.
데이터 정렬은 ASCII 또는 유니 코드 등의 알파벳 문자에 순서를 할당하는 것을 의미합니다.
알파벳에 {A, B, C} 문자가 3 개 있다고 가정합니다. 문자에 정수 값을 할당하여 예시 데이터 정렬을 정의 할 수 있습니다.
사실, n을 정의 할 수 있습니다! 크기 n의 알파벳에 대한 데이터 정렬. 그러한 순서가 주어지면 LSD / MSD 문자열 정렬과 같은 다른 정렬 루틴이 문자열 정렬에 사용합니다.
참고이 문서에서 가져온 것입니다 : 데이터 정렬은 문자 세트의 문자를 비교하기위한 규칙의 집합입니다. 또한 문자 정렬에 대한 규칙이 있으며 두 문자의 올바른 순서는 언어마다 다릅니다. 데이터 정렬은 단어가 다른 문자열보다 큰 경우와 같이 두 문자열을 비교 한 후 정렬합니다.
"latin1"문자 집합을 사용하는 경우 "latin1_swedish_ci"데이터 정렬을 사용할 수 있습니다.
잘못된 데이터 정렬은 데이터베이스 성능에 영향을 줄 수 있으므로 올바른 데이터 정렬을 선택해야합니다.
http://en.wikipedia.org/wiki/Collation
데이터 정렬은 서면 정보를 표준 순서로 모은 것입니다. (...) 유니 코드 데이터 정렬 알고리즘과 같은 데이터 정렬 알고리즘 은 주어진 두 문자열을 비교하고 다른 문자열보다 먼저 오는 문자열을 결정하는 과정을 통해 순서를 정의합니다.