Mysql
 sql >> Database >  >> RDS >> Mysql

Cosa significano esattamente set di caratteri e confronto?

Da MySQL documenti :

Un insieme di caratteri è un insieme di simboli e codifiche. Una collazione è un insieme di regole per confrontare i caratteri in un insieme di caratteri. Mettiamo in chiaro la distinzione con un esempio di set di caratteri immaginario.

Supponiamo di avere un alfabeto con quattro lettere:'A', 'B', 'a', 'b'. Assegna a ogni lettera un numero:'A' =0, 'B' =1, 'a' =2, 'b' =3. La lettera 'A' è un simbolo, il numero 0 è la codifica per 'A' e la combinazione di tutte e quattro le lettere e delle loro codifiche è un set di caratteri.

Supponiamo ora di voler confrontare due valori di stringa, 'A' e 'B'. Il modo più semplice per farlo è guardare le codifiche:0 per 'A' e 1 per 'B'. Poiché 0 è minore di 1, diciamo che "A" è minore di "B". Ora, quello che abbiamo appena fatto è applicare un confronto al nostro set di caratteri. Il confronto è un insieme di regole (solo una regola in questo caso):"confronta le codifiche". La chiamiamo la più semplice di tutte le regole di confronto abinarie.

Ma cosa succede se vogliamo dire che le lettere minuscole e maiuscole sono equivalenti? Allora avremmo almeno due regole:(1) trattare le lettere minuscole 'a' e 'b' come equivalenti ad 'A' e 'B'; (2) quindi confrontare le codifiche. Chiamiamo questo confronto senza distinzione tra maiuscole e minuscole. È un po' più complesso di un confronto binario.

Nella vita reale, la maggior parte dei set di caratteri ha molti caratteri:non solo "A" e "B" ma interi alfabeti, a volte più alfabeti o sistemi di scrittura orientali con migliaia di caratteri, insieme a molti simboli speciali e segni di punteggiatura. Anche nella vita reale, la maggior parte delle regole di confronto ha molte regole:non solo l'insensibilità al maiuscolo/minuscolo, ma anche l'insensibilità all'accento (un "accento" è un contrassegno associato a un carattere come in tedesco 'ö') e le combinazioni di caratteri multipli (come la regola che 'ö' ='OE ' in una delle due Germancollations).