Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was bedeutet Zeichensatz und Sortierung genau?

Von MySQL docs :

Ein Zeichensatz ist ein Satz von Symbolen und Kodierungen. Eine Sammlung ist ein Satz von Regeln zum Vergleichen von Zeichen in einem Zeichensatz. Lassen Sie uns die Unterscheidung anhand eines Beispiels für einen imaginären Zeichensatz verdeutlichen.

Angenommen, wir haben ein Alphabet mit vier Buchstaben:'A', 'B', 'a', 'b'. Geben Sie jedem Buchstaben eine Zahl:'A' =0, 'B' =1, 'a' =2, 'b' =3. Der Buchstabe 'A' ist ein Symbol, die Zahl 0 ist die Kodierung für 'A', und die Kombination aller vier Buchstaben und ihrer Kodierungen ist ein Zeichensatz.

Nehmen wir nun an, wir wollen zwei Zeichenfolgenwerte „A“ und „B“ vergleichen. Am einfachsten geht das, wenn man sich die Kodierungen ansieht:0 für 'A' und 1 für 'B'. Da 0 kleiner als 1 ist, sagen wir „A“ ist kleiner als „B“. Was wir gerade getan haben, ist eine Sortierung auf unseren Zeichensatz anzuwenden. Die Sortierung ist ein Satz von Regeln (in diesem Fall nur eine Regel):"Kodierungen vergleichen". Wir nennen diese einfachste aller möglichen Sortierungen binäre Sortierungen.

Was aber, wenn wir sagen wollen, dass Klein- und Großbuchstaben gleichwertig sind? Dann hätten wir mindestens zwei Regeln:(1) behandle die Kleinbuchstaben 'a' und 'b' als äquivalent zu 'A' und 'B'; (2) Vergleichen Sie dann die Codierungen. Wir nennen dies eine Sortierung ohne Berücksichtigung der Groß-/Kleinschreibung. Es ist etwas komplexer als eine binäre Sortierung.

Im wirklichen Leben haben die meisten Zeichensätze viele Zeichen:nicht nur „A“ und „B“, sondern ganze Alphabete, manchmal mehrere Alphabete oder östliche Schriftsysteme mit Tausenden von Zeichen, zusammen mit vielen Sonderzeichen und Satzzeichen. Auch im wirklichen Leben haben die meisten Sortierungen viele Regeln:nicht nur Groß- und Kleinschreibung, sondern auch Akzentunempfindlichkeit (ein „Akzent“ ist ein Zeichen, das an ein Zeichen wie im Deutschen „ö“ angehängt wird) und Mehrfachzeichenzuordnungen (wie die Regel, dass „ö“ =„OE ' in einer der beiden deutschen Kollationen).