Was bedeutet "Kollation"?

15

Ich lerne sqlite aus einem Buch, in dem Kollatierung und Kollatierungssequenz mehrfach erwähnt wurden. Was bedeutet es genau in der Datenbankwelt?

mumtaz
quelle

Antworten:

15

Grundsätzlich, wie man Strings sortiert und vergleicht.

Beispiele:

Vergleiche:

  • Akzent: à vs ä vs a
  • Fall: A vs a

Sortierung:

  • Schwedisch: z -> å -> ä -> ö
  • Dänisch: z -> æ -> ø -> å

Sonderzeichenäquivalenz

  • Deutsch ß = ss

Wikipedia

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
gbn
quelle
1

Etymologie

"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.

Computerwissenschaften

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.

SQL

In der SQL-Spezifikation gibt es zwei Erweiterungen, um Kollatierungen bereitzustellen:

  • F690: “Sortierungsunterstützung:

    Inklusive collation name, collation clause, collation definitionund 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, CREATEund DROPSortierungen, 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

Beispiele

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"

Evan Carroll
quelle
-2

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.

mckenzm
quelle