Was ist Kollation: Ein umfassender Überblick
Die Kollationierung gilt für alle Datenbankverwaltungssysteme und wird verwendet, um festzulegen, wie die Zeichen behandelt werden. Verschiedene Sprachen verwenden oft eigene Zeichensätze für ihre Landessprache. Viele Sprachen haben nationale Zeichen, die beim Sortieren und Vergleichen von Zeichenwerten berücksichtigt werden müssen.
Um mehr über die Sortierung zu erfahren, ist es nützlich, ein wenig darüber zu wissen, wie Betriebssysteme und Anwendungen wie Datenbankverwaltungssysteme mit nationalen Zeichensätzen umgehen und wie sie sortiert werden. Eine der ersten Fragen, die Ihnen bei der Installation eines neuen Betriebssystems gestellt werden, ist die nach dem Land, in dem Sie leben, und dem Dialekt der Landessprache, den Sie verwenden. Dadurch wird Ihr Tastaturlayout, einschließlich der landessprachlichen Zeichen wie Währungssymbole auf Ihrer Tastatur, der richtigen Bitfolge zugeordnet, die das Betriebssystem versteht. Betriebssysteme und Datenbanksysteme bezeichnen diese Zeichensätze als Codepages, die in der Regel proprietär sind, aber oft Standards wie Unicode verwenden. In den Beispielen werden Sie Verweise auf UTF8 und lateinische Zeichensätze sehen. Sobald wir den Zeichensatz festgelegt haben, der vom zugrunde liegenden Betriebssystem und den Datenbankverwaltungssystemen verwendet werden soll, können wir uns um die Sortierreihenfolge kümmern, die je nach Zeichensatz unterschiedlich sein kann.
Kollation Definition
Eine Sortierung legt die Bitmuster fest, die jedes Zeichen in einem Datensatz repräsentieren, und bestimmt die Regeln, die zum Sortieren und Vergleichen von Daten verwendet werden. Kollationierungsattribute können sich auf die Anfrage auswirken, da sie die Funktionsweise von Sortier- und Vergleichsoperationen bestimmen. Die Klauseln einer SQL SELECT-Anweisung, wie JOINS und ORDER BY, vergleichen Textdaten von Datentypen wie CHAR, VARCHAR, NCHAR und NVARCHAR. Die durch die Kollation festgelegten Codepages und Zeichensätze bestimmen, welche Zeichen angezeigt werden können.
Kollationierungseinstellungen legen den Standard für alle Systemdatenbanken und Nutzer fest, die von dieser Instanz erstellt werden, einschließlich temporärer Tabellen.
Beispiele für Sortieroptionen
Wenn Sie eine SQL Server-Datenbank installieren, wird die Standardsortierreihenfolge durch das Gebietsschema des Betriebssystems bestimmt. Beispiel: US-Englisch (en-US), das Gebietsschema ist SQL_Latin1_General_CP1_CI_AS. Sie können die Standardeinstellung des Betriebssystems in einer CREATE DATABASE-Anweisung mit der COLLATE-Klausel außer Kraft setzen. Wenn die Datenbank erstellt ist, können Sie mit der ALTER-Anweisung Änderungen an der Datenbankdefinition vornehmen.
Die bestehenden Nutzer werden nicht in die neue Einstellung migriert, so dass Sie einen umständlichen Prozess des Exports aller Nutzer , der Einstellung der Master-Sortierung und des anschließenden Imports der Nutzer durchführen müssen.
Nachfolgend ein Beispiel für die Änderung der Einstellung einer vorhandenen Spalte:
ALTER TABLE dbo.UserTable ALTER COLUMN DepartmentName VARCHAR(80) COLLATE Latin1_General_100_CI_AI_SC_UTF8;
SQL Server unterstützt mehrere Optionen bei der Angabe einer Sortierung, einschließlich Groß-/Kleinschreibung und Empfindlichkeit.
Kollationsebenen
In SQL Server können Sie die folgenden Ebenen festlegen:
- Serverebene - Legt eine Standardsortierung für alle auf diesem Server erstellten Datenbanken fest.
- Datenbankebene - Damit können Sie eine Sortierung nur für diese Datenbank festlegen, indem Sie CREATE- oder ALTER-Befehle mit der COLLATE-Klausel verwenden.
- Spaltenebene - Sie können die ALTER-Anweisung zur Angabe der Spaltenebene verwenden.
- Ausdrucksebene - Ermöglicht die Festlegung der Sortierreihenfolge, die in einer ORDER BY- oder SORT BY-Klausel verwendet werden soll.
Datenbanken Beispiele
Wir haben SQL Server bereits ausführlich behandelt. Um eine breitere Perspektive zu erhalten, können wir uns andere Datenbanken ansehen:
PostgreSQL - Ermöglicht es, die Sortierreihenfolge und das Verhalten der Zeichenklassifizierung von Daten pro Spalte oder pro Vorgang festzulegen. Im Gegensatz zu SQL Server können Sortierungen auf Datenbankebene nach der Erstellung nicht mehr geändert werden. Sie können jedoch den Standard mit der COLLATE-Klausel in der SQL-Anweisung überschreiben, wie im folgenden Beispiel:
SELECT a < ('Joe' COLLATE "fr_FR") FROM MyTable;
MySQL - Sortierungen werden bei der Erstellung der Datenbank mit der folgenden Syntax festgelegt:
CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
Nach der Erstellung können Sie mit dem Befehl ALTER DATABASE die Sortierreihenfolge für eine bestimmte Datenbank ändern.
In ähnlicher Weise können Sie die COLLATE-Klausel für CREATE oder ALTER einer Tabelle verwenden.
Besuchen Sie unsere Website, um mehr über Actian Datenbankprodukte und -lösungen zu erfahren.