Char vs. Varchar

Char vs. Varchar
Die Zeichen- und Varchar -Datentypen in SQL sind am wichtigsten, da wir uns mit String -Daten speichern können.

Dieses Tutorial wird jeden Datentyp durchläuft und den Unterschied skizzieren.

Der SQL -Char -Typ

Der Zeichenentyp bezieht sich auf einen Datentyp, der zum Speichern von Zeichenketten mit fester Länge verwendet wird.

Mit dem Zeichen -Typ können Sie eine bestimmte Größe für die Daten angeben, die Sie in dieser Zeile einfügen.

Obwohl die Implementierung des Zeichenentyps je nach Datenbank-Engine in Standard-SQL geringfügig variieren kann.

Um eine Länge eines Zeichenentyps zu definieren, können Sie die Syntax verwenden:

char (n)

Wobei N auf die Anzahl (Länge) der Zeichen bezieht, die Sie speichern können.

Da der Zeichenentyp mit fester Länge festgelegt ist und eine Zeichenfolge mit weniger Zeichen als die angegebene Größe einfügt, ist die Zeichenfolge mit zusätzlichen Leerzeichen gepolstert, um mit der festgelegten Zeichenfolge übereinzustimmen.

In ähnlicher Weise wird die Zeichenfolge in ähnlicher Weise eine Zeichenfolge mit größerer Länge als die festgelegte Größe einfügen, die in die festgelegte Größe abgeschnitten wird.

Beginnen Sie zur Veranschaulichung zunächst eine Beispieldatenbank:

Beachten Sie, dass wir in diesem Beispiel PostgreSQL verwenden, aber Sie können jeden SQL -Aroma auswählen.

$ psql -u postgres

Erstellen Sie eine Beispieldatenbank:

postgres =# Datenbank erstellen sample_db;

Stellen Sie eine Verbindung zur Datenbank her.

postgres =# \ c sample_db

Erstellen Sie eine Tabelle mit zwei Zeilen. Die erste sollte eine ID mit automatischer Inkrement (seriell) und der andere von char type sein.

Tabelle char_v_varchar erstellen (id serial, full_name char (15))

Beachten Sie, dass die maximale Länge der Spalte Full_Name 15 beträgt.

Lassen Sie uns nun einige Beispieldaten hinzufügen.

In char_v_varchar (full_name) values ​​('Aaron Wise') einfügen; - 10 Zeichen
In char_v_varchar (full_name) values ​​einfügen ('Aaron Wise Jack'); - 15 Zeichen
in char_v_varchar (full_name) values ​​einfügen ('Aaron weise einen anderen Namen bla bla'); - Mehr als 15 Zeichen

Achten Sie auf die drei Einfügenaussagen. Der erste fügt einen Wert von 10 Zeichen ein, der zweite fügt einen Wert von genau 15 Zeichen hinzu, und der andere fügt einen Wert von Zeichen von mehr als 15 hinzu.

Der erste Wert wird mit 5 weiteren Speicherzeichen gepolstert, um die festgelegte Länge zu maximieren, wenn wir den obigen Code ausführen.

Der zweite passt perfekt und der dritte wird abgeschnitten.

Das Hinzufügen eines Wertes größer als die festgelegte Länge ist in einigen Datenbankmotoren verboten. In PostgreSQL beispielsweise schlägt die zweite Anweisung bei Einfügen mit einem Fehler fehl:

Fehler: Wert zu lang für Typzeichen (15) zu lange
SQL -Staat: 22001

Um die Länge der Datensätze zu überprüfen, können wir die Abfrage ausführen:

Wählen Sie Länge (full_name) aus char_v_varchar;

Der obige Code sollte die Länge jeder Zeile in der Tabelle zurückgeben:

Länge
--------
15
15
(2 Zeilen)

Beachten Sie, dass in einigen Datenbankmotoren Sie möglicherweise einen Wert von kleinerer Länge hinzufügen können, ohne zusätzliche Räume.

Es ist gut zu bedenken.

Der SQL Varchar -Typ

Im Gegensatz zum Zeichen für Zeichen, VARCHAR oder variabler Zeichen speichert die Zeichenzeichenfolgen unterschiedlicher Längen.

Dies bedeutet, dass Sie die Größe der Varchar -Spalte definieren können. Sie können jedoch Werte der Größe von größer oder weniger als die festgelegte Länge hinzufügen.

Nehmen wir unten ein Beispiel:

table char_v_varchar erstellen (id serial, full_name varchar);

In diesem Fall definieren wir eine Tabelle mit der Varchar -Spalte. Da die Größe der Varchar variieren kann, müssen wir keine Länge einstellen.

Wir können dann drei Werte mit unterschiedlicher Größe einfügen als:

In char_v_varchar (full_name) values ​​('Aaron Wise') einfügen; - 10 Zeichen
In char_v_varchar (full_name) values ​​einfügen ('Aaron Wise Jack'); - 15 Zeichen
in char_v_varchar (full_name) values ​​einfügen ('Aaron weise einen anderen Namen bla bla'); - Mehr als 15 Zeichen
Wählen Sie Länge (full_name) aus char_v_varchar;

Der obige Code sollte drei Datensätze einfügen und die Größe der einzelnen zurückgeben.

Abschließende Gedanken

Dies liegt dann auf dem Unterschied zwischen einem Zeichen und einem Varchar -Typ. Ein Zeichen hält Zeichenzeichenfolgen fester Größe, während ein Varchar eine Zeichenfolge von unterschiedlichen Längen enthält.

Obwohl der Varchar für die meisten Situationen anwendbar zu sein mag, kann sie bei unangemessener Verwendung erhebliche Leistungserscheinungen erfolgen. Wenn die Leistung daher ein kritischer Faktor für Ihre Datenbank ist, sollten Sie einen Zeichen verwenden, es sei denn.