Skip to content

PostgreSQL:n tietotyypit selitettynä

Jokainen yleinen PostgreSQL-sarakkeen tietotyyppi ryhmiteltynä perheittäin: kokonaisluvut, desimaalit, teksti, aika, totuusarvot ja UUID:t, JSON, verkko-osoitteet, yhdistelmätyypit ja laajennustyypit. Jokainen rivi näyttää, mitä tyyppi tallentaa ja milloin sen valitsee.

PostgreSQL:ssä on kymmeniä tyyppejä, mutta päivittäinen skeemasuunnittelu käyttää ydinjoukkoa. Toistuvat valinnat ovat: integer vai numeric luvuille, varchar vai text merkkijonoille (text riittää yleensä), timestamp vai timestamptz (suosi timestamptz:a kaikessa todellisessa) sekä json vai jsonb (suosi jsonb:ta; se on binäärinen ja indeksoitava). Valitse tarkin tyyppi, joka vielä sopii; tietokanta valvoo sitä puolestasi.

Viitetaulukko · 46 merkintää
46 of 46 rows
Kokonaisluvut
2 tavun kokonaisluku väliltä -32768–32767.Harvinainen; vain kun tilaa täytyy säästää.
4 tavun kokonaisluku, noin plus/miinus 2 miljardia.Oletusarvoinen kokonaislukusarake.
8 tavun kokonaisluku, noin plus/miinus 9 kvintiljoonaa.Hyvin suuret laskurit tai ulkoiset ID:t.
Automaattisesti kasvava 4 tavun kokonaisluku.Vanhat automaattiset avaimet; PG 10:stä alkaen GENERATED AS IDENTITY on suositeltu korvaaja.
Serialin 2 ja 8 tavun muunnelmat.Automaattinen numerointi smallint- tai bigint-sarakkeeseen sopivana.
Kokonaisluku, jonka taulu generoi puolestasi (GENERATED ALWAYS AS IDENTITY).Moderni serial; SQL-standardin mukainen ja turvallisempi manuaalisia inserttejä vastaan.
Desimaalit ja liukuluvut
Tarkat desimaalit mielivaltaisella tarkkuudella.Raha ja kaikki, missä pyöristysvirheet ovat mahdottomia hyväksyä.
4 tavun yksittäistarkkuuden liukuluku.Suunnilleen tiedearvot, joissa tarkkuus ei ole kriittinen.
8 tavun kaksinkertaisen tarkkuuden liukuluku.Geodata, tilastot ja ML-piirteiden arvot.
Valuuttasumma kiinteällä lokaatilla.Harvoin; numeric sovelluksen puolen valuuttakoodilla on siirrettävämpi.
Teksti
Kiinteäpituinen teksti, täydennetty välilyönneillä.Tunnetun levyiset koodit; harvoin tarpeen.
Muuttuvapituinen teksti valinnaisella ylärajalla.Rajatut merkkijonot kuten käyttäjänimet tai sähköpostit.
Muuttuvapituinen teksti ilman pituusrajoa.Yleiskäyttöinen merkkijonosarake; ei suorituskykyrangaistusta varchariin nähden.
Aika
Kalenteripäivä ilman kellonaikaa.Syntymäpäivät ja eräpäivät.
Kellonaika joko ilman aikavyöhykettä tai sen kanssa.Päivittäiset hälytykset tai aukioloajat.
Päivä ja aika ilman aikavyöhykettä.Vanhat skeemat; vältä uudessa työssä.
Päivä ja aika tallennettuna UTC:nä, näytetään asiakkaan vyöhykkeellä.Oletus kaikelle todelliselle hetkelle; suosi tätä timestampin sijaan.
Aikaväli, kuten 2 päivää tai 3 tuntia.Kestot ja päivämäärälaskenta.
Totuusarvot, UUID ja tavut
Tosi tai epätosi.Liput ja kytkimet.
128-bittinen universaalisti yksilöivä tunniste.Turvallisesti paljastettavat ei-peräkkäiset ID:t (generoi sovelluksessa tai gen_random_uuid:lla).
Raakoja binääritavuja.Blobit, kuvat ja läpinäkymättömät hyötykuormat; suuret tiedostot kuuluvat objektivarastoon.
Kiinteä- tai muuttuvapituisia bittijonoja.Pakatut liput ja protokollakentät; yksittäinen päälle/pois-arvo on silti boolean.
JSON ja osin jäsennelty data
JSON jäsennettynä binääriseen, indeksoivaan muotoon.Joustava tai sisäkkäinen data; suositeltu JSON-sarake (tukee GIN-indeksejä).
JSON säilytettynä alkuperäisenä tekstinä.Harvinainen; vain kun avainten järjestyksen tai täsmällisen whitespacen pitää säilyä.
XML-teksti.Vanhat integraatiot, jotka vaativat XML:ää.
Käännetty polkulauseke JSON-datan selaamiseen.Suodatus jsonb:n sisällä jsonb_path_query-funktiolla ja SQL/JSON-operaattoreilla.
Verkko ja haku
IPv4- tai IPv6-isäntäosoite.Asiakas- tai palvelin-IP:iden tallennus.
IP-verkkolohko, kuten 10.0.0.0/24.Palomuurisäännöt ja aliverkkojen alueet.
6 tai 8 tavun (EUI-64) MAC-osoite.Laite- ja verkkoliitäntätunnisteet.
Esikäsitelty teksti kokotekstihakuun.Postgresin sisäänrakennettu haku ennen erillisen hakukoneen ottamista käyttöön.
Hakutermit AND-, OR- ja prefiksioperaattoreilla yhdistettynä.Kokotekstihaun kyselypuoli, joka kohdistuu tsvectoriin @-operaattorilla.
Kirjoituslokin sijainti, log sequence number.Replikoinnin viipeen ja varmuuskopioiden valvonta.
Yhdistelmätyypit ja edistyneet
Taulukko mistä tahansa perustyypistä, esim. integer[].Yksinkertaisten arvojen listat; siirry lapsitauluun, kun alkioille tarvitaan omia sarakkeita.
Yksi arvo itse määrittelemästäsi kiinteästä listasta.Tilakentät vakaalla vaihtoehtojoukolla.
Oma rivityyppi useista kentistä.Toistuvat kenttäryhmät, joita jaetaan taulujen kesken.
Yhtenäinen väli kahden rajan välissä.Aikataulut, hintakaistat ja versiovälit päällekkäisyysoperaattoreilla.
Perustyyppi käärittynä itse määrittelemiisi rajoitteisiin.Uudelleenkäytettävät säännöt kuten ei-tyhjä sähköposti, pakotettuna joka sarakkeessa, joka sitä käyttää.
Nimeämätön rivi tyypitettyjä arvoja.PL/pgSQL-funktioiden paluuarvot ja välikyselyjen tulokset.
Sisäänrakennettuja kaksiulotteisia geometria-arvoja.Yksinkertainen tasogeometria; todelliset sijainnit tarvitsevat PostGISin.
Etumerkitön 4 tavun järjestelmäobjektin tunniste.Järjestelmäkatalogien liitokset; ei sovellussarakkeisiin.
63 merkin sisäinen tunnistemerkkijono.Katalogikyselyt; käyttäjälle näkyvään dataan tavallinen text.
Laajennustyypit
Avain/arvo-merkkijonoparit yhdessä arvossa (laajennus).Tasaiset map-rakenteet; jsonb hoitaa tämän nykyään paremmin.
Hierarkkinen label-polku kuten news.tech.ai (laajennus).Puut esivanhempi- ja jälkeläiskyselyillä.
Teksti, jota verrataan kirjainkokoa huomioimatta (laajennus).Kirjainkoosta riippumaton yksilöllisyys kuten sähköpostit, ilman lower()-indeksiä.
Maantieteellisiä ja geometrisia objekteja PostGIS-laajennuksesta.Etäisyys-, sisältö- ja paikkaindeksikyselyt.
Laajennusfunktiot, jotka generoivat UUID-arvoja.Vanha generointitapa; PG 13:sta alkaen gen_random_uuid() on sisäänrakennettu.