Nå som vi er kjent med begrepet tegndatatyper CHAR, VARCHAR og TEKST henholdsvis I PostgreSQL, vil denne artikkelen fokusere på å markere hovedforskjellen mellom Dem.
hva er CHAR datatype?
denne datatypen brukes til å lagre tegn med begrenset lengde. Den er representert somchar(n)
ellercharacter(n)
I PostgreSQL, hvor n representerer grensen for lengden på tegnene.Hvis n ikke er angitt, er den standard char(1)
eller character(1)
.
Hva er VARCHAR datatype?
denne datatypen brukes til å lagre tegn med begrenset lengde. Den er representert som varchar(n)
I PostgreSQL, hvor n representerer grensen for lengden på tegnene. Hvis n ikke er angitt, er det som standard varchar
som har ubegrenset lengde.
HVA ER tekstdatatype?
denne datatypen brukes til å lagre karakter av ubegrenset lengde. Den er representert som text
I PostgreSQL. Utførelsen av varchar (uten n) og tekst er den samme.
tabellen nedenfor gir den store forskjellen MELLOM RØYE, VARCHAR og TEKST:
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 avkortet | Blir avkortet | Renains intakt | Hvis n ikke er spesifisert | n = 1 | n = uendelig | Konsept av n eksisterer ikke |
Spørringssyklus | Ekstra syklus for å sjekke lengden | ekstra syklus for å sjekke lengden | ingen evaluering av tegnlengde |
eksempel:
la oss lage et nytt bord(si character_tests) for demonstrasjonen ved hjelp av kommandoene nedenfor:
CREATE TABLE character_tests ( id serial PRIMARY KEY, x CHAR (1), y VARCHAR (10), z TEXT);
la Oss nå sette inn en ny rad i char_test-tabellen ved hjelp av kommandoen nedenfor:
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' );
På dette stadiet Vil PostgreSQL øke en feil da datatypen til x-kolonnen er char(1) og vi prøvde å sette inn en streng med tre tegn i denne kolonnen som vist nedenfor:
ERROR: value too long for type character(1)
så la oss nå fikse det.
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' );
nå vil vi få samme feil for y-kolonnen som antall inntastede tegn er større enn 10 som vist nedenfor:
ERROR: value too long for type character(10)
la oss fikse det også.
INSERT INTO character_tests (x, y, z)VALUES ( 'Y', 'varchar(n)', 'This is a very long text for the PostgreSQL text column' );
Nå som vi har klart å tildele verdiene til tegndatatypen, sjekk den ved å kjøre kommandoen nedenfor:
SELECT * FROM character_tests;
Utgang: