Ö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
ésTEXT
adattípusokat. ACHAR
fix hosszúságú karaktertípus, míg aVARCHAR
és aTEXT
vá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) ésTEXT
egyenértékű.
- Az útmutató hasznos volt?
- IgenNem