GeeksforGeeks

Nachdem wir nun mit dem Konzept der Zeichendatentypen CHAR, VARCHAR und TEXT in PostgreSQL vertraut sind, konzentriert sich dieser Artikel darauf, den Hauptunterschied zwischen ihnen hervorzuheben.

Was ist der CHAR-Datentyp?
Dieser Datentyp wird verwendet, um Zeichen begrenzter Länge zu speichern. Es wird in PostgreSQL als char(n) oder character(n) dargestellt, wobei n die Begrenzung der Länge der Zeichen darstellt.Wenn n nicht angegeben ist, wird standardmäßig char(1) oder character(1) .

Was ist der VARCHAR-Datentyp?
Dieser Datentyp wird verwendet, um Zeichen begrenzter Länge zu speichern. Es wird in PostgreSQL als varchar(n) dargestellt, wobei n die Begrenzung der Länge der Zeichen darstellt. Wenn n nicht angegeben ist, wird standardmäßig varchar mit unbegrenzter Länge verwendet.

Was ist ein Textdatentyp?
Dieser Datentyp wird verwendet, um Zeichen unbegrenzter Länge zu speichern. Es wird in PostgreSQL als text dargestellt. Die Leistung von varchar (ohne n) und Text ist gleich.

Die folgende Tabelle zeigt den Hauptunterschied zwischen CHAR, VARCHAR und TEXT:

Comparison CHAR VARCHAR TEXT
Syntax CHAR(n) VARCHAR(n) TEXT
Representation char(n) or character(n) varchar(n) text
Length of characters Limited Limited Unlimited
Spaces and padding Gets truncated Gets truncated Renains intact
If n not specified n = 1 n = infinity Concept of n doesn’t exist
Query cycle Extra cycle to check length Extra cycle to check length länge

Beispiel:
Erstellen wir eine neue Tabelle(z. B. character_tests) für die Demonstration mit den folgenden Befehlen:

CREATE TABLE character_tests ( id serial PRIMARY KEY, x CHAR (1), y VARCHAR (10), z TEXT);

Nun fügen wir mit dem folgenden Befehl eine neue Zeile in die Tabelle char_test ein:

INSERT INTO character_tests (x, y, z)VALUES ( 'Geeks', 'This is a test for varchar', 'This is a very long text for the PostgreSQL text column' );

Zu diesem Zeitpunkt löst PostgreSQL einen Fehler aus, da der Datentyp der x-Spalte char(1) ist und wir versucht haben, eine Zeichenfolge mit drei Zeichen in diese Spalte einzufügen, wie unten gezeigt:

ERROR: value too long for type character(1)

Also, jetzt lass es uns beheben.

INSERT INTO character_tests (x, y, z)VALUES ( 'G', 'This is a test for varchar', 'This is a very long text for the PostgreSQL text column' );

Jetzt erhalten wir den gleichen Fehler für die y-Spalte, da die Anzahl der eingegebenen Zeichen größer als 10 ist, wie unten gezeigt:

ERROR: value too long for type character(10)

Lassen Sie es uns auch beheben.

INSERT INTO character_tests (x, y, z)VALUES ( 'Y', 'varchar(n)', 'This is a very long text for the PostgreSQL text column' );

Nachdem wir es geschafft haben, die Werte erfolgreich dem Zeichendatentyp zuzuweisen, überprüfen Sie dies, indem Sie den folgenden Befehl ausführen:

SELECT * FROM character_tests;

Ausgabe:

Article Tags :

Schreibe einen Kommentar

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