PostgreSQL Tietotyypit: tavu, numeerinen, merkki, binääri

PostgreSQL tarjoaa käyttäjille runsaan joukon alkuperäisiä tietotyyppejä. Käyttäjät voivat lisätä uusia tyyppejä CREATE TYPE -komennon avulla. Se tekee myös kyselyistä yksinkertaisempia ja luettavampia.

Tietotyypit sisään PostgreSQL

PostgreSQL tukee seuraavia tietotyyppejä:

  • Tekstityypit
  • Numeeriset tyypit
  • Päivämäärät ja ajat
  • XML
  • JSON
  • boolean
  • Bittiä
  • Binary Data
  • verkko
  • taulukot
  • Luo tietotyyppisi
  • boolean
  • tilapäinen
  • UUID
  • Ryhmä
  • JSON
  • Erityiset tietotyypit verkko-osoitteen ja geometristen tietojen tallentamiseen.

Opiskellaan PostgreSQL tietotyypit yksityiskohtaisesti

Merkkitietotyypit

PostgreSQL tukee merkkitietotyyppejä tekstiarvojen tallentamiseen. PostgreSQL rakentaa merkkitietotyyppejä samoista sisäisistä rakenteista. PostgreSQL tarjoaa kolme merkkitietotyyppiä: CHAR(n), VARCHAR(n) ja TEXT.

Nimi Tuotetiedot
varchar(n) Mahdollistaa muuttuvan pituuden ilmoittamisen rajalla
merkki(n) Kiinteäpituinen, tyhjä pehmustettu
teksti Use voi käyttää tätä tietotyyppiä ilmoittamaan muuttujan, jonka pituus on rajoittamaton

Numeeriset tietotyypit

PostgreSQL tukee kahta erilaista numerotyyppiä:

  • kokonaisluvut
  • Liukulukuluvut
Nimi Myymälän koko alue
pieni 2 tavua -32768 to + 32767
kokonaisluku 4 tavua -2147483648 to + 2147483647
bigint 8 tavua -9223372036854775808 ja 9223372036854775807
desimaalin muuttuja Jos määritit sen desimaaliksi, tietotyyppi vaihtelee 131072 numerosta ennen desimaalipilkkua 16383 numeroon desimaalipilkun jälkeen
numeerinen muuttuja Jos määrität sen numeroksi, voit sisällyttää numeron enintään 131072 numeroa ennen desimaalipilkkua 16383 numeroon desimaalipilkun jälkeen
todellinen 4 tavua 6 desimaalinumeron tarkkuus
kaksinkertainen 8 tavua 15 desimaalinumeron tarkkuus

Binääritietotyypit

Binäärimerkkijono on oktettien tai tavujen sarja. Binaariset Postgres-tietotyypit jaetaan kahdella tavalla.

  • Binäärimerkkijonot mahdollistavat nollan kertoimien tallentamisen
  • Ei-tulostettavat oktetit

Merkkijonot eivät salli nollaoktettia, ja ne eivät myöskään salli muita oktettiarvoja ja -sarjoja, jotka ovat virheellisiä tietokannan merkistökoodaussääntöjen mukaan.

Nimi Varastokoko Tuotetiedot
Tavu 1-4 tavua plus binäärimerkkijonon koko Vaihtuvapituinen binäärimerkkijono

Verkko-osoitteen tyyppi

Monet sovellukset tallentavat verkkotietoja, kuten käyttäjien tai antureiden IP-osoitteita. PostgreSQL siinä on kolme alkuperäistä tyyppiä, jotka auttavat sinua optimoimaan verkkotiedot.

Nimi Koko Tuotetiedot
siideri 7 tai 19 tavua IPV4 ja IPv6 verkot
inet 7 tai 19 tavua IPV4- ja IPV5-isäntä ja verkot
macaddr 6 tavua MAC-osoitteet

Verkko-osoitetyyppien käyttämisellä on seuraavat edut

  1. Tallennustilan säästö
  2. Syöttövirheiden tarkistus
  3. Toiminnot, kuten tietojen etsiminen aliverkon perusteella

Tekstihaun tyyppi

PostgreSQL tarjoaa kaksi tietotyyppiä, jotka on suunniteltu tukemaan koko tekstihakua. Kokotekstihaku tarkoittaa hakua luonnollisenkielisten asiakirjojen kokoelmasta etsiäkseen niitä, jotka parhaiten vastaavat kyselyä.

  • Tsvector-tekstihaku PostgreSQL muuttujatyypit edustavat asiakirjaa tekstihakua varten optimoidussa muodossa
  • Kyselytyyppinen tekstihaku tallentaa hakusanat, jotka täytyy etsiä

Päivämäärä/aika Tietotyypit

PostgreSQL aikaleima tarjoaa mikrosekunnin tarkkuuden sekunnin tarkkuuden sijaan. Lisäksi sinulla on myös mahdollisuus tallentaa aikavyöhykkeellä tai ilman. PostgreSQL muuntaa aikaleiman aikavyöhykkeellä UTC:ksi syötteessä ja tallentaa sen.

Päivämäärän ja ajan syöttö hyväksytään useissa muodoissa, mukaan lukien perinteinen Postgres, ISO 8601. SQL-yhteensopiva jne.

PostgreSQL tukee päivä/kuukausi/vuosi-tilausta. Tuetut muodot ovat DMY, MDY, YMD

Ajalliset tietotyypit

Nimi Koko alue päätöslauselma
Aikaleima ilman aikavyöhykettä 8 tavua 4713 eKr. - 294276 jKr 1 mikrosekunti / 14 numeroa
Aikaleima aikavyöhykkeellä 8 tavua 4713 eKr. - 294276 jKr 1 mikrosekunti / 14 numeroa
data 4 tavua 4713 eKr. - 294276 jKr Yksi päivä
Aika ilman aikavyöhykettä 8 tavua 00:00:00 to 24:00:00 1 mikrosekunti / 14 numeroa
Aika aikavyöhykkeen kanssa 12 tavua 00:00:00 + 1459 - 24:00:00-1459 1 mikrosekunti / 14 numeroa
Aikaväli 12 tavua -178000000 - 178000000 vuotta 1 mikrosekunti / 14 numeroa

Esimerkit

panos Tuotetiedot
2025-09-07 ISO 8601, 7. syyskuuta millä tahansa päivämäärätyylillä (suositeltu muoto)
Syyskuu 7, 2025 7. syyskuuta millä tahansa päivämäärätyylillä
9/7/2025 7. syyskuuta MDY:n kanssa, 9. heinäkuuta DMY:n kanssa
9/7/25 7. syyskuuta 2025 MDY:n kanssa
2025-Sep-7 7. syyskuuta millä tahansa päivämäärätyylillä
7. syyskuuta -2018 7. syyskuuta millä tahansa päivämäärätyylillä
7-Sep-25 7. syyskuuta 2025 YMD:n kanssa
20250907 ISO 8601,7 syyskuu 20225 missä tahansa tilassa
2025.250 vuosi ja vuoden päivä, tässä tapauksessa 7
J25250 Julian päivämäärä

Aika/ Aika aikavyöhyketulolla

panos Tuotetiedot
11:19:38.507
11:19:38
11:19
111938
ISO 8601
11: 19 AM Sama kuin 11:19
11: 19 PM sama kuin 23:19
23: 19-3
23: 19-03: 00
231900-03
ISO 8601, sama kuin 11:19 EST
23: 19 EST aikavyöhyke määritetty EST:ksi, sama kuin 11:19 EST

Boolen tyyppi

Boolen tietotyyppi voi sisältää

  • Totta
  • Väärä
  • nolla

arvot.

Käytät a Bool or boolean avainsana ilmoittaaksesi Boolen tietotyypin sarakkeen.

Kun lisäät arvoja loogiseen sarakkeeseen, Postgre muuntaa arvot, kuten

  • Kyllä
  • y
  • 1
  • t
  • totta

osaksi 1.

Vaikka arvot kuten

  • Ei
  • N
  • 0
  • F
  • Väärä

muunnetaan 0:ksi

Dataa valittaessa arvot muunnetaan jälleen takaisin arvoiksi kyllä, tosi, y jne.

Geometriset tietotyypit

Geometriset tietotyypit edustavat kaksiulotteisia spatiaalisia objekteja. Ne auttavat suorittamaan toimintoja, kuten pyörityksiä, skaalausta, käännöstä jne.

Nimi Varastointikoko Edustus Tuotetiedot
Kohta 16 tavua Piste lentokoneessa (X, y)
linja 32 tavua Ääretön viiva ((xl.yl ).(x2.y2))
Lseg 32 tavua Äärillinen jana ((xl.yl ).(x2.y2))
Box 32 tavua Suorakulmainen Box ((xl.yl ).(x2.y2))
Polun, 16n + 16n tavua Sulje ja avaa polku ((xl.yl),…)
Monikulmio 40 + 16n tavua Monikulmio [(xl.yl)….]
Ympyrä 24 tavua Ympyrä <(xy).r> (keskipiste ja säde)

Luetteloidut tyypit

Lueteltu PostgreSQL tietotyyppi on hyödyllinen edustamaan harvoin muuttuvia tietoja, kuten maakoodia tai haaratunnusta. Enumerated-tietotyyppi esitetään taulukossa, jossa on vieraita avaimia tietojen eheyden varmistamiseksi.

esimerkki

Hiusten väri on melko staattinen väestötietokannassa

CREATE TYPE hair_color AS ENUM
('brown','black','red','grey','blond')

Luetteloidut tyypit

Alueen tyyppi

Monet yrityssovellukset vaativat tietoja rajoissa. Tyypillisesti kaksi saraketta (esimerkiksi aloituspäivä, lopetuspäivä) määritetään käsittelemään alueita. Tämä on sekä tehotonta että vaikeasti ylläpidettävää.

Postgre on rakentanut aluetyyppejä seuraavasti

  • int4range — Näytä kokonaisluvun alue
  • int8range — Bigintin näyttöalue
  • numeroalue — Näyttää numeerisen alueen
  • tstrange — Auttaa näyttämään aikaleiman ilman aikavyöhykettä
  • outo — Voit näyttää aikaleiman aikavyöhykkeen kanssa
  • päivämääräalue — Aikaväli

UUID-tyyppi

Universally Unique Identifies (UUID) on 128-bittinen suure, jonka algoritmi luo. On erittäin epätodennäköistä, että joku muu maailmassa oleva henkilö luo saman tunnisteen samaa algoritmia käyttäen. Tästä syystä hajautetuille järjestelmille nämä tunnisteet ovat ihanteellinen valinta, koska ne tarjoavat ainutlaatuisuutta yhdessä tietokannassa. UUID on kirjoitettu ryhmänä pieniä kirjaimia heksadesimaalilukuja, joissa eri ryhmät on erotettu yhdysviivalla.

PostgreSQL siinä on natiivi UUID-tietotyyppi, joka kuluttaa 16 tavua tallennustilaa. UUID on ihanteellinen tietotyyppi perusavaimille.

esimerkki

d5f28c97-b962-43be-9cf8-ca1632182e8e

Postgre hyväksyy myös vaihtoehtoiset UUID-syötteet, kuten isot kirjaimet, ei väliviivoja, aaltosulkeet jne.

XML-tyyppi

PostgreSQL mahdollistaa XML-tietojen tallentamisen tietotyyppiin, mutta se ei ole muuta kuin tekstitietotyypin laajennus. Mutta etuna on, että se tarkistaa, että syötetty XML on hyvin muotoiltu.

esimerkki

XMLPARSE (DOCUMENT '<?xml version="1.0"?><tutorial><chapter>Data Type</chapter><chapter>...</chapter></tutorial>')

JSON-tyyppi

JSON-tietojen tallentamiseen PostgreSQL tarjoaa 2 tietotyyppiä

  1. JSON
  2. JSONB
json Jsonb
Yksinkertainen tekstitietotyypin laajennus JSON-tarkistuksella JSON-tietojen binääriesitys
Lisääminen on nopeaa, mutta tietojen haku on suhteellisen hidasta. Lisääminen on hidasta, mutta valitse (tietojen haku on nopea)
Tallentaa syötetyt tiedot täsmälleen sellaisenaan, mukaan lukien välilyönnit. Tukee indeksointia. Saattaa optimoida välilyönnin nopeuttaakseen hakua.
Uudelleenkäsittely tietojen haussa Tietojen haussa ei vaadita uudelleenkäsittelyä

Yleisimmin käytetty JSON-tietotyyppi käytti meille jsonb:tä, ellei ole erityistä tarvetta käyttää JSON-tietotyyppiä.

esimerkki

CREATE TABLE employee (
  id integer NOT NULL,
  age  integer NOT NULL,
  data jsonb
);

INSERT INTO employee VALUES (1, 35, '{"name": "Tom Price", "tags": ["Motivated", "SelfLearner"], "onboareded": true}'); 

Pseudotyypit

PostgreSQL on monia erikoiskäyttöisiä merkintöjä, joita kutsutaan pseudotyypeiksi. Et voi käyttää pseudotyyppejä PostgreSQL saraketyypit. Niitä käytetään ilmoittamaan tai funktion argumentti tai palautustyyppi.

Jokainen käytettävissä olevista pseudotyypeistä on hyödyllinen tilanteissa, joissa funktion käyttäytymisdokumentit eivät vastaa vain tietyn arvon ottamista tai palauttamista. SQL-tietotyyppi.

Nimi Tuotetiedot
mitään Toiminto hyväksyy kaikki syötetyt tietotyypit.
Taulukko Funktio hyväksyy minkä tahansa taulukon tietotyypin.
Mikä tahansa elementti Funktio hyväksyy minkä tahansa tietotyypin.
Mikä tahansa enum Funktio hyväksyy minkä tahansa enum-tietotyypin.
Nonarray Funktio hyväksyy minkä tahansa muun kuin matriisin tietotyypin.
Cstring Funktio hyväksyy tai palauttaa nollapäätteisen C-merkkijonon.
Sisäinen Sisäinen toiminto hyväksyy tai palauttaa palvelimen sisäisen tietotyypin.
Language_handler Sen on ilmoitettu palauttavan kielenkäsittelijän.
ennätys Etsi funktio, joka palauttaa määrittelemättömän rivityypin.
Laukaista Liipaisutoimintoa käytetään liipaisimen palauttamiseen.

On tärkeää, että tätä funktiota käyttävän käyttäjän on varmistettava, että funktio toimii turvallisesti, kun argumenttityyppinä käytetään pseudotyyppiä.

Tietotyyppien käytön parhaat käytännöt

  • Käytä "teksti"-tietotyyppiä, ellet halua rajoittaa syöttöä
  • Älä koskaan käytä sanaa "char".
  • Kokonaisluvut käyttävät sanaa "int". Käytä bigintiä vain, kun sinulla on todella suuria numeroita
  • Käytä "numeerista" melkein aina
  • Käytä float in PostgreSQL jos sinulla on IEEE 754 -tietolähde

Yhteenveto

  • PostgreSQL tarjoaa käyttäjille runsaan joukon alkuperäisiä tietotyyppejä
  • PostgreSQL tukee merkkitietotyyppejä tekstiarvojen tallentamiseen
  • PostgreSQL tukee kahta erilaista lukutyyppiä: 1. Kokonaisluvut, 2. Liukulukuluvut
  • Binäärimerkkijono on tavujen tai oktettien sarja
  • PostgreSQL on Verkko-osoitetyyppi, joka auttaa sinua optimoimaan verkkotietojen tallennuksen
  • Tekstihaku PostgreSQL tietorakenteet on suunniteltu tukemaan koko tekstihakua
  • Päivämäärä/aika PSQL-tietotyypit sallivat päivämäärä- ja aikatiedot eri muodoissa
  • Boolen Postgres-kenttätyypeissä voi olla kolme arvoa 1. Tosi 2. Epätosi 3. Nolla
  • Geometrinen PostgreSQL tietotyypit edustavat kaksiulotteisia spatiaalisia objekteja
  • Luetteloidut tietotyypit PostgreSQL on hyödyllinen edustamaan harvoin muuttuvia tietoja, kuten maakoodia tai haaratunnusta
  • Universally Unique Identifies (UUID) on 128-bittinen määrä, jonka algoritmi luo.
  • PostgreSQL on monia erikoiskäyttöisiä merkintöjä, joita kutsutaan pseudotyypeiksi
  • Paras käytäntö on käyttää "teksti"-tietotyyppiä, ellet halua rajoittaa syöttöä