Postgres VARCHAR vs TEXT

Einführung

Wenn Sie mit PostgreSQL arbeiten, ist es wichtig, die verschiedenen Datentypen zu kennen, damit Sie bei der Erstellung Ihrer Datenbanktabellen die richtigen Typen auswählen können. Zwei gängige Zeichentypen, die in PostgreSQL verwendet werden, sind die Typen TEXT und VARCHAR. Obwohl es viele Ähnlichkeiten zwischen diesen beiden Typen gibt, gibt es auch einige wichtige Unterschiede. In diesem Artikel werden wir mehr über diese Zeichentypen erfahren und die Unterschiede zwischen Postgres VARCHAR und TEXT vergleichen.

Voraussetzungen

Bevor wir mit unserem Postgres VARCHAR vs. TEXT Vergleich fortfahren, lassen Sie uns eine Pause einlegen, um einige Voraussetzungen zu überprüfen, die erforderlich sind, um den Beispielen in diesem Artikel zu folgen:

  • Stellen Sie sicher, dass der PostgreSQL Server richtig installiert und konfiguriert wurde. Der Dienst muss im Hintergrund ausgeführt werden.

Linux- und Windows-Benutzer können PostgreSQL hier herunterladen:

  • Um den PostgreSQL-Server in einer Linux-Umgebung zu starten, verwenden Sie den folgenden Befehl:
1
sudo service postgresql start
  • Sie können mit folgendem Befehl sehen, ob der Dienst läuft:
1
service postgresql status

Die Ausgabe dieses Befehls wird wie folgt aussehen:

1
2
3
4
5
6
7
8
9
â— postgresql.service – PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor prese
Active: active (exited) since Thu 2019-08-01 14:51:20 PST; 36min ago
Process: 1230 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 1230 (code=exited, status=0/SUCCESS)
Aug 01 14:51:20 user-UX330UAK systemd: Startet PostgreSQL RDBMS…
Aug 01 14:51:20 user-UX330UAK systemd: Starten von PostgreSQL RDBMS.
Zeilen 1-8/8 (END)
  • Wenn Sie auf einem Windows-Rechner arbeiten, können Sie die folgenden Anweisungen zum Starten, Stoppen und Neustarten des PostgreSQL-Servers verwenden:
  1. Systemsteuerung öffnen
  2. Verwaltung öffnen
  3. Dienste öffnen
  4. Dienst PostgreSQL Server suchen
  5. Schließlich den Dienst starten, stoppen oder neu starten

Was sind die PostgreSQL Zeichentypen?

Es gibt drei Zeichentypen in PostgreSQL: character(n), das allgemein als char(n) bekannt ist, character varying(n), das allgemein als varchar(n) bekannt ist, und text. Der Wert von n muss bei diesen Typen eine positive ganze Zahl sein. Alle PostgreSQL-Zeichentypen können Zeichenketten mit bis zu n Zeichen speichern.

Wenn Sie versuchen, eine längere Zeichenkette in einer Spalte dieses PostgreSQL-Zeichentyps zu speichern, erhalten Sie eine Fehlermeldung, es sei denn, die Zeichen, die das Limit überschreiten, bestehen ausschließlich aus Leerzeichen. Ist dies der Fall, wird die überschreitende Zeichenkette bzw. werden die überschreitenden Zeichen auf die zulässige Maximallänge gekürzt.

Der Datentyp VARCHAR verhält sich ähnlich wie der Datentyp TEXT, wenn der Wert von n nicht angegeben wird. Die Leistung beider Zeichentypen ist auch ähnlich, wenn n weggelassen wird.

Im Gegensatz zu anderen Datenbanken gibt es bei den PostgreSQL-Zeichentypen keinen Leistungsunterschied zwischen ihnen. Die meiste Zeit werden wir TEXT oder VARCHAR verwenden, je nach unseren Bedürfnissen; wir verwenden VARCHAR(n), wenn wir wollen, dass PostgreSQL eine Überprüfung auf Längenbegrenzungen durchführt.

Beispiele mit den PostgreSQL-Zeichentypen

In diesem Beispiel setzen wir unseren Postgres-Vergleich zwischen VARCHAR und TEXT fort, indem wir die Zeichentypen und ihre Funktionsweise in einer PostgreSQL-Datenbank genauer betrachten.

Bevor wir mit unseren Beispielen fortfahren können, müssen wir eine Tabelle erstellen:

1
2
3
4
5
CREATE TABLE pgsql_char_sample (
id serial PRIMARY KEY,
my_char VARCHAR (8),
my_text TEXT
);

Nachdem wir unsere Tabelle erstellt haben, können wir eine Einfügeoperation durchführen:

1
2
3
4
5
6
INSERT INTO pgsql_char_sample (my_char, mein_text)
VALUES
(
‚Dieser Beispielstring ist für die Spalte varchar‘,
‚Dieser Beispielstring ist für die Textspalte, die in die PostgreSQL-Tabelle eingefügt werden soll‘
);

Die oben gezeigte Anweisung wird zu einem Fehler führen:

1
FEHLER: VALUE too long FOR TYPE CHARACTER VARYING(8)

Dieser Fehler tritt auf, weil versucht wurde, eine Zeichenfolge mit mehr als acht Zeichen in die Spalte my_char einzufügen, die einen Datentyp von varchar(8) hat.

Lassen Sie uns erneut versuchen, Beispieldaten einzufügen, diesmal mit anderen Werten:

1
2
3
4
5
6
INSERT INTO pgsql_char_sample (my_char, mein_text)
VALUES
(
‚String‘,
‚Dieser Beispielstring ist für die Text-Spalte, die in die PostgreSQL-Tabelle eingefügt werden soll‘
);

Um zu überprüfen, ob unser Einfügevorgang erfolgreich war, können wir die folgende Anweisung verwenden:

1
SELECT * FROM pgsql_char_sample;

Das Ergebnis sollte etwa so aussehen:

1
2
3
4
id | my_char | my_text
—-+———+———————————————————————————-
1 | String | This sample string IS FOR the text COLUMN TO be inserted IN the PostgreSQL TABLE
(1 ROW)

In dem Beispiel, das wir uns angesehen haben, sehen wir, dass der einzige Unterschied zwischen den Spalten VARCHAR(n) und TEXT darin besteht, dass für die Spalte VARCHAR eine Grenze gesetzt werden kann. In diesem Fall haben wir die VARCHAR auf eine Länge von acht Zeichen festgelegt, so dass keine längeren Zeichenfolgen eingefügt werden können. Wie bereits erwähnt, haben die Zeichentypen VARCHAR und TEXT keine erkennbaren Unterschiede in der Leistung.

Fazit

Wenn Sie Zeichendaten in PostgreSQL speichern, ist es wichtig, den richtigen Datentyp für jede Spalte in Ihrer Tabelle zu wählen. In diesem Artikel haben wir die Postgres-Zeichentypen VARCHAR und TEXT verglichen und ihre grundlegenden Gemeinsamkeiten und Unterschiede besprochen. Mit den Informationen in diesem Artikel werden Sie in der Lage sein, Ihre eigenen Datenbanktabellen in PostgreSQL zu entwerfen und die richtigen Datentypen für Ihre Bedürfnisse zu wählen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.