PostgreSQL obsługuje znakowy typ danych o nazwie VARCHAR. Ten typ danych jest używany do przechowywania znaków o ograniczonej długości. Reprezentowany jest jako varchar(n)
w PostgreSQL, gdzie n określa limit długości znaków. Jeśli n nie zostanie określone, domyślnie ustawiony jest varchar
, który ma nieograniczoną długość. Próba zapisania dłuższego ciągu znaków w kolumnie określonej przez varchar(n)
spowoduje wystąpienie błędu w PostgreSQL. Wyjątkiem jest jednak sytuacja, gdy nadmiarowe znaki są spacjami, wówczas PostgreSQL obetnie je do maksymalnej długości i zapisze ciąg. Jedyną zaletą określenia długości dla typu danych varchar jest to, że PostgreSQL sprawdzi i wyświetli błąd, jeśli spróbujesz wstawić dłuższy ciąg do kolumny varchar(n).
Syntax: variable_name VARCHAR(n)
Przykład :
Utwórzmy nową tabelę (powiedzmy, char_test) dla celów demonstracyjnych za pomocą poniższych poleceń:
CREATE TABLE varchar_test ( id serial PRIMARY KEY, x VARCHAR (1), y VARCHAR(10));
Teraz wstawmy nowy wiersz do tabeli char_test za pomocą poniższego polecenia:
INSERT INTO varchar_test (x, y)VALUES ( 'Geeks', 'This is a test for char' );
Na tym etapie PostgreSQL zgłosi błąd, ponieważ typ danych kolumny x to char(1), a my próbowaliśmy wstawić do tej kolumny ciąg znaków składający się z trzech znaków, jak pokazano poniżej:
ERROR: value too long for type character varying(1)
Więc teraz naprawmy to.
INSERT INTO varchar_test (x, y)VALUES ( 'G', 'This is a test for char' );
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 varying(10)
Naprawmy to również.
INSERT INTO varchar_test (x, y)VALUES ( 'G', 'hello Geek' );
Teraz, gdy udało nam się pomyślnie przypisać wartości do typu danych znakowych, sprawdź to, uruchamiając poniższe polecenie:
SELECT * FROM varchar_test;
Output: