Ebben a részben a PostgreSQL varchar adattípusok működését fogjuk megérteni, amely lehetővé teszi számunkra a korlátlan hosszúságú karakterek tárolását. És példákat is látunk a Varchar adattípusra és a szóközökre.
Mi az a PostgreSQL Varchar adattípus?
A PostgreSQL-ben a Varchar adattípus a végtelen hosszúságú karakter tárolására szolgál. És maximum 65 535 bájt hosszúságú karakterláncot képes tárolni.
Más szóval azt mondhatjuk, hogy a PostgreSQL Varchar adattípus a VARCHAR jelű karakteres adattípust használja.
- A legtöbbször a Varchar és a Text adattípusokat kell használnunk. Ha azt akarjuk, hogy a PostgreSQL ellenőrizze a hosszúságot, akkor a VARCHAR(n)-t használjuk.
- A PostgreSQL-ben a varchar illusztráció a Varchar (n), ahol az n a karakter hosszának határértékét jelöli. Ha n nincs leírva, akkor alapértelmezés szerint Varchar, amely végtelen hosszúságú.
- Ha a Varchar(n)-rel megadott oszlopban hosszabb karakterláncot próbálunk kapni, akkor a PostgreSQL hibát jelenít meg a kimeneten.
- Még akkor is van kivétel, ha a további karakterek mind szóközök, akkor a PostgreSQL a szóközöket a maximális (n) hosszúságra vágja és tárolja a karakterláncot.
- A PostgreSQL ellenőrizni fogja és hibát jelez, ha a Varchar adattípushoz hosszmeghatározót definiálunk, vagy ha n-nél több karaktert próbálunk beilleszteni a Varchar(n) oszlopba.
Megjegyzés: A varchar adattípus egy változó hosszúságú karakterlánc, amely speciális karaktereket, számokat és betűket is tartalmazhat. És n olyan szöveget tárol, amelynek hossza legfeljebb 0 és 65535 karakter között lehet.
A PostgreSQL Varchar adattípus szintaxisa
A PostgreSQL Varchar adattípus szintaxisa a következő:
Példák a PostgreSQL Varchar adattípusra
Lássunk különböző példákat, hogy megértsük, hogyan működik a PostgreSQL Varchar adattípus.
Ezért létrehozunk egy új táblát Varchar_demo tábla néven a CREATE parancs segítségével és beszúrunk néhány értéket az INSERT parancs segítségével.
Varchar_demo táblákat hozunk létre a Szervezet adatbázisban a CREATE parancs segítségével:
Kimenet
A fenti parancs sikeres végrehajtása után létrejött a Varchar_demo tábla, ahogy az az alábbi képen látható:
Amikor a Varchar_demo tábla létrejött, az INSERT parancs segítségével beszúrunk néhány értéket.
Kimenet
A fenti parancs végrehajtása után a következő kimenetet kapjuk, a PostgreSQL hibaüzenetet ad ki, hogy “az érték túl hosszú a változó típusú karakterhez (1)”.
Ez azt jelenti, hogy a P oszlop adattípusa VARCHAR (1), és ahol egy három karakterből álló karakterláncot próbálunk beszúrni egy adott oszlopba, ahogy az alábbi képernyőképen megfigyelhetjük:
A fenti hiba feloldásához az alábbi parancsot fogjuk használni az alábbiak szerint:
Output
A fenti parancs végrehajtásakor a PostgreSQL ismét hasonló hibát ad ki a Q oszlopra, ami azt jelenti, hogy a Q oszlop adattípusa VARCHAR (10). Ezzel szemben a beírt karakterek száma több mint 10, ahogy az alábbi képernyőképen is megfigyelhetjük:
Ezért mindkét fenti hiba elhárítására az alábbi parancsot fogjuk használni:
Output
A fenti parancs végrehajtása után a következő eredményt kapjuk: az érték sikeresen be lett illesztve a Varchar_demo táblába.
Amint a fenti képernyőképen láthatjuk, sikeresen beszúrtuk a P és Q oszlop értékeit.
A Varchar_demo tábla értékeinek létrehozása és beszúrása után a SELECT paranccsal visszaadjuk a Varchar_demo tábla összes sorát:
Kimenet
A fenti parancs végrehajtása után a következő eredményt kapjuk, ahol láthatjuk, hogy a P és a Q oszlop értékét is sikeresen bevittük a Varchar_demo táblába.
Példa 2
Lássunk még egy példát a Varchar adattípus részletes megismeréséhez. Létrehozunk egy új táblát Varchar_demo2 néven a CREATE parancs segítségével, és beszúrunk néhány értéket az INSERT parancs segítségével.
Elkészítjük a Varchar_demo2 táblát a fentihez hasonló adatbázisban, amely a CREATE parancs segítségével a Szervezés:
Kimenet
A Varchar_demo2 tábla a fenti parancs végrehajtása után sikeresen létrejött, ahogy az alábbi képernyőképen látható:
Amint a Varchar_demo2 táblát létrehoztuk, az INSERT parancs segítségével beszúrhatunk néhány értéket.
Kimenet
A fenti parancs végrehajtása után. A PostgreSQL a következő hibaüzenetet adja: “az érték túl hosszú a Character (1) típushoz”. A kimenet ezt jobban megmagyarázza.
Példa a PostgreSQL VARCHAR és a szóközök
A PostgreSQL a varchar értékek tárolásakor nem hosszabbítja meg a szóközt, és a PostgreSQL a Varchar értékek tárolásakor vagy visszanyerésekor a hátul lévő szóközöket is elveszi.
Ezért nézzük meg az alábbi példát, hogy megértsük, amelyben az Insert parancsot, és a fenti példában létrehozott Varchar_demo2 táblázat Name oszlopába értékeket adunk be:
Output
A fenti parancs végrehajtása után a következő eredményt kapjuk: az érték sikeresen be lett illesztve a Varchar_demo2 táblázatba.
A Varchar_demo2 tábla értékeinek létrehozása és beszúrása után a SELECT paranccsal lekérdezzük az értékeket a Varchar_demo2 táblából:
Output
A fenti parancs végrehajtása után a következő eredményt kapjuk: A PostgreSQL a hosszszámításnál tartalmazza az utolsó szóközt, mivel az nem növeli az oszlop hosszát.
Ha olyan Varchar értéket próbálunk beilleszteni, amelynek az oszlop hosszát meghaladta a hátul lévő szóközökkel, és a PostgreSQL a hátul lévő szóközöket levágja. Emellett a PostgreSQL figyelmeztetést ad ki. Ahogy az alábbi példában is látható:
Kimenet
A fenti parancs végrehajtásakor az alábbi eredményt kapjuk:
A fenti parancsban a beillesztett érték hossza hat a Name oszlopba. És az érték továbbra is beillesztésre kerül az oszlopba. Azonban a PostgreSQL az érték hozzáadása előtt levágja az utolsó szóközt.
Az alábbi parancs súgójával ellenőrizhetjük, ahol az Insert parancs sikeresen beillesztésre kerül.
Kimenet
A fenti parancs végrehajtása után az alábbi kimenetet kapjuk még mindig egy figyelmeztetéssel, ami a következő: Az 1. sorban lévő ‘Név’ oszlop esetében az adatok csonkolódtak:
Különbség a PostgreSQL CHAR és a PostgreSQL VARCHAR adattípus között
A PostgreSQL CHAR és a VARCHAR adattípusok mindkettő ASCII karaktert követ. Gyakorlatilag hasonlóak, de különböznek az adatok tárolásában és az adatbázisból való kinyerésében.
A következő táblázat rávilágít a CHAR és VARCHAR adattípus közötti lényeges különbségekre:
PostgreSQL CHAR adattípus | PostgreSQL VARCHAR adattípus |
---|---|
A PostgreSQL támogatja a Char adattípus statikus memóriafoglalást. | A PostgreSQL támogatja a dinamikus memóriafoglalást a Varchar adattípushoz. |
A Char adattípust Character néven is ismerik. | A Varchar adattípust változó karakternek is nevezik. |
A char adattípus legfeljebb 255 karaktert tartalmazhat. | A Varchar adattípus legfeljebb 65535 karaktert tartalmazhat. |
A Char adattípus fix hosszúságú karakterláncban tárolja az értékeket, amit egy táblázat létrehozása során ábrázolunk. | A Varchar adattípus változó hosszúságú karakterláncban tárolja az értékeket egy vagy két bájt hosszúságú előtaggal. |
Ez a megadott hosszúságot tartalmazó karakterek tárolásakor nem lehet kitölteni semmilyen karakterrel, szóközzel. |
Áttekintés
A PostgreSQL Varchar adattípusról szóló részben a következő témaköröket ismertük meg:
- A Varchar adattípus felhasználása változó hosszúságú karaktertípusokhoz.
- Ha a karakterlánc (n) hosszát szeretnénk ellenőrizni, mielőtt beszúrnánk vagy frissítenénk az oszlopba, akkor a Varchar(n) adattípust használhatjuk.
- A PostgreSQL Varchar adattípust és a szóközöket használjuk.
Mégis a PostgreSQL Varchar adattípust használjuk.