W tej części zrozumiemy działanie typów danych PostgreSQL varchar, które pozwalają na przechowywanie znaków o nieograniczonej długości. Zobaczymy również przykłady użycia typu danych Varchar oraz spacji.
Czym jest typ danych PostgreSQL Varchar?
W PostgreSQL typ danych Varchar jest używany do przechowywania znaków o nieograniczonej długości. Może on pomieścić ciąg znaków o maksymalnej długości 65 535 bajtów.
Innymi słowy możemy powiedzieć, że typ danych PostgreSQL Varchar wykorzystuje znakowy typ danych, który jest oznaczany jako VARCHAR.
- Najczęściej powinniśmy używać typów danych Varchar oraz Text. Jeśli chcemy, aby PostgreSQL sprawdzał długość, wówczas używamy VARCHAR(n).
- W PostgreSQL varchar przedstawia się jako Varchar (n), gdzie n jest używane do oznaczenia limitu długości znaku. Jeśli n nie jest opisane, domyślnie jest to Varchar, który ma nieskończoną długość.
- Jeśli próbujemy uzyskać dłuższy ciąg znaków w kolumnie określonej za pomocą Varchar(n), PostgreSQL wyświetli błąd na wyjściu.
- Jeszcze mamy wyjątek, jeśli dodatkowe znaki są spacjami, wtedy PostgreSQL przytnie spacje do maksymalnej długości (n) i zapisze ciąg znaków.
- PostgreSQL sprawdzi i podniesie błąd, jeśli określimy specyfikator długości dla typu danych Varchar lub jeśli spróbujemy wstawić więcej niż n znaków do kolumny Varchar(n).
Uwaga: Typ danych varchar jest łańcuchem o zmiennej długości, który może zawierać znaki specjalne, liczby i litery. A n przechowuje tekst, którego długość może wynosić maksymalnie od 0 do 65535 znaków.
Syntaktyka typu danych PostgreSQL Varchar
Składnia typu danych PostgreSQL Varchar jest następująca:
Przykłady typu danych PostgreSQL Varchar
Zobaczmy różne przykłady, aby zrozumieć działanie typu danych PostgreSQL Varchar.
W tym celu utworzymy jedną nową tabelę o nazwie Varchar_demo za pomocą polecenia CREATE oraz wstawimy do niej pewne wartości za pomocą polecenia INSERT.
Tworzymy tabele Varchar_demo w bazie danych Organization za pomocą polecenia CREATE:
Wyjście
Po pomyślnym wykonaniu powyższego polecenia, tabela Varchar_demo została utworzona, jak pokazano na poniższym obrazku:
Po wygenerowaniu tabeli Varchar_demo, wstawimy do niej pewne wartości za pomocą polecenia INSERT.
Wyjście
Po wykonaniu powyższego polecenia otrzymamy następujący wynik, PostgreSQL wyświetli błąd, że „wartość jest zbyt długa dla typu znak zmienny (1)”.
To oznacza, że typem danych kolumny P jest VARCHAR (1), a my próbujemy wstawić do danej kolumny ciąg znaków składający się z trzech znaków, jak widać na poniższym zrzucie ekranu:
Aby rozwiązać powyższy błąd, użyjemy poniższego polecenia w następujący sposób:
Output
Po wykonaniu powyższego polecenia PostgreSQL ponownie wydaje podobny błąd dla kolumny Q, co oznacza, że typ danych kolumny Q to VARCHAR (10). Natomiast liczba wprowadzonych znaków jest większa niż 10, co możemy zaobserwować na poniższym zrzucie ekranu:
W związku z tym, aby rozwiązać oba powyższe błędy, użyjemy poniższego polecenia:
Output
Po wykonaniu powyższego polecenia otrzymamy następujący wynik: wartość została wstawiona pomyślnie do tabeli Varchar_demo.
Jak widać na powyższym zrzucie ekranu, udało nam się pomyślnie wstawić wartości kolumn P i Q.
Po utworzeniu i wstawieniu wartości tabeli Varchar_demo, użyjemy polecenia SELECT, aby zwrócić wszystkie wiersze tabeli Varchar_demo:
Wyjście
Po wykonaniu powyższego polecenia, otrzymamy następujący wynik, w którym możemy zobaczyć, że obie wartości kolumny P i kolumny Q zostały pomyślnie wprowadzone do tabeli Varchar_demo.
Przykład 2
Zobaczmy jeszcze jeden przykład, aby szczegółowo poznać typ danych Varchar. Tworzymy jedną nową tabelę jako Varchar_demo2 za pomocą polecenia CREATE i wstawiamy do niej pewne wartości za pomocą polecenia INSERT.
Utworzymy Varchar_demo2 w podobnej bazie danych jak powyżej, która jest Organizacją przy użyciu polecenia CREATE:
Wyjście
Tabela Varchar_demo2 została pomyślnie utworzona po wykonaniu powyższego polecenia, jak pokazano na poniższym zrzucie ekranu:
Gdy tabela Varchar_demo2 została wygenerowana, możemy wstawić do niej pewne wartości przy użyciu polecenia INSERT.
Wyjście
Po wykonaniu powyższego polecenia. PostgreSQL wyświetla komunikat o błędzie „wartość jest zbyt długa dla typu Znak (1)”. Dane wyjściowe wyjaśniają to dokładniej.
Przykład PostgreSQL VARCHAR i spacje
PostgreSQL nie rozszerza przestrzeni dla wartości varchar podczas przechowywania, a PostgreSQL pobiera również końcowe spacje podczas przechowywania lub odzyskiwania wartości Varchar.
W tym celu zapoznamy się z poniższym przykładem, w którym wykonujemy polecenie Insert i dodajemy wartości w kolumnie Name w tabeli Varchar_demo2, którą utworzyliśmy w powyższym przykładzie:
Wyjście
Po wykonaniu powyższego polecenia otrzymamy następujący wynik: wartość została pomyślnie wstawiona do tabeli Varchar_demo2.
Po utworzeniu i wstawieniu wartości do tabeli Varchar_demo2, użyjemy polecenia SELECT, aby pobrać wartości z tabeli Varchar_demo2:
Wyjście
Po wykonaniu powyższego polecenia otrzymamy następujący wynik, gdzie PostgreSQL zawiera spację końcową w liczeniu długości, ponieważ nie zwiększa ona długości kolumny.
Jeśli spróbujemy wstawić wartość Varchar ze spacjami, które przekraczają długość kolumny, PostgreSQL obetnie te spacje. Ponadto PostgreSQL wyświetli ostrzeżenie. Jak pokazano w poniższym przykładzie:
Wyjście
Po wykonaniu powyższego polecenia otrzymamy następujący wynik:
W powyższym poleceniu długość wstawionej wartości w kolumnie Nazwa wynosi sześć. Wartość jest nadal wstawiana do kolumny. Jednak PostgreSQL obcina końcową spację przed dodaniem wartości.
Możemy to sprawdzić w pomocy poniższego polecenia, gdzie polecenie Insert jest dodane pomyślnie.
Wyjście
Po wykonaniu powyższego polecenia otrzymamy poniższe wyjście jeszcze z ostrzeżeniem, które brzmi: Data truncated for column 'Name’ at row 1:
Różnica między typami danych PostgreSQL CHAR i PostgreSQL VARCHAR
Typy danych PostgreSQL CHAR i VARCHAR są typami podążającymi za znakami ASCII. Są one praktycznie podobne, ale różnią się w przechowywaniu i pobieraniu danych z bazy danych.
Poniższa tabela przedstawia istotne różnice pomiędzy typami danych CHAR i VARCHAR:
Typ danych PostgreSQL CHAR | Typ danych PostgreSQL VARCHAR |
---|---|
PostgreSQL obsługuje statyczne przydzielanie pamięci dla typu danych Char. | PostgreSQL obsługuje dynamiczne przydzielanie pamięci dla typu danych Varchar. |
Typ danych Char znany jest również jako Znak. | Typ danych Varchar nazywany jest również zmiennym znakiem. |
Typ danych char nie może zawierać więcej niż 255 znaków. | Typ danych Varchar może zawierać do 65535 znaków. |
Typ danych Char przechowuje wartości o stałej długości, które reprezentujemy podczas tworzenia tabeli. | Typ danych Varchar przechowuje wartości w łańcuchu o zmiennej długości z jedno- lub dwubajtowym prefiksem długości. |
Może być wyściełany spacją trailingową, aby zawierał określoną długość. | Nie może być wyściełany żadnym znakiem, ze spacją, gdy są przechowywane. |
Przegląd
W rozdziale PostgreSQL typ danych Varchar poznaliśmy następujące tematy:
- Rodzaj danych Varchar dla typów znaków o różnej długości.
- Jeśli chcemy sprawdzić długość łańcucha znaków (n) przed wstawieniem lub aktualizacją w kolumnie, możemy użyć typu danych Varchar(n).
- Używamy typu danych PostgreSQL Varchar oraz spacji.
.