10.1.1 일반 문자 집합 및 데이터 정렬
문자 세트는 기호 및 인코딩 세트입니다. 데이터 정렬은 문자 집합의 문자를 비교하기위한 규칙을 모은 것입니다. 가상의 캐릭터 세트를 예로 들어, 문자 셋과 콜레 션의 차이를 살펴 보자.
" A
"," B
"," a
"," b
"의 4 개의 알파벳이 있다고합니다. 각각의 문자에 " A
"= 0" B
"= 1" a
"= 2 ' b
'= 3의 숫자를 할당합니다. 문자 " A
"는 기호, 숫자 0은" A
"에 대한 인코딩이며, 4 개의 문자와 인코딩 조합이 문자 집합입니다.
" A
"와" B
"의 2 개의 문자열 값을 비교합니다. 이렇게에는 " A
"0" B
"의 1이라는 인코딩을 확인하는 방법이 가장 간단합니다. 0은 1보다 작으므로 " A
"는" B
"보다 작다고 봅니다. 지금 여기에서 행한는 문자 집합에 대한 데이터 정렬 적용합니다. 데이터 정렬 규칙의 모음이며,이 경우 규칙은 "인코딩의 비교」의 하나입니다. 이것은 가능한 데이터 정렬 중에서 가장 간단한 것으로, 이진 데이터 정렬이라고합니다.
그러나 소문자와 대문자가 동등 함을 나타내려면 어떻게되는 것입니까? 이 경우 적어도 다음 두 가지 규칙이 필요합니다. (1) 소문자 " a
"와" b
"를" A
"와" B
"와 동등하게 취급합니다. (2) 계속해서 그 인코딩을 비교합니다. 이것은 대소 문자를 구별하지 않는 데이터 정렬이라고합니다. 이진 데이터 정렬보다 조금 복잡합니다.
사실, 대부분의 문자 세트는 다수의 문자가 " A
"와" B
"뿐만 아니라 알파벳 전체가 포함됩니다. 여러 알파벳이 포함되는 경우도 수천 종류의 문자와 많은 특수 기호 및 문장 부호로 구성된 동양 필기 방식의 경우도 있습니다. 또한 실제로는 대부분의 데이터 정렬은 대소 문자를 구별뿐만 아니라 악센트 부호 ( "악센트 부호"는 독일어 " Ö
"로보고있는 것 같은 문자에 붙은 부호입니다)을 구별 할지 어떨지에 관한 규칙이나 여러 문자의 매핑 규칙 (두 독일어 데이터 정렬의 한쪽에있어서 " Ö
"=" OE
"라는 규칙 등) 등 많은 규칙을 포함하고 있습니다.
MySQL에서는 다음이 가능합니다.
다양한 문자 집합을 사용하여 문자열을 저장합니다.
다양한 데이터 정렬을 사용하여 문자열을 비교합니다.
문자 세트 또는 데이터 정렬이 다른 문자열을 같은 서버 같은 데이터베이스 또는 같은 테이블에 혼합합니다.
모든 수준에서 문자 셋과 콜레 션을 지정할 수 있도록합니다.
MySQL은 이러한 점에서 다른 대부분의 데이터베이스 관리 시스템에 큰 차이를 내고 있습니다. 그러나 이러한 기능을 효과적으로 사용하려면 사용 가능한 문자 셋과 콜레 션 각 기본 변경 방법 및 문자열 연산자와 함수의 동작에 이러한 기능이 미치는 영향을 알아야 수 있습니다.