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,VARCHARjaTEXT.CHARon kiinteäpituinen merkkityyppi, kun taasVARCHARjaTEXTovat 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ä) jaTEXTvastaavat toisiaan.
- Oliko tästä ohjeesta apua?
- KylläEi