Összefoglaló: Ebben az oktatóanyagban megismerkedhet a PostgreSQL karakteres adattípusaival, köztük a CHAR, VARCHAR és TEXT típusokkal, és megtanulhatja, hogyan válassza ki a megfelelő karaktertípusokat a tábláihoz.
Bevezetés a PostgreSQL karaktertípusaihoz
A PostgreSQL három elsődleges karaktertípust biztosít: CHARACTER(n) vagy CHAR(n), CHARACTER VARYINGING(n) vagy VARCHAR(n) és TEXT, ahol n egy pozitív egész szám.
A következő táblázat illusztrálja a PostgreSQL karaktertípusait:
| Character Types | Description |
CHARACTER VARYING(n), VARCHAR(n) |
variable-length with length limit |
CHARACTER(n), CHAR(n) |
meghatározott hosszúságú, üres kitöltéssel |
TEXT, VARCHAR |
változó korlátlan hosszúságú |
A CHAR(n) és a VARCHAR(n) is legfeljebb n karaktert tárolhat. Ha olyan karakterláncot próbál tárolni, amely több mint n karaktert tartalmaz, a PostgreSQL hibát ad ki.
Az egyik kivétel azonban az, hogy ha a túlzott karakterek mind szóközök, a PostgreSQL a szóközöket a maximális hosszra (n) vágja le és tárolja a karaktereket.
Ha egy karakterláncot kifejezetten CHAR(n) vagy VARCHAR(n) karakterre vetítünk, a PostgreSQL a karakterláncot n karakterre vágja le, mielőtt beszúrná a táblázatba.
A TEXT adattípus korlátlan hosszúságú karakterláncot tárolhat.
Ha a VARCHAR adattípushoz nem adjuk meg az n egész számot, akkor úgy viselkedik, mint a TEXT adattípus. A VARCHAR (a n méret nélkül) és a TEXT teljesítménye megegyezik.
A VARCHAR adattípus esetében a hosszmeghatározó megadásának egyetlen előnye, hogy a PostgreSQL hibát fog kiadni, ha a VARCHAR(n) oszlopba n karakternél hosszabb karakterláncot próbálunk beszúrni.
A VARCHAR-től eltérően a CHARACTER vagy CHAR a hosszmeghatározó nélkül (n) megegyezik a CHARACTER(1) vagy CHAR(1) adattípussal.
A többi adatbázis-rendszertől eltérően a PostgreSQL-ben nincs teljesítménybeli különbség a három karaktertípus között.
A legtöbb esetben a TEXT vagy a VARCHAR adattípust érdemes használni. A VARCHAR(n)-t pedig akkor használja, ha azt szeretné, hogy a PostgreSQL ellenőrizze a hosszúságot.
PostgreSQL karaktertípus példák
Nézzünk egy példát, hogy lássuk, hogyan működnek a CHAR , VARCHAR és TEXT adattípusok.
Először hozzunk létre egy új táblát character_tests néven:
Code language: SQL (Structured Query Language) (sql)
Ezután illesszünk be egy új sort a character_tests táblába.
Code language: SQL (Structured Query Language) (sql)
A PostgreSQL hibát adott ki:
Code language: SQL (Structured Query Language) (sql)
Ez azért van, mert a x oszlop adattípusa char(1), és ebbe az oszlopba egy három karakterből álló karakterláncot próbáltunk beszúrni. Javítsuk ki:
Code language: SQL (Structured Query Language) (sql)
A PostgreSQL egy másik hibát ad ki:
Code language: Shell Session (shell)
Ez azért van, mert egy 10 karakternél hosszabb karakterláncot próbáltunk beszúrni a y oszlopba, amelynek adattípusa varchar(10).
A következő utasítás sikeresen beszúr egy új sort a character_tests táblába.
Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
Code language: Shell Session (shell)
Summary
- A PostgreSQL támogatja a
CHAR,VARCHARésTEXTadattípusokat. ACHARfix hosszúságú karaktertípus, míg aVARCHARés aTEXTváltozó hosszúságú karaktertípusok. - A
VARCHAR(n)t használja, ha egy oszlopba való beszúrás vagy frissítés előtt a karakterlánc hosszát (n) szeretné érvényesíteni. -
VARCHAR(a hosszmeghatározó nélkül) ésTEXTegyenértékű.
- Az útmutató hasznos volt?
- IgenNem