PostgreSQL tukee merkkitietotyyppiä nimeltä VARCHAR. Tätä tietotyyppiä käytetään pituudeltaan rajoitettujen merkkien tallentamiseen. Se esitetään PostgreSQL:ssä muodossa varchar(n)
, jossa n edustaa merkkien pituusrajaa. Jos n:ää ei määritetä, oletusarvo on varchar
, jonka pituus on rajoittamaton. Jos varchar(n)
:llä määriteltyyn sarakkeeseen yritetään tallentaa pidempi merkkijono, PostgreSQL antaa virheilmoituksen. Yksi poikkeus on kuitenkin se, että jos ylimääräiset merkit ovat kaikki välilyöntejä, PostgreSQL typistää välilyönnit maksimipituuteen ja tallentaa merkkijonon. Varchar-tietotyypin pituuden määrittelyn ainoa etu on se, että PostgreSQL tarkistaa ja antaa virheen, jos varchar(n)-sarakkeeseen yritetään lisätä pidempi merkkijono.
Syntax: variable_name VARCHAR(n)
Esimerkki :
Luotaan esittelyä varten uusi taulukko(vaikkapa char_test) alla olevilla komennoilla:
CREATE TABLE varchar_test ( id serial PRIMARY KEY, x VARCHAR (1), y VARCHAR(10));
Sijoitetaan nyt uusi rivi char_test-taulukkoon alla olevalla komennolla:
INSERT INTO varchar_test (x, y)VALUES ( 'Geeks', 'This is a test for char' );
Tässä vaiheessa PostgreSQL antaa virheen, koska x-sarakkeen tietotyyppi on char(1) ja yritimme lisätä tähän sarakkeeseen merkkijonon, jossa on kolme merkkiä, kuten alla näkyy:
ERROR: value too long for type character varying(1)
Korjataan nyt asia.
INSERT INTO varchar_test (x, y)VALUES ( 'G', 'This is a test for char' );
Nyt saamme saman virheen y-sarakkeeseen, koska syötettyjen merkkien määrä on suurempi kuin 10, kuten alla näkyy:
ERROR: value too long for type character varying(10)
Korjataan nyt sekin.
INSERT INTO varchar_test (x, y)VALUES ( 'G', 'hello Geek' );
Nyt kun olemme onnistuneet määrittämään arvot merkkitietotyyppiin, tarkista se suorittamalla alla oleva komento:
SELECT * FROM varchar_test;
Tulos: