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. Sortierattribute können sich auf die Ergebnisse abfragen 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.
Die Sortierreihenfolge legt die Bitmuster fest, die jedes Zeichen in einem Datensatz darstellen, Datensatz bestimmt die Regeln für das Sortieren und Vergleichen von Daten, einschließlich der Behandlung von Zeichen in verschiedenen Sprachen und Zeichensätzen.
Sortierattribute beeinflussen abfragen , indem sie festlegen, wie Sortier- und Vergleichsoperationen in Klauseln wie JOINS und ORDER BY funktionieren, und wirken sich dabei auf Textdaten der Datentypen CHAR, VARCHAR, NCHAR und NVARCHAR aus.
SQL Server unterstützt vier Sortierreihenfolgeebenen: auf Serverebene (Standard für alle Datenbanken), auf Datenbankebene (Festlegung über CREATE oder ALTER mit der COLLATE-Klausel), auf Spaltenebene (mithilfe der ALTER-Anweisung) und auf Ausdrucksebene (Festlegung in ORDER BY- oder SORT BY-Klauseln).
In SQL Server erfordert die Änderung der Server-Sortierreihenfolge nach der Erstellung den Export aller Nutzer , die Festlegung der Master-Sortierreihenfolge und anschließend den erneuten Import der Datenbanken. PostgreSQL lässt keine Änderungen der Sortierreihenfolge auf Datenbankebene nach der Erstellung zu, allerdings können Sie die Standardeinstellungen mithilfe der COLLATE-Klausel in SQL-Anweisungen überschreiben.
Mit der COLLATE-Klausel können Sie die Standard-Sortierreihenfolge in CREATE DATABASE-Anweisungen, ALTER TABLE-Befehlen für Spalten oder innerhalb von SQL-Abfragen für bestimmte Vorgänge wie Sortieren und Vergleichen überschreiben.
Dies ist die Standard-Sortierreihenfolge für SQL Server in der Sprachumgebung „US-Englisch“ (en-US), wobei CP1 für die Codeseite steht, CI für „Groß-/Kleinschreibung wird nicht berücksichtigt“ und AS für „Akzentzeichen werden berücksichtigt“.
Codeseiten sind Zeichensätze, die von Betriebssystemen und Datenbanksystemen verwendet werden, um Tastaturlayouts und Zeichen nationaler Sprachen in vom System verständliche Bitfolgen abzubilden; sie bilden die Grundlage für Sortierregeln.
Ja, die auf Serverebene festgelegten Sortiereinstellungen gelten als Standard für alle von dieser Instanz erstellten System- und Nutzer , einschließlich temporärer Tabellen.