Yhteenveto: Tässä opetusohjelmassa tutustut PostgreSQL:n merkkitietotyyppeihin, mukaan lukien CHAR, VARCHAR ja TEXT, ja opit valitsemaan oikeat merkkityypit taulukkoihisi.

Tutustuminen PostgreSQL:n merkkityyppeihin

PostgreSQL:ssä on kolme ensisijaista merkkityyppiä: CHARACTER(n) tai CHAR(n), CHARACTER VARYINGING(n) tai VARCHAR(n) ja TEXT, jossa n on positiivinen kokonaisluku.

Seuraava taulukko havainnollistaa PostgreSQL:n merkkityypit:

Character Types Description
CHARACTER VARYING(n), VARCHAR(n) variable-length with length limit
CHARACTER(n), CHAR(n) kiinteä pituus, tyhjä täytetty
TEXT, VARCHAR muuttuja rajoittamattomalla pituudella

Kumpaakin CHAR(n) ja VARCHAR(n) voi varastoida enintään n merkkiä. Jos yrität tallentaa merkkijonoa, jossa on enemmän kuin n merkkiä, PostgreSQL antaa virheilmoituksen.

Yksi poikkeus on kuitenkin se, että jos liialliset merkit ovat kaikki välilyöntejä, PostgreSQL typistää välilyönnit maksimipituuteen (n) ja tallentaa merkit.

Jos merkkijono heitetään eksplisiittisesti CHAR(n):ksi tai VARCHAR(n):ksi, PostgreSQL typistää merkkijonon n merkkiin ennen kuin se lisätään taulukkoon.

Tietotyyppi TEXT voi tallentaa merkkijonon, jonka pituus on rajoittamaton.

Jos tietotyypille VARCHAR ei määritetä n-kokonaislukua, tietotyyppi käyttäytyy samoin kuin TEXT-tietotyyppi. VARCHAR:n (ilman kokoa n) ja TEXT:n suorituskyky on sama.

Tietotyypin VARCHAR ainoana etuna pituuden määrittelyn antamisesta VARCHAR-tietotyypille on se, että PostgreSQL antaa virheen, jos yrität lisätä VARCHAR(n)-sarakkeeseen VARCHAR(n) merkkijonon, jossa on enemmän kuin n merkkiä.

Toisin kuin VARCHAR, CHARACTER tai CHAR ilman pituuden määrittelyä (n) on sama kuin CHARACTER(1) tai CHAR(1).

Poikkeuksena muista tietokantajärjestelmistä, PostgreSQL:ssä ei ole suorituskykyeroa kolmen merkkityypin välillä.

Useimmissa tapauksissa kannattaa käyttää TEXTtai VARCHAR. Ja käytät VARCHAR(n) silloin, kun haluat PostgreSQL:n tarkistavan pituuden.

PostgreSQL:n merkkityyppiesimerkkejä

Katsotaanpa esimerkin avulla, miten CHAR , VARCHAR ja TEXT-tietotyypit toimivat.

Luo ensin uusi taulukko nimeltä character_tests:

Code language: SQL (Structured Query Language) (sql)

Lisää sitten uusi rivi character_tests-taulukkoon.

Code language: SQL (Structured Query Language) (sql)

PostgreSQL antoi virheen:

Code language: SQL (Structured Query Language) (sql)

Tämä johtuu siitä, että x-sarakkeen tietotyyppi on char(1), ja yritimme lisätä sarakkeeseen merkkijonon, jossa on kolme merkkiä. Korjataan se:

Code language: SQL (Structured Query Language) (sql)

PostgreSQL antaa toisen virheen:

Code language: Shell Session (shell)

Tämä johtuu siitä, että yritimme lisätä merkkijonon, jossa on yli 10 merkkiä, sarakkeeseen y, jonka tietotyyppi on varchar(10).

Seuraavalla lausekkeella lisätään uusi rivi character_tests-tauluun onnistuneesti.

Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
Code language: Shell Session (shell)

Yhteenveto

  • PostgreSQL tukee tietotyyppejä CHAR, VARCHAR ja TEXT. CHAR on kiinteäpituinen merkkityyppi, kun taas VARCHAR ja TEXT ovat vaihtelevan pituisia merkkityyppejä.
  • Käytä VARCHAR(n), jos haluat tarkistaa merkkijonon pituuden (n) ennen sarakkeeseen lisäämistä tai päivittämistä.
  • VARCHAR (ilman pituuden määrittelyä) ja TEXT vastaavat toisiaan.
  • Oliko tästä ohjeesta apua?
  • KylläEi

Vastaa

Sähköpostiosoitettasi ei julkaista.