Tässä osiossa ymmärrämme PostgreSQL:n varchar-tietotyyppien toiminnan, jonka avulla voimme tallentaa rajoittamattoman pituisen merkin. Ja näemme myös esimerkkejä Varchar-tietotyypistä ja välilyönneistä.
Mikä on PostgreSQL:n Varchar-tietotyyppi?
PostgreSQL:ssä Varchar-tietotyyppiä käytetään rajoittamattoman pituisen merkin säilyttämiseen. Ja se voi pitää sisällään merkkijonon, jonka enimmäispituus on 65 535 tavua.
Voidaan siis sanoa, että PostgreSQL:n Varchar-tietotyyppi käyttää merkkidatatyyppiä, joka merkitään VARCHAR:lla.
- Enimmäkseen meidän tulisi käyttää Varchar- ja Text-tietotyyppejä. Jos haluamme PostgreSQL:n tarkistavan pituuden, käytämme VARCHAR(n).
- PostgreSQL:ssä varchar-tietotyyppi havainnollistaa muotoa Varchar (n), jossa n:llä merkitään merkin pituuden rajaa. Jos n:ää ei ole kuvattu, se on oletusarvoisesti Varchar, jolla on ääretön pituus.
- Jos yritämme saada pidemmän merkkijonon sarakkeeseen, joka on määritetty Varchar(n):llä, PostgreSQL aiheuttaa virheen tulosteessa.
- Siltikin meillä on poikkeus, jos lisämerkit ovat kaikki välilyöntejä, niin PostgreSQL trimmaa välilyönnit maksimipituuteen (n) ja tallentaa merkkijonon.
- PostgreSQL tarkistaa ja antaa virheen, jos määrittelemme Varchar-tietotyypin pituusmääritteen tai jos yritämme lisätä Varchar(n)-sarakkeeseen yli n merkkiä.
Huomautus: Varchar-tietotyyppi on muuttuvan pituinen merkkijono, joka voi sisältää erikoismerkkejä, numeroita ja kirjaimia. Ja n tallentaa tekstiä, jonka pituus voi olla enintään 0-65535 merkkiä.
PostgreSQL Varchar -datatyypin syntaksi
PostgreSQL Varchar -datatyypin syntaksi on seuraava:
Esimerkkejä PostgreSQL Varchar -datatyypistä
Katsotaanpa erilaisia esimerkkejä, jotta ymmärretään, miten PostgreSQL:n Varchar-tietotyyppi toimii.
Luotaan tätä varten yksi uusi taulukko nimeltä Varchar_demo table CREATE-komennon avulla ja lisätään joitakin arvoja INSERT-komennolla.
Luomme Varchar_demo-tauluja Organisaatio-tietokantaan CREATE-komennon avulla:
Tulos
Yllä olevan komennon onnistuneen suorittamisen jälkeen Varchar_demo-taulu on luotu, kuten alla olevassa kuvassa näkyy:
Kun Varchar_demo-taulu on luotu, lisäämme siihen joitakin arvoja INSERT-komennolla.
Tulos
Toteutettuamme yllä olevan komennon, saamme seuraavan tulosteen, PostgreSQL antaa virheen, että ”arvo on liian pitkä tyypin character varying (1)”.
Tämä tarkoittaa, että P-sarakkeen tietotyyppi on VARCHAR (1), ja jossa yritämme lisätä kolme merkkiä sisältävän merkkijonon tiettyyn sarakkeeseen, kuten voimme havaita alla olevasta kuvakaappauksesta:
Yllä olevan virheen ratkaisemiseksi käytämme alla olevaa komentoa seuraavasti:
Output
Toteuttaessamme yllä olevan komennon PostgreSQL antaa uudelleen samanlaisen virheen Q-sarakkeen osalta, mikä tarkoittaa, että Q-sarakkeen tietotyyppi on VARCHAR (10). Sen sijaan syötettyjen merkkien määrä on yli 10, kuten voimme havaita alla olevasta kuvakaappauksesta:
Kummankin edellä mainitun virheen ratkaisemiseksi käytämme siis alla olevaa komentoa:
Output
Yllä olevan komennon suorittamisen jälkeen saamme seuraavan tuloksen: Arvo on lisätty onnistuneesti Varchar_demo-tauluun.
Kuten yllä olevasta kuvakaappauksesta näkyy, olemme onnistuneesti lisänneet P- ja Q-sarakkeen arvot.
Kun olemme luoneet ja lisänneet Varchar_demo-taulukon arvot, käytämme SELECT-komentoa palauttaaksemme kaikki Varchar_demo-taulukon rivit:
Tulos
Toteutettuamme yllä olevan komennon saamme seuraavan tuloksen, josta näemme, että sekä sarakkeen P että sarakkeen Q arvot on onnistuneesti syötetty Varchar_demo-taulukkoon.
Esimerkki 2
Katsotaan vielä yksi esimerkki, jotta Varchar-tietotyyppi opitaan yksityiskohtaisesti. Luomme yhden uuden taulukon nimellä Varchar_demo2 CREATE-komennon avulla ja lisäämme joitakin arvoja INSERT-komennolla.
Luomme Varchar_demo2-taulun samanlaiseen tietokantaan kuin edellä, joka on Organisaatio CREATE-komennon avulla:
Output
Taulu Varchar_demo2 on luotu onnistuneesti edellä mainitun komennon suorittamisen jälkeen, kuten alla olevasta kuvakaappauksesta käy ilmi:
Kunhan taulukko Varchar_demo2 on luotu, voimme lisätä siihen joitain arvoja käyttämällä INSERT-komentoa.
Tulos
Toteutettuamme edellä mainitun komennon. PostgreSQL antaa virheilmoituksen ”arvo on liian pitkä tyypille Merkki (1)”. Tuloste selittää asian selkeämmin.
Esimerkki PostgreSQL VARCHAR ja välilyönnit
PostgreSQL ei pidennä varchar-arvojen tilaa tallennettaessa, ja PostgreSQL ottaa myös perässä olevat välilyönnit, kun ne tallennetaan tai palautetaan Varchar-arvoja.
Tämän ymmärtämiseksi katsomme alla olevan esimerkin, jossa Insert-komento, ja lisäämme arvoja Name-sarakkeeseen Varchar_demo2-taulussa, jonka loimme yllä olevassa esimerkissä:
Output
Yllä olevan komennon suorittamisen jälkeen saamme seuraavan tuloksen: Arvo on lisätty onnistuneesti Varchar_demo2-tauluun.
Varchar_demo2-taulun arvojen luomisen ja lisäämisen jälkeen haemme SELECT-komennolla arvot Varchar_demo2-taulusta:
Output
Toteutettuamme edellä mainitun komennon saamme seuraavan tuloksen, jossa PostgreSQL sisältää perässä olevan välilyönnin sarakkeen pituuden laskennassa, koska se ei lisää sarakkeen pituutta.
Jos yritämme lisätä Varchar-arvoa, jossa on sarakkeen pituuden ylittäviä peräkkäisiä välilyöntejä, ja PostgreSQL katkaisee peräkkäiset välilyönnit. Lisäksi PostgreSQL antaa varoituksen. Kuten olemme osoittaneet alla olevassa esimerkissä:
Output
Toteuttaessamme yllä olevan komennon saamme alla olevan tuloksen:
Yllä olevassa komennossa syötetyn arvon pituus on kuusi Name-sarakkeeseen. Ja arvo on edelleen lisätty sarakkeeseen. PostgreSQL kuitenkin leikkaa jälkeisen välilyönnin ennen arvon lisäämistä.
Voidaan tarkistaa se seuraavan komennon ohjeesta, jossa Insert-komento lisätään onnistuneesti.
Tulos
Toteutettuamme yllä olevan komennon, saamme alla olevan tuloksen vielä varoituksen kanssa, joka on: Data truncated for column ’Name’ at row 1:
Difference between PostgreSQL CHAR and PostgreSQL VARCHAR Data Type
Difference between PostgreSQL CHAR and PostgreSQL VARCHAR Data Type
Datatyypit PostgreSQL CHAR ja VARCHAR ovat kumpikin ASCII-merkkiä seuraavia. Ne ovat käytännössä samankaltaisia, mutta eroavat toisistaan tietojen tallentamisessa ja hakemisessa tietokannasta.
Seuraavassa taulukossa tuodaan esiin CHAR- ja VARCHAR-tietotyyppien olennaiset erot:
PostgreSQL CHAR-tietotyyppi | PostgreSQL VARCHAR-tietotyyppi |
---|---|
PostgreSQL-tietokannassa tuetaan CHAR-tietotyypille staattista muistinjakoa. | PostgreSQL tukee dynaamista muistinjakoa Varchar-tietotyypille. |
Char-tietotyyppi tunnetaan myös nimellä Character. | Varchar-tietotyyppiä kutsutaan myös nimellä Variable Character. |
Char-tietotyyppiin mahtuu enintään 255 merkkiä. | Varchar-tietotyyppiin mahtuu enintään 65535 merkkiä. |
Datatyyppi Char tallentaa arvot kiinteän pituisina, joita esitämme taulukkoa luotaessa. | Datatyyppi Varchar tallentaa arvot vaihtelevan pituisena merkkijonona, jonka pituusesimerkki on yksi tai kaksi tavua. |
Se voidaan täyttää perässä olevalla välilyönnillä, jotta se sisältää määritellyn pituuden. | Se ei voi täyttää millään merkillä, välilyönnillä, kun niitä tallennetaan. |
Yleiskatsaus
PostgreSQL:n Varchar-tietotyyppiä käsittelevässä osiossa olemme tutustuneet seuraaviin aiheisiin:
- Varchar-tietotyyppiä käytetään vaihtelevan pituisille merkkityypeille.
- Jos haluamme tarkistaa merkkijonon (n) pituuden ennen sen lisäämistä tai päivittämistä sarakkeeseen, voimme käyttää Varchar(n)-tietotyyppiä.
- Käytämme PostgreSQL:n Varchar-tietotyyppiä ja välilyöntejä.
Käytämme Varchar-tietotyyppiä ja välilyöntejä.