GeeksforGeeks

teraz, gdy znamy koncepcję znaków typów danych CHAR, VARCHAR i TEXT odpowiednio w PostgreSQL, w tym artykule skupimy się na podświetleniu kluczowej różnicy między nimi.

Co to jest typ danych CHAR?
Ten typ danych służy do przechowywania znaków o ograniczonej długości. Jest reprezentowany jako char(n) lub character(n) w PostgreSQL, gdzie N oznacza ograniczenie długości znaków.Jeśli nie podano n, domyślnie jest to char(1) lubcharacter(1).

Co to jest typ danych VARCHAR?
Ten typ danych służy do przechowywania znaków o ograniczonej długości. Jest reprezentowany jako varchar(n) w PostgreSQL, gdzie N oznacza granicę długości znaków. Jeśli nie podano n, domyślnie jest to varchar , która ma nieograniczoną długość.

Co to jest typ danych tekstowych?
Ten typ danych służy do przechowywania znaków o nieograniczonej długości. Jest reprezentowany jako text w PostgreSQL. Działanie varchara (bez n) i tekstu jest takie samo.

poniższa tabela zawiera główną różnicę między CHAR, VARCHAR i 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 zostaje obcięte zmienia się w stanie nienaruszonym
jeśli nie podano n N = 1 N = nieskończoność koncepcja n nie istnieje
cykl zapytań dodatkowy cykl sprawdzania długości dodatkowy cykl sprawdzania długości brak oceny długości znaków

przykład:
stwórzmy nową tabelę(powiedzmy, character_tests) dla demonstracji za pomocą poniższych poleceń:

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

teraz wstawmy nowy wiersz do tabeli char_test używając poniższego polecenia:

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' );

na tym etapie PostgreSQL spowoduje błąd, ponieważ typ danych kolumny x to char(1) i próbowaliśmy wstawić do tej kolumny ciąg z trzema znakami, jak pokazano poniżej:

ERROR: value too long for type character(1)

więc teraz to naprawmy.

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' );

teraz otrzymamy ten sam błąd dla kolumny y, ponieważ liczba wprowadzonych znaków jest większa niż 10, Jak pokazano poniżej:

ERROR: value too long for type character(10)

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

teraz, gdy udało nam się pomyślnie przypisać wartości do typu danych character, sprawdź to, uruchamiając poniższe polecenie:

SELECT * FROM character_tests;

Wyjście:

Article Tags :

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.