Come la risposta precedente, il set di caratteri è un insieme di caratteri (lettere, numeri, ideogrammi, ecc.) assegnati a un numero; per poterli vedere, devi avere il font (le piccole "immagini" che leggiamo). Erano importanti usando LatinX, perché per ogni X, lo stesso numero (byte) poteva riferirsi a un altro carattere.
Al giorno d'oggi è più importante selezionare la codifica: lo standard è UTF-8, la rappresentazione di maggior successo di Unicode (compatibile con ASCII ma così flessibile da includere tutti i linguaggi, anche cinesi e giapponesi) e lo standard W3C. In altre parole, include tutti i set di caratteri.
Collazione: è una parola vecchio stile, derivata dal latino. Significa: confronta una copia (manoscritto) con l'originale per trovare le differenze (errori o modifiche). È stato molto utile in passato, ma ora è quasi un arcaismo perché i nostri documenti e libri sono scritti utilizzando computer e la copia è sempre identica all'originale. Esempio: in italiano (derivato dal latino) c'è il verbo "collazionare", ma è nei dizionari e nessuno lo usa.
Quindi, la collation definisce il comportamento degli operatori di confronto: =, & gt ;, & lt ;, < =, > = ...
Ovviamente quegli operatori sono abituati a decidere se due stringhe sono uguali, o se una parola è "maggiore" di un'altra, molto importante se vogliamo ordinare.
Le lettere non sono nello stesso ordine per ogni lingua, quindi una parola può essere maggiore di un'altra usando una collazione, ma non ne usa un'altra. Vedi [1] per un esempio pratico.
-
le regole di confronto "bin" sono le più restrittive: SELECT "b"="B" = > FALSE
-
le regole di confronto "ci" non sono case sensitive: SELECT "b"="B" = > TRUE
-
il "generale" tende a ignorare alcune differenze: SELECT "a"="à" = > TRUE
-
altro sono specifici per una o più lingue. Esempio "svedese" (non so perché lo svedese sia spesso un default)
Sto ancora cercando un sito web in cui il comportamento di ogni collation sia descritto in dettaglio ... questi esempi sono dovuti alla mia esperienza.
[1]