От MySQL docs :
набор от знаци е набор от символи и кодировки. Аколекция е набор от правила за сравняване на знаци в набор от знаци. Нека направим разграничението ясно с пример за въображаем набор от знаци.
Да предположим, че имаме азбука с четири букви:'A', 'B', 'a', 'b'. Дайте на всяка буква число:'A' =0, 'B' =1, 'a' =2, 'b' =3. Буквата 'A' е символ, числото 0 е кодирането на 'A' и комбинацията от четирите букви и техните кодировки е набор от знаци.
Сега да предположим, че искаме да сравним две стойности на низове, 'A' и 'B'. Най-простият начин да направите това е да разгледате кодировките:0 за 'A' и 1 за 'B'. Тъй като 0 е по-малко от 1, казваме, че "A" е по-малко от "B". Сега, това, което току-що направихме, е да приложим съпоставяне към нашия набор от знаци. Съпоставянето е набор от правила (само едно правило в този случай):„сравнете кодировките“. Ние наричаме това най-простото от всички възможни съпоставяния бинарно съпоставяне.
Но какво, ако искаме да кажем, че малките и главните букви са еквивалентни? Тогава ще имаме поне две правила:(1) да третираме малките букви 'a' и 'b' като еквивалентни на 'A' и 'B'; (2) след това сравнете кодировките. Ние наричаме това съпоставяне, нечувствително към acase. Това е малко по-сложно от двоично съпоставяне.
В реалния живот повечето набори от знаци имат много знаци:не само „A“ и „B“, но цели азбуки, понякога множество азбуки или източни писмени системи с хиляди знаци, заедно с много специални символи и препинателни знаци. Също така в реалния живот повечето съпоставяния имат много правила:не само нечувствителност към главни и малки букви, но също и нечувствителност към ударението („акцент“ е знак, прикрепен към символ като на немски „ö“) и съпоставяне на множество символи (като правилото, че 'ö' ='OE “ в едно от двете германски съчетания).