V této části se seznámíme s fungováním datového typu PostgreSQL varchar, který umožňuje ukládat znaky neomezené délky. A také si ukážeme příklady datového typu Varchar a mezer.

Co je datový typ PostgreSQL Varchar?

V PostgreSQL se datový typ Varchar používá k uchovávání znaku neomezené délky. A může uchovávat řetězec o maximální délce 65 535 bajtů.

Jinými slovy můžeme říci, že datový typ PostgreSQL Varchar používá znakový datový typ, který je označen jako VARCHAR.

  • Nejčastěji bychom měli používat datové typy Varchar a Text. Pokud chceme, aby PostgreSQL kontrolovala délku, pak použijeme VARCHAR(n).
  • V PostgreSQL se varchar zobrazuje jako Varchar (n), kde n označuje limit délky znaku. Pokud n není popsáno, je výchozí hodnotou Varchar, který má nekonečnou délku.
  • Pokud se pokusíme získat delší řetězec ve sloupci zadaném pomocí Varchar(n), PostgreSQL ve výstupu objeví chybu.
  • Stále máme výjimku, pokud jsou všechny další znaky mezery, pak PostgreSQL ořízne mezery na maximální délku (n) a řetězec uloží.
  • PostgreSQL provede kontrolu a vyvolá chybu, pokud definujeme specifikátor délky pro datový typ Varchar nebo pokud se pokusíme do sloupce Varchar(n) vložit více než n znaků.

Poznámka: Datový typ varchar je řetězec proměnné délky, který může nést speciální znaky, čísla a písmena. A n ukládá text, jehož délka může mít maximálně 0 až 65535 znaků.

Syntaxe datového typu PostgreSQL Varchar

Syntaxe datového typu PostgreSQL Varchar je následující:

Příklady datového typu PostgreSQL Varchar

Podívejme se na různé příklady, abychom pochopili, jak datový typ PostgreSQL Varchar funguje.

Pro tento účel vytvoříme jednu novou tabulku s názvem Varchar_demo table pomocí příkazu CREATE a vložíme do ní některé hodnoty pomocí příkazu INSERT.

Vytvoříme tabulky Varchar_demo do databáze Organization pomocí příkazu CREATE:

Výstup

Po úspěšném provedení výše uvedeného příkazu byla vytvořena tabulka Varchar_demo, jak ukazuje následující obrázek:

Po vytvoření tabulky Varchar_demo do ní vložíme některé hodnoty pomocí příkazu INSERT.

Výstup

Po provedení výše uvedeného příkazu dostaneme následující výstup, PostgreSQL vydá chybu, že „hodnota je příliš dlouhá pro typ character varying (1)“.

To znamená, že datový typ sloupce P je VARCHAR (1), a kde se snažíme do konkrétního sloupce vložit řetězec o třech znacích, jak můžeme pozorovat na následujícím obrázku:

Pro vyřešení výše uvedené chyby použijeme následující příkaz:

Výstup

Po provedení výše uvedeného příkazu PostgreSQL opětovně vydá podobnou chybu pro sloupec Q, což znamená, že datový typ sloupce Q je VARCHAR (10). Naproti tomu počet zadaných znaků je větší než 10, jak můžeme pozorovat na následujícím snímku obrazovky:

Pro vyřešení obou výše uvedených chyb tedy použijeme následující příkaz:

Output

Po provedení výše uvedeného příkazu dostaneme následující výsledek: hodnota byla úspěšně vložena do tabulky Varchar_demo.

Jak vidíme na výše uvedeném snímku obrazovky, hodnoty sloupce P a Q jsme úspěšně vložili.

Po vytvoření a vložení hodnot tabulky Varchar_demo použijeme příkaz SELECT pro vrácení všech řádků tabulky Varchar_demo:

Výstup

Po provedení výše uvedeného příkazu dostaneme následující výsledek, kde vidíme, že obě hodnoty sloupce P a sloupce Q byly úspěšně vloženy do tabulky Varchar_demo.

Příklad 2

Podívejme se ještě na jeden příklad, na kterém se podrobně seznámíme s datovým typem Varchar. Vytvoříme jednu novou tabulku jako Varchar_demo2 pomocí příkazu CREATE a vložíme do ní některé hodnoty pomocí příkazu INSERT.

Vytvoříme tabulku Varchar_demo2 do podobné databáze jako výše, kterou je Organizace pomocí příkazu CREATE:

Výstup

Tabulka Varchar_demo2 byla po provedení výše uvedeného příkazu úspěšně vytvořena, jak ukazuje následující snímek obrazovky:

Po vytvoření tabulky Varchar_demo2 do ní můžeme vložit některé hodnoty pomocí příkazu INSERT.

Výstup

Po provedení výše uvedeného příkazu. PostgreSQL zobrazí chybové hlášení „hodnota je příliš dlouhá pro typ Character (1)“. Výstup to vysvětluje jasněji.

Příklad PostgreSQL VARCHAR a mezery

PostgreSQL při ukládání nerozšiřuje mezeru pro hodnoty varchar a PostgreSQL také při ukládání nebo obnově hodnot Varchar bere koncové mezery.

Pro pochopení si ukážeme následující příklad, ve kterém příkazem Insert přidáme hodnoty do sloupce Name v tabulce Varchar_demo2, kterou jsme vytvořili ve výše uvedeném příkladu:

Výstup

Po provedení výše uvedeného příkazu dostaneme následující výsledek: hodnota byla úspěšně vložena do tabulky Varchar_demo2.

Po vytvoření a vložení hodnot tabulky Varchar_demo2 použijeme příkaz SELECT k získání hodnot z tabulky Varchar_demo2:

Output

Po provedení výše uvedeného příkazu dostaneme následující výsledek, kdy PostgreSQL obsahuje při počítání délky koncovou mezeru, protože nezvyšuje délku sloupce.

Pokusíme-li se vložit hodnotu Varchar s koncovými mezerami, která překročila délku sloupce, a PostgreSQL koncové mezery zkrátí. Také PostgreSQL vyvolá varování. Jak jsme si ukázali v následujícím příkladu:

Výstup

Po provedení výše uvedeného příkazu dostaneme následující výsledek:

V uvedeném příkazu je délka vložené hodnoty šest do sloupce Name. A hodnota je do sloupce stále vložena. PostgreSQL však před přidáním hodnoty odřízne koncovou mezeru.

Můžeme si to ověřit pomocí nápovědy následujícího příkazu, kde je příkaz Insert úspěšně přidán.

Výstup

Po provedení výše uvedeného příkazu dostaneme níže uvedený výstup ještě s varováním, které je:

Rozdíl mezi datovým typem PostgreSQL CHAR a PostgreSQL VARCHAR

Datové typy PostgreSQL CHAR a VARCHAR se řídí znakem ASCII. Jsou si prakticky podobné, ale liší se v ukládání a získávání dat z databáze.

Následující tabulka upozorňuje na základní rozdíly mezi datovým typem CHAR a VARCHAR:

Datový typ PostgreSQL CHAR Datový typ PostgreSQL VARCHAR
PostgreSQL podporuje statické přidělování paměti pro datový typ Char. PostgreSQL podporuje dynamické přidělování paměti pro datový typ Varchar.
Datový typ Char je také znám jako Character. Datový typ Varchar se také nazývá Variable Character.
Datový typ Char nemůže obsahovat více než 255 znaků. Datový typ Varchar může obsahovat až 65535 znaků.
Datový typ Char uchovává hodnoty v pevné délce, kterou reprezentujeme při vytváření tabulky. Datový typ Varchar uchovává hodnoty v řetězci proměnné délky s jedno nebo dvoubajtovým prefixem.
Může být doplněn koncovou mezerou, aby obsahoval zadanou délku. Nemůže být doplněn žádným znakem, mezerou, při jejich ukládání.

Přehled

V kapitole o datovém typu PostgreSQL Varchar jsme se seznámili s následujícími tématy:

  • Datový typ Varchar se používá pro různě dlouhé typy znaků.
  • Pokud chceme zkontrolovat délku řetězce (n) před vložením nebo aktualizací do sloupce, můžeme použít datový typ Varchar(n).
  • Používáme datový typ PostgreSQL Varchar a mezery.

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.