sql >> Databáze >  >> RDS >> Mysql

Co přesně znamená znaková sada a řazení?

Z MySQL dokumenty :

Znaková sada je sada symbolů a kódování. Posouzení je sada pravidel pro porovnávání znaků v sadě znaků. Ujasněme si rozdíl na příkladu imaginární znakové sady.

Předpokládejme, že máme abecedu se čtyřmi písmeny:'A', 'B', 'a', 'b'. Každému písmenu přiřaďte číslo:„A“ =0, „B“ =1, „a“ =2, „b“ =3. Písmeno „A“ je symbol, číslo 0 je kódem „A“ a kombinace všech čtyř písmen a jejich kódování je znaková sada.

Nyní předpokládejme, že chceme porovnat dvě hodnoty řetězce, 'A' a 'B'. Nejjednodušší způsob, jak toho dosáhnout, je podívat se na kódování:0 pro 'A' a 1 pro 'B'. Protože 0 je menší než 1, říkáme, že 'A' je menší než 'B'. Teď, co jsme právě udělali, je použít řazení na naši sadu znaků. Porovnání je soubor pravidel (v tomto případě pouze jedno pravidlo):"porovnat kódování." Tomuto nejjednoduššímu ze všech možných porovnávání říkáme abinární porovnávání.

Ale co když chceme říci, že malá a velká písmena jsou ekvivalentní? Pak bychom měli alespoň dvě pravidla:(1) považovat malá písmena 'a' a 'b' za ekvivalentní k 'A' a 'B'; (2) poté porovnejte kódování. Říkáme tomu třídění bez ohledu na velikost písmen. Je to trochu složitější než binární řazení.

Ve skutečném životě má většina znakových sad mnoho znaků:nejen 'A' a 'B', ale celé abecedy, někdy i více abeced nebo východní systémy psaní s tisíci znaků, spolu s mnoha speciálními symboly a interpunkčními znaménky. Také v reálném životě má většina porovnávání mnoho pravidel:nejen necitlivost na malá a velká písmena, ale také necitlivost na akcent ("přízvuk" je značka připojená ke znaku jako v němčině 'ö') a vícenásobná mapování znaků (jako je pravidlo, že 'ö' ='OE ' v jednom ze dvou německých kolekcí).



  1. Jak najít součet více sloupců v tabulce v SQL Server 2005?

  2. Proaktivní monitorování MySQL (Developer Studio/Advisors Angle)

  3. Mohu otevřít databázi pouze pro čtení ze složky res/asset v systému Android bez kopírování do složky databáze

  4. Cast z VARCHAR do INT - MySQL