Ich lerne sqlite aus einem Buch, in dem Kollatierung und Kollatierungssequenz mehrfach erwähnt wurden. Was bedeutet es genau in der Datenbankwelt?
quelle
Ich lerne sqlite aus einem Buch, in dem Kollatierung und Kollatierungssequenz mehrfach erwähnt wurden. Was bedeutet es genau in der Datenbankwelt?
Grundsätzlich, wie man Strings sortiert und vergleicht.
Beispiele:
Vergleiche:
Sortierung:
Sonderzeichenäquivalenz
Einige SQL (SQL Server 2008+)
DECLARE @foo TABLE (bar varchar(2))
INSERT @foo VALUES ('z'), ('æ'), ('ø'), ('å'), ('ss'), ('ß'), ('a'), ('ä')
SELECT * FROM @foo ORDER BY bar COLLATE Finnish_Swedish_100_CI_AS
SELECT * FROM @foo ORDER BY bar COLLATE Norwegian_100_CI_AS
SELECT * FROM @foo ORDER BY bar COLLATE Latin1_General_100_CS_AS --german (western europe) and default
SELECT * FROM @foo ORDER BY bar COLLATE German_PhoneBook_100_CS_AS
"Kollation" ist wahrscheinlich am besten auf etymology.com definiert,
Ende 14c., "Akt des Zusammenbringens und Vergleichens"
Es hat sich in den letzten 600 Jahren überhaupt nicht geändert. "Zusammenstellen" bedeutet "Zusammenstellen" und ob es sich um die chronologische oder sonstige Reihenfolge eines Buches in einer Datenbank handelt, ist alles gleich.
Was für die Informatik gilt, ist , den Speichermechanismus von der Bestellung zu trennen . Möglicherweise haben Sie von ASCII-Betical gehört . Dies bezieht sich auf einen Vergleich, der auf der binären Codierung von ASCII-Zeichen basiert. In diesem System sind Speicherung und Sortierung zwei Elemente in einem. Wenn sich die ASCII-standardisierte "Codierung" jemals ändern würde, würde sich auch die "Sortierung" (Reihenfolge) ändern.
POSIX begann damit zu brechen LC_COLLATE
. Aber als wir in Unicode einsteigen, entsteht ein Konsortium, das auch Kollatierungen standardisiert: die Intensivstation.
In der SQL-Spezifikation gibt es zwei Erweiterungen, um Kollatierungen bereitzustellen:
F690
: “Sortierungsunterstützung:
Inklusive collation name
, collation clause
, collation definition
und drop collation
.
F692
: Erweiterte Kollatierungsunterstützung,
Schließt das Anhängen einer anderen Standardkollatierung an eine Spalte im Schema ein.
Im Wesentlichen bieten diese die Möglichkeit, CREATE
und DROP
Sortierungen, sie für die Betreiber und Sorten zu spezifizieren und eine Standardeinstellung für Spalten zu definieren.
Weitere Informationen zu den Angeboten von SQL finden Sie unter
Anstatt ein begrenztes Beispiel einzufügen, ist hier die PostgreSQL-Testsuite ziemlich umfangreich. Schauen Sie sich mindestens den ersten Link an und suchen Sie nach'Türkiye' COLLATE "tr-x-icu" ILIKE '%KI%' AS "false"
collate.icu.utf8.out
collate.linux.utf8.out
collate.out
Wahrscheinlich nicht wert, ausgecheckt zu werden, aber ich habe es der Vollständigkeit halber hier platziert und langweilige POSIX-Prüfungen durchgeführt.Sortierreihenfolge. Lochkarten wurden zusammengestellt. Flatfile-Datensätze werden sortiert. Dies gilt nicht nur für Datenbanken.
Es ist für Text selbsterklärend, aber für Binärdaten, die als Zeichen gespeichert sind, kann es schwieriger sein.