most, hogy ismerjük a Char, VARCHAR és TEXT karakter adattípusok fogalmát a PostgreSQL-ben, ez a cikk a legfontosabb különbség kiemelésére összpontosít.
mi a CHAR adattípus?
Ez az adattípus korlátozott hosszúságú karakterek tárolására szolgál. char(n)
vagy character(n)
A PostgreSQL-ben, ahol n A karakterek hosszának határát jelenti.Ha n nincs megadva, akkor alapértelmezés szerint char(1)
vagy character(1)
.
mi a VARCHAR adattípus?
Ez az adattípus korlátozott hosszúságú karakterek tárolására szolgál. varchar(n)
A PostgreSQL-ben, ahol n A karakterek hosszának határát jelenti. Ha n nincs megadva, akkor alapértelmezés szerint varchar
, amely korlátlan hosszúságú.
mi a szöveges adattípus?
Ez az adattípus korlátlan hosszúságú karakter tárolására szolgál. text
A PostgreSQL-ben. A varchar teljesítménye (n nélkül) és a szöveg ugyanaz.
az alábbi táblázat a Char, VARCHAR és a szöveg közötti fő különbséget mutatja:
Comparison | CHAR | VARCHAR | TEXT |
---|---|---|---|
Syntax | CHAR(n) | VARCHAR(n) | TEXT |
Representation | char(n) or character(n) |
varchar(n) |
text |
Length of characters | Limited | Limited | Unlimited |
Spaces and padding | Gets csonka | lesz csonkolt | renains ép |
ha n nincs megadva | n = 1 | n = végtelen | fogalma n nem létezik |
lekérdezési ciklus | Extra ciklus a hossz ellenőrzéséhez | extra ciklus a hossz ellenőrzéséhez | nincs kiértékelés a karakterhosszról |
példa:
hozzunk létre egy új táblát(mondjuk character_tests) a bemutatóhoz az alábbi parancsok segítségével:
CREATE TABLE character_tests ( id serial PRIMARY KEY, x CHAR (1), y VARCHAR (10), z TEXT);
most illesszünk be egy új sort a char_test táblába az alábbi paranccsal:
INSERT INTO character_tests (x, y, z)VALUES ( 'Geeks', 'This is a test for varchar', 'This is a very long text for the PostgreSQL text column' );
ebben a szakaszban a PostgreSQL hibát fog felvetni, mivel az X oszlop adattípusa char(1), és megpróbáltunk három karakterből álló karakterláncot beilleszteni ebbe az oszlopba az alábbiak szerint:
ERROR: value too long for type character(1)
tehát most javítsuk meg.
INSERT INTO character_tests (x, y, z)VALUES ( 'G', 'This is a test for varchar', 'This is a very long text for the PostgreSQL text column' );
most ugyanazt a hibát kapjuk az y oszlopban, mivel a beírt karakterek száma nagyobb, mint 10 az alábbiak szerint:
ERROR: value too long for type character(10)
javítsuk meg is.
INSERT INTO character_tests (x, y, z)VALUES ( 'Y', 'varchar(n)', 'This is a very long text for the PostgreSQL text column' );
most, hogy sikeresen hozzárendeltük az értékeket a karakter adattípushoz, ellenőrizze az alábbi parancs futtatásával:
SELECT * FROM character_tests;
kimenet: