Skip to content

PostgreSQL adattípusok elmagyarázva

Minden gyakori PostgreSQL oszlop-adattípus, családonként csoportosítva: egész számok, tizedestörtek, szövegek, idő, logikai értékek és UUID-k, JSON, hálózati címek, összetett típusok és bővítménytípusok. Minden sor megmutatja, mit tárol a típus, és mikor érdemes azt választani.

A PostgreSQL tucatnyi típussal rendelkezik, de a napi séma-tervezés egy alapkészletet használ. A visszatérő döntések: integer vagy numeric a számoknál, varchar vagy text a szövegeknél (a text általában megfelelő), timestamp vagy timestamptz (valódi világbeli adatoknál a timestamptz-t részesítsd előnyben), és json vagy jsonb (a jsonb-t preferáld, mert bináris és indexelhető). Válaszd a legspecifikusabb típust, amely még belefér; az adatbázis a helyedben érvényesíti azt.

Referenciatáblázat · 46 bejegyzés
46 of 46 rows
Egész számok
2 bájtos egész szám -32768-tól 32767-ig.Ritka; csak amikor helyet kell spórolni.
4 bájtos egész szám, körülbelül plusz/mínusz 2 milliárd.Az alapértelmezett egészoszlop.
8 bájtos egész szám, körülbelül plusz/mínusz 9 trillió.Nagyon nagy számlálók vagy külső azonosítók.
Automatikusan növekvő 4 bájtos egész szám.Örökölt, automatikusan számozott kulcsok; a PG 10 óta a GENERATED AS IDENTITY az ajánlott helyettesítő.
A serial 2 és 8 bájtos változatai.Smallint vagy bigint oszlophoz illeszkedő automatikus számozás.
Egy egész szám, amelyet a tábla generál számodra (GENERATED ALWAYS AS IDENTITY).A modern serial; SQL-szabvány szerinti és biztonságosabb a kézi beszúrással szemben.
Tizedestörtek és lebegőpontos számok
Tetszőleges pontosságú, pontos tizedestörtek.Pénz és bármi, ahol a kerekítési hiba elfogadhatatlan.
4 bájtos, egyszeres pontosságú lebegőpontos szám.Közelítő tudományos értékek, ahol a pontosság nem kritikus.
8 bájtos, kétszeres pontosságú lebegőpontos szám.Geotérinformatikai, statisztikai és ML jellemzőértékek.
Pénzösszeg rögzített területi beállítással.Ritkán; a numeric alkalmazásoldali pénznemkóddal hordozhatóbb.
Szöveg
Rögzített hosszúságú szöveg, szóközökkel kitöltve.Ismert szélességű kódok; ritkán szükséges.
Változó hosszúságú szöveg opcionális felső korláttal.Korlátozott sztringek, például felhasználónevek vagy e-mail-címek.
Változó hosszúságú szöveg hosszkorlát nélkül.Az általános célú sztringoszlop; nincs teljesítményhátránya a varchar-hoz képest.
Idő
Naptári dátum napszak nélkül.Születésnapok és határidők.
Napszak, időzónával vagy anélkül.Napi riasztások vagy nyitvatartási idők.
Dátum és idő időzóna nélkül.Örökölt sémák; kerüld az új munkáknál.
Dátum és idő UTC-ként tárolva, a kliens zónájában megjelenítve.Az alapértelmezés minden valódi világbeli pillanathoz; ezt preferáld a timestamp helyett.
Időtartam, például 2 nap vagy 3 óra.Időtartamok és dátumszámítások.
Logikai érték, UUID és bájtok
Igaz vagy hamis.Kapcsolók és jelzők.
128 bites, univerzálisan egyedi azonosító.Nem szekvenciális azonosítók, amelyek biztonságosan nyilvánossá tehetők (generáld az alkalmazásban vagy gen_random_uuid-val).
Nyers bináris bájtok.Blobok, képek és átlátszatlan adatok; a nagy fájlokhoz az objektumtárolót részesítsd előnyben.
Rögzített vagy változó hosszúságú bitláncok.Csomagolt jelzők és protokollmezők; egyetlen be/ki értékhez továbbra is a boolean való.
JSON és félig strukturált adatok
JSON bináris, indexelhető formára elemezve.Rugalmass vagy egymásba ágyazott adatok; az ajánlott JSON-oszlop (GIN indexeket támogat).
JSON az eredeti szövegként megőrizve.Ritka; csak amikor meg kell őrizni a kulcssorrendet vagy a pontos szóközöket.
XML-szöveg.Örökölt integrációk, amelyek XML-t igényelnek.
Lefordított útvonalkifejezés JSON-adatokban való navigáláshoz.Szűrés a jsonb-ben a jsonb_path_query és az SQL/JSON operátorokkal.
Hálózat és keresés
IPv4 vagy IPv6 gazdacím.Kliens- vagy kiszolgáló-IP-k tárolása.
IP-hálózati blokk, például 10.0.0.0/24.Tűzfalszabályok és alhálózati tartományok.
6 vagy 8 bájtos (EUI-64) MAC-cím.Eszközök és hálózati csatolók azonosítói.
Előfeldolgozott szöveg teljes szöveges kereséshez.A beépített Postgres-keresés, mielőtt külön keresőmotorhoz nyúlnál.
Keresési kifejezések AND, OR és előtag-operátorokkal kombinálva.A teljes szöveges keresés lekérdezési fele, tsvectorhoz kapcsolva az @@ operátorral.
Write-ahead naplópozíció, a napló sorozatszáma (LSN).Replikációs késés és biztonsági mentések figyelése.
Összetett és haladó típusok
Egy alaptípus tömbje, pl. integer[].Egyszerű értékek listái; ha az elemek saját oszlopokat igényelnek, nyúlj gyermektáblához.
Egy érték egy általad definiált rögzített listából.Állapotmezők stabil opciókészlettel.
Egy egyéni sortsípus több mezőből.Több táblán megosztott, ismétlődő mezőcsoportok.
Folytonos tartomány két határ között.Ütemtervek, ársávok és verziótartományok, átfedés-operátorokkal.
Egy alaptípus, általad definiált megszorításokba csomagolva.Újrafelhasználható szabályok, például nem üres e-mail-cím, érvényesítve minden oszlopnál, ahol használják.
Névtelen sor típusos értékekből.PL/pgSQL függvények visszatérési értékei és köztes lekérdezési eredmények.
Beépített kétdimenziós geometriai értékek.Egyszerű síkgeometria; a valódi világbeli helyekhez PostGIS kell.
Előjel nélküli, 4 bájtos rendszerobjektum-azonosító.Rendszerkatalógusok összekapcsolása; nem alkalmazásoszlopokhoz.
63 karakteres belső azonosító-sztring.Katalóguslekérdezések; a felhasználó számára látható adatokhoz sima text.
Bővítménytípusok
Kulcs/érték sztringpárok egyetlen értékben (bővítmény).Lapos map-ek; ma ezt a jsonb fedi le jobban.
Hierarchikus címkeútvonal, mint a news.tech.ai (bővítmény).Fák előd- és utódlekérdezésekkel.
Szöveg, amely kis- és nagybetűtől függetlenül hasonlít (bővítmény).Kis-/nagybetű-érzéketlen egyediség, például e-mail-címek, lower() index nélkül.
Földrajzi és geometriai objektumok a PostGIS bővítményből.Távolság-, tartalmazási és térbeli index-lekérdezések.
Bővítményfüggvények, amelyek UUID-értékeket generálnak.Örökölt generálás; a PG 13 óta a gen_random_uuid() beépített.