„PostgreSQL“ duomenų tipai: Simbolis - Skaičius - Dvejetainis - Būlio

„PostgreSQL“ vartotojams siūlo gausų savųjų duomenų tipų rinkinį. Vartotojai gali pridėti naujų tipų naudodami komandą CREATE TYPE. Taip pat užklausos tampa paprastesnės ir suprantamesnės.

Duomenų tipai „PostgreSQL“

„PostgreSQL“ palaiko šiuos duomenų tipus:

  • Teksto tipai
  • Skaitmeniniai tipai
  • Datos ir laikai
  • XML
  • JSON
  • Būlio
  • Bitai
  • Dvejetainiai duomenys
  • Tinklas
  • Masyvai
  • Sukurkite savo duomenų tipą
  • Būlio
  • Laiko
  • UUID
  • Masyvas
  • JSON
  • Specialūs duomenų tipai, skirti saugoti tinklo adresą ir geometrinius duomenis.

Panagrinėkime išsamiai „PostgreSQL“ duomenų tipus

  • Simbolių duomenų tipai
  • Skaitmeniniai duomenų tipai
  • Dvejetainiai duomenų tipai
  • Tinklo adreso tipas
  • Teksto paieškos tipas
  • Datos / laiko duomenų tipai
  • Būlio tipas
  • Geometriniai duomenų tipai
  • Išvardinti tipai
  • Diapazono tipas
  • UUID tipas
  • XML tipas
  • JSON tipas
  • Pseudo tipai

Simbolių duomenų tipai

„PostgreSQL“ palaiko simbolių duomenų tipus teksto reikšmėms saugoti. „PostgreSQL“ sukuria simbolių duomenų tipus iš tų pačių vidinių struktūrų. „PostgreSQL“ siūlo tris simbolių duomenų tipus: CHAR (n), VARCHAR (n) ir TEXT.

vardas apibūdinimas
varcharas (n) Leidžia deklaruoti kintamą ilgį su riba
Char (n) Fiksuoto ilgio, tuščias paminkštintas
Tekstas „Use“ gali naudoti šį duomenų tipą neriboto ilgio kintamajam deklaruoti

Skaitmeniniai duomenų tipai

„PostgreSQL“ palaiko du skirtingus numerių tipus:

  • Sveikieji skaičiai
  • Slankiųjų kablelių skaičiai
vardas Parduotuvės dydis diapazonas
smallint 2 baitai -32768 iki +32767
sveikasis skaičius 4 baitai -2147483648 iki +2147483647
bigint 8 baitai -9223372036854775808 iki 9223372036854775807
po kablelio kintamasis Jei paskelbėte, kad dešimtainis, duomenų tipas svyruoja nuo 131072 skaitmenų prieš kablelį iki 16383 skaitmenų po kablelio
skaitinis kintamasis Jei paskelbsite jį skaičiumi, galite įtraukti skaičių iki dešimtainio kablelio iki 131072 skaitmenų iki 16383 skaitmenų po kablelio
tikras 4 baitai 6 skaitmenų po kablelio tikslumas
dvigubai 8 baitai 15 skaitmenų po kablelio tikslumas

Dvejetainiai duomenų tipai

Dvejetainė eilutė yra oktetų arba baitų seka. Dvejetainiai „Postgres“ duomenų tipai skirstomi dviem būdais.

  • Dvejetainės eilutės leidžia išsaugoti nulinės vertės šansus
  • Nespausdinami oktetai

Simbolių eilutės neleidžia nulinių oktetų, taip pat neleidžia kitų okteto reikšmių ir sekų, kurios yra neteisingos pagal duomenų bazės simbolių rinkinio kodavimo taisykles.

vardas Saugyklos dydis apibūdinimas
Baitas 1–4 baitai plius dvejetainės eilutės dydis Kintamo ilgio dvejetainė eilutė

Tinklo adreso tipas

Daugelyje programų saugoma tinklo informacija, pvz., Vartotojų IP adresas arba

jutikliai. „PostgreSQL“ yra trys vietiniai tipai, kurie padeda optimizuoti tinklo duomenis.

vardas Dydis apibūdinimas
sidras 7 arba 19 baitų IPV4 ir IPv6 tinklai
Inet 7 arba 19 baitų IPV4 ir IPV5 pagrindiniai kompiuteriai ir tinklai
macaddr 6 baitai MAC adresai

Tinklo adresų tipų naudojimas turi šiuos privalumus

  1. Sandėliavimo vietos taupymas
  2. Įvesties klaidų tikrinimas
  3. Tokios funkcijos kaip duomenų paieška pagal potinklį

Teksto paieškos tipas

„PostgreSQL“ pateikia du duomenų tipus, kurie skirti palaikyti paiešką visame tekste. Viso teksto paieška ieškoma natūralios kalbos dokumentų rinkinyje, kad būtų galima ieškoti tų, kurie geriausiai atitinka užklausą.

  • „Tsvector“ teksto paieška „PostgreSQL“ kintamųjų tipai reiškia dokumentą forma, optimizuota teksto paieškai
  • Užklausos tipo teksto paieška išsaugo raktinius žodžius, kurių reikia ieškoti

Datos / laiko duomenų tipai

„PostgreSQL“ laiko žyma siūlo vietoj antrojo tikslumo mikrosekundžių tikslumą. Be to, jūs taip pat turite galimybę laikyti su laiko juosta arba be jos. „PostgreSQL“ laiko žymę su laiko juosta konvertuos į UTC įvesties metu ir išsaugos.

Datos ir laiko įvedimas priimamas įvairiu formatu, įskaitant tradicinius „Postgres“, ISO 8601. Su SQL suderinamas ir kt.

„PostgreSQL“ palaiko dienos / mėnesio / metų užsakymą. Palaikomi formatai yra DMY, MDY, YMD

Laikini duomenų tipai

vardas Dydis diapazonas Rezoliucija
Laiko žymė be laiko juostos 8 baitai 4713 m. Pr. M. Iki 294276 m. Po Kr 1 mikrosekundė / 14 skaitmenų
Laiko žymė su laiko juosta 8 baitai 4713 m. Pr. M. Iki 294276 m. Po Kr 1 mikrosekundė / 14 skaitmenų
data 4 baitai 4713 m. Pr. M. Iki 294276 m. Po Kr Vieną dieną
Laikas be laiko juostos 8 baitai Nuo 00:00:00 iki 24:00:00 1 mikrosekundė / 14 skaitmenų
Laikas su laiko juosta 12 baitų 00:00:00 + 1459–24: 00–1459 1 mikrosekundė / 14 skaitmenų
Intervalas 12 baitų -178000000 iki 178000000 metų 1 mikrosekundė / 14 skaitmenų

Pavyzdžiai:

Įvestis apibūdinimas
2025-09-07 ISO 8601, rugsėjo 7 d., Naudojant bet kokį datos stilių (rekomenduojamas formatas)
2025 m. Rugsėjo 7 d Rugsėjo 7 d. Su bet kokiu datos stiliumi
25/09/2025 Rugsėjo 7 d. Su MDY, liepos 9 d. - su DMY
Rugsėjo 9 d 2025 m. Rugsėjo 7 d. Su MDY
2025 m. - rugsėjo 7 d Rugsėjo 7 d. Su bet kokiu datos stiliumi
2018 rugsėjo 7 d Rugsėjo 7 d. Su bet kokiu datos stiliumi
Rugsėjo 7 d. - 25 d 2025 m. Rugsėjo 7 d. Su YMD
20250907 ISO 8601,7, 20225 m. Rugsėjo mėn., Bet kokiu režimu
2025.250 metai ir metų diena, šiuo atveju, 2025 m. rugsėjo 7 d
J25250 Džuliano data

Laikas / laikas su laiko juostos įvestimi

Įvestis apibūdinimas
11: 19: 38.507 11:19:38 11:19 111938 ISO 8601
11:19 Tas pats kaip 11:19
23:19 tas pats kaip 23:19
23: 19-3 23: 19-03: 00 231900-03 ISO 8601, tas pats, kas 23:19 EST
23:19 EST laiko juosta nurodyta kaip EST, ta pati kaip 23:19 EST

Būlio tipas

Būlo duomenų tipas gali būti

  • Tiesa
  • Klaidinga
  • niekinis

vertybes.

Jūs naudojate bool ar boolean raktažodį deklaruoti stulpelį su loginis tipas.

Kai įterpiate reikšmes į loginį stulpelį, „Postgre“ konvertuoja tokias vertes kaip

  • Taip
  • y
  • 1
  • t
  • tiesa

į 1.

Nors vertybės patinka

  • Ne
  • N
  • 0
  • F
  • Klaidinga

yra konvertuojami į 0

Renkantis duomenis, reikšmės vėl konvertuojamos į taip, tiesa, y ir kt.

Geometriniai duomenų tipai

Geometriniai duomenų tipai rodo dvimatį erdvinį objektą. Jie padeda atlikti tokias operacijas kaip pasukimas, mastelio keitimas, vertimas ir kt.

vardas Saugyklos dydis Atstovavimas apibūdinimas
Taškas 16 baitų Taškas lėktuve (x, y)
Linija 32 baitai Begalinė linija ((xl.yl). (x2.y2))
Lseg 32 baitai Ribotas linijos segmentas ((xl.yl). (x2.y2))
Dėžė 32 baitai Stačiakampė dėžutė ((xl.yl). (x2.y2))
Kelias 16n + 16n baitai Uždaryti ir atidaryti kelią ((xl.yl),…)
Poligonas 40 + 16n baitų Poligonas [(xl.yl)….]
Apskritimas 24 baitai Apskritimas <(xy) .r> (centro taškas ir spindulys)

Išvardinti tipai

Išvardytas „PostgreSQL“ duomenų tipas yra naudingas retai besikeičiančiai informacijai, pavyzdžiui, šalies kodui ar filialo ID, pateikti. Surašytų duomenų tipas pateikiamas lentelėje su svetimais raktais, kad būtų užtikrintas duomenų vientisumas.

Pavyzdys:

Plaukų spalva yra gana statiška demografinėje duomenų bazėje

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

Diapazono tipas

Daugeliui verslo programų reikia duomenų intervalais. Paprastai nustatomi du stulpeliai (pavyzdžiui: pradžios data, pabaigos data), kad būtų galima valdyti diapazonus. Tai yra neefektyvu ir sunku išlaikyti.

„Postgre“ sukūrė diapazonų tipus taip

  • int4range - rodomas sveiko skaičiaus diapazonas
  • int8range - rodomas „bigint“ diapazonas
  • numrange - rodo skaitinį diapazoną
  • tstrange - padeda rodyti laiko žymę be laiko juostos
  • keista - leidžia rodyti laiko žymę su laiko juosta
  • dienų seka - dienų seka

UUID tipas

Visuotinai unikalus identifikavimas (UUID) yra 128 bitų dydis, kurį sukuria algoritmas. Labai mažai tikėtina, kad tą patį identifikatorių sugeneruos kitas pasaulio asmuo, naudodamas tą patį algoritmą. Štai kodėl paskirstytoms sistemoms šie identifikatoriai yra idealus pasirinkimas, nes jie siūlo unikalumą vienoje duomenų bazėje. UUID rašomas kaip mažųjų raidžių šešioliktainių skaitmenų grupė, įvairias grupes skiriant brūkšneliais.

„PostgreSQL“ turi vietinį UUID duomenų tipą, kuris sunaudoja 16 baitų atminties ... UUID yra idealus duomenų tipas pirminiams raktams.

Pavyzdys:

d5f28c97-b962-43be-9cf8-ca1632182e8e

„Postgre“ taip pat priima alternatyvias UUID įvesties formas, pavyzdžiui, visas didžiąsias ir mažąsias raides, be brūkšnių, petnešų ir kt.

XML tipas

„PostgreSQL“ leidžia saugoti XML duomenis duomenų tipe, tačiau tai yra ne kas kita, kaip tik teksto duomenų tipo išplėtimas. Bet privalumas yra tai, kad jis tikrina, ar įvesties XML yra gerai suformuota.

Pavyzdys:

XMLPARSE (DOCUMENT 'Data Type')

JSON tipas

JSON duomenims saugoti „PostgreSQL“ siūlo 2 duomenų tipus

  1. JSON
  2. JSONB
Json Jsonb
Paprastas teksto duomenų tipo išplėtimas su JSON patvirtinimu Dvejetainis JSON duomenų pateikimas
Įterpimas yra greitas, bet duomenų paieška gana lėta. Įterpimas lėtas, bet pasirinkite (duomenų paieška greita)
Įrašyti duomenys išsaugomi tiksliai taip, kaip yra tarpai. Palaiko indeksavimą. Gali optimizuoti spragas, kad jas būtų galima greičiau išgauti.
Duomenų gavimo perdirbimas Duomenų paieškai nereikia perdirbti

Plačiausiai naudojamas JSON duomenų tipas naudojo mus „jsonb“, nebent yra tam tikras specializuotas poreikis naudoti JSON duomenų tipą.

Pavyzdys:

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}');

Pseudo tipai

„PostgreSQL“ yra daug specialios paskirties įrašų, kurie vadinami pseudo tipais. Negalite naudoti pseudo tipų kaip „PostgreSQL“ stulpelių tipų. Jie naudojami deklaruoti arba funkcijos argumentą ar grąžinimo tipą.

Kiekvienas iš galimų pseudo tipų yra naudingas tais atvejais, kai funkcijos elgsenos dokumentai neatitinka paprasčiausio konkretaus SQL duomenų tipo vertės paėmimo ar grąžinimo.

vardas apibūdinimas
Bet koks Funkcija priima visus įvesties duomenų tipus.
Masyvas Funkcija priima bet kokį masyvo duomenų tipą.
Bet koks elementas Funkcija priima bet kokį duomenų tipą.
Bet kokia enum Funkcija priima bet kokį enum duomenų tipą.
Nonarray Funkcija priima bet kokį ne masyvo duomenų tipą.
Cstring Funkcija priima arba grąžina nulinę pabaigą C eilutę.
Vidinis Vidinė funkcija priima arba grąžina vidinio serverio duomenų tipą.
Kalbos_tvarkytojas Skelbiama, kad jis grąžins kalbos tvarkytoją.
Įrašyti Raskite funkciją, kuri grąžina nenurodytą eilutės tipą.
Paleiskite Trigerio funkcija naudojama norint grąžinti trigerį.

Svarbu, kad vartotojas, kuris naudojasi šia funkcija, turėtų įsitikinti, kad funkcija elgsis saugiai, kai pseudo tipas naudojamas kaip argumento tipas.

Geriausia duomenų tipų naudojimo praktika

  • Naudokite „teksto“ duomenų tipą, nebent norite apriboti įvestį
  • Niekada nenaudokite „char“.
  • Sveikieji skaičiai naudoja „int“. „Bigint“ naudokite tik tada, kai turite tikrai daug skaičių
  • Beveik visada naudokite „skaitmeninius“
  • „PostgreSQL“ naudokite „float“, jei turite IEEE 754 duomenų šaltinį

Santrauka

  • „PostgreSQL“ vartotojams siūlo gausų savųjų duomenų tipų rinkinį
  • „PostgreSQL“ palaiko simbolių duomenų tipus teksto reikšmėms saugoti
  • „PostgreSQL“ palaiko du skirtingus skaičių tipus: 1. Sveikieji skaičiai, 2. Kintamųjų skaičių skaičiai
  • Dvejetainė eilutė yra baitų arba oktetų seka
  • „PostgreSQL“ turi tinklo adreso tipą, kuris padės optimizuoti tinklo duomenų saugojimą
  • Teksto paieška „PostgreSQL“ duomenų struktūros yra sukurtos palaikyti viso teksto paiešką
  • Data / laikas PSQL duomenų tipai leidžia informaciją apie datą ir laiką įvairiais formatais
  • Boolean Postgres laukų tipuose gali būti trys reikšmės: 1. Tiesa 2. Netiesa 3. Nulinė
  • Geometriniai „PostgreSQL“ duomenų tipai atspindi dvimatį erdvinį objektą
  • „PostgreSQL“ išvardyti duomenų tipai yra naudingi retai besikeičiančiai informacijai, pvz., Šalies kodui ar filialo ID, pateikti
  • Visuotinai unikalus identifikavimas (UUID) yra 128 bitų dydis, kurį sukuria algoritmas
  • „PostgreSQL“ yra daug specialios paskirties įrašų, kurie vadinami pseudo tipais
  • Geriausia naudoti „teksto“ duomenų tipą, nebent norite apriboti įvestį

Įdomios straipsniai...