PostgreSQL datu tipi: Raksturs - Skaitlisks Binārais - Būla

Satura rādītājs:

Anonim

PostgreSQL lietotājiem piedāvā bagātīgu vietējo datu tipu komplektu. Lietotāji var pievienot jaunus veidus, izmantojot komandu CREATE TYPE. Tas arī padara vaicājumus vienkāršākus un lasāmākus.

Datu tipi PostgreSQL

PostgreSQL atbalsta šādus datu tipus:

  • Teksta veidi
  • Ciparu veidi
  • Datumi un laiki
  • XML
  • JSON
  • Būla
  • Biti
  • Binārie dati
  • Tīkls
  • Masīvi
  • Izveidojiet savu datu tipu
  • Būla
  • Temporāls
  • UUID
  • Masīvs
  • JSON
  • Īpaši datu tipi tīkla adreses un ģeometrisko datu glabāšanai.

Detalizēti izpētīsim PostgreSQL datu tipus

  • Rakstzīmju datu tipi
  • Skaitliskie datu tipi
  • Binārie datu tipi
  • Tīkla adreses tips
  • Teksta meklēšanas veids
  • Datuma / laika datu tipi
  • Būla tips
  • Ģeometriskie datu tipi
  • Uzskaitītie veidi
  • Diapazona tips
  • UUID tips
  • XML tips
  • JSON tips
  • Pseidotipi

Rakstzīmju datu tipi

PostgreSQL atbalsta rakstzīmju datu tipus teksta vērtību glabāšanai. PostgreSQL rakstzīmju datu tipus veido no vienas un tās pašas iekšējās struktūras. PostgreSQL piedāvā trīs rakstzīmju datu tipus: CHAR (n), VARCHAR (n) un TEXT.

Nosaukums Apraksts
varchar (n) Ļauj deklarēt mainīgu garumu ar ierobežojumu
Char (n) Fiksēta garuma, tukša, polsterēta
Teksts Use var izmantot šo datu tipu, lai deklarētu mainīgo ar neierobežotu garumu

Skaitliskie datu tipi

PostgreSQL atbalsta divus atšķirīgus numuru veidus:

  • Veseli skaitļi
  • Peldošo punktu skaitļi
Nosaukums Veikala lielums Diapazons
maziņš 2 baiti -32768 līdz +32767
vesels skaitlis 4 baiti No -2147483648 līdz +2147483647
bigint 8 baiti -9223372036854775808 līdz 9223372036854775807
aiz komata mainīgais Ja jūs to deklarējāt kā decimāldaļu, datu tips svārstās no 131072 cipariem pirms komata līdz 16383 cipariem aiz komata
ciparu mainīgais Ja paziņojat, ka tas ir skaitlis, pirms decimāldaļskaitļa jūs varat iekļaut skaitli līdz 131072 cipariem līdz 16383 cipariem aiz komata
īsts 4 baiti 6 ciparu precizitāte
dubultā 8 baiti 15 ciparu precizitāte

Binārie datu tipi

Binārā virkne ir oktetu vai baitu secība. Binārie Postgres datu tipi tiek sadalīti divos veidos.

  • Binārās virknes ļauj uzglabāt nulles vērtības izredzes
  • Neapdrukājami okteti

Rakstzīmju virknes nepieļauj nulles oktetus, kā arī neatļauj citas okteta vērtības un secības, kas nav derīgas saskaņā ar datu bāzes rakstzīmju kopas kodēšanas noteikumiem.

Nosaukums Krātuves lielums Apraksts
Baits 1 līdz 4 baiti plus binārā virknes lielums Mainīga garuma binārā virkne

Tīkla adreses tips

Daudzās lietojumprogrammās tiek saglabāta tīkla informācija, piemēram, lietotāju IP adrese vai

sensori. PostgreSQL ir trīs vietējie veidi, kas palīdz optimizēt tīkla datus.

Nosaukums Izmērs Apraksts
sidrs 7 vai 19 baiti IPV4 un IPv6 tīkli
Inet 7 vai 19 baiti IPV4 un IPV5 resursdators un tīkli
macaddr 6 baiti MAC adreses

Tīkla adrešu veidu izmantošanai ir šādas priekšrocības

  1. Krātuves ietaupīšana
  2. Ievades kļūdu pārbaude
  3. Funkcijas, piemēram, datu meklēšana apakštīklā

Teksta meklēšanas veids

PostgreSQL nodrošina divus datu tipus, kas paredzēti pilnteksta meklēšanas atbalstam. Pilna teksta meklēšana ir meklēšana, izmantojot dabiskās valodas dokumentu kolekciju, lai meklētu tos, kas vislabāk atbilst vaicājumam.

  • Tsvector teksta meklēšana PostgreSQL mainīgo tipi attēlo dokumentu formā, kas optimizēta teksta meklēšanai
  • Vaicājuma veida teksta meklēšana glabā atslēgvārdus, kas jāmeklē

Datuma / laika datu tipi

PostgreSQL laika zīmogs piedāvā mikrosekundes precizitāti otrās precizitātes vietā. Turklāt jums ir arī iespēja saglabāt ar laika joslu vai bez tās. PostgreSQL ievades laikā laika zīmogu ar laika joslu pārveidos par UTC un saglabās to.

Datuma un laika ievade tiek pieņemta dažādos formātos, ieskaitot tradicionālos Postgres, ISO 8601. Saderīgs ar SQL utt.

PostgreSQL atbalsta dienu / mēnešu / gadu pasūtīšanu. Atbalstītie formāti ir DMY, MDY, YMD

Laika datu tipi

Nosaukums Izmērs Diapazons Izšķirtspēja
Laika zīmogs bez laika joslas 8 baiti 4713. gadā pirms mūsu ēras līdz 294276. gadam 1 mikrosekunde / 14 cipari
Laika zīmogs ar laika joslu 8 baiti 4713. gadā pirms mūsu ēras līdz 294276. gadam 1 mikrosekunde / 14 cipari
datums 4 baiti 4713. gadā pirms mūsu ēras līdz 294276. gadam Viena diena
Laiks bez laika joslas 8 baiti 00:00:00 līdz 24:00:00 1 mikrosekunde / 14 cipari
Laiks ar laika joslu 12 baiti 00:00:00 + 1459 līdz 24:00: 00-1459 1 mikrosekunde / 14 cipari
Intervāls 12 baiti -178000000 līdz 178000000 gadiem 1 mikrosekunde / 14 cipari

Piemēri:

Ievade Apraksts
2025-09-07 ISO 8601, 7. septembris ar jebkuru datuma stilu (ieteicams formāts)
2025. gada 7. septembris 7. septembris ar jebkuru datuma stilu
7/09/2025 7. septembrī ar MDY, 9. jūlijā ar DMY
7.9.25 2025. gada 7. septembrī ar MDY
2025. gada 7. septembris 7. septembris ar jebkuru datuma stilu
Septembris-7-2018 7. septembris ar jebkuru datuma stilu
7. septembris-25 2025. gada 7. septembrī ar YMD
20250907 ISO 8601,7 20225. gada septembris jebkurā režīmā
2025.250 gads un gada diena, šajā gadījumā 2025. gada 7. septembris
J25250 Džuliana datums

Laiks / laiks ar laika joslas ievadi

Ievade Apraksts
11: 19: 38.507 11:19:38 11:19 111938 ISO 8601
11:19 Tas pats, kas 11:19
23:19 tas pats, kas 23:19
23: 19-3 23: 19-03: 00 231900-03 ISO 8601, tāds pats kā 23:19 EST
23:19 EST laika josla ir norādīta kā EST, tāpat kā plkst. 23:19 EST

Būla tips

Būla datu tips var būt

  • Patiesi
  • Nepatiesa
  • nulle

vērtības.

Lai deklarētu kolonnu ar Būla datu tipu, izmantojat Bool vai Boolean atslēgvārdu.

Ievietojot vērtības būla kolonnā, Postgre konvertē tādas vērtības kā

  • y
  • 1
  • t
  • taisnība

1.

Kaut arī vērtībām patīk

  • N
  • 0
  • F
  • Nepatiesa

tiek konvertēti uz 0

Atlasot datus, vērtības atkal tiek pārvērstas par jā, taisnība, y utt.

Ģeometriskie datu tipi

Ģeometriskie datu tipi attēlo divdimensiju telpiskos objektus. Tie palīdz veikt tādas darbības kā rotācijas, mērogošana, tulkošana utt.

Nosaukums Krātuves lielums Pārstāvība Apraksts
Punkts 16 baiti Punkts plaknē (x, y)
Līnija 32 baiti Bezgalīga līnija ((xl.yl). (x2.y2))
Lseg 32 baiti Galīgais līnijas segments ((xl.yl). (x2.y2))
Kaste 32 baiti Taisnstūra lodziņš ((xl.yl). (x2.y2))
Ceļš 16n + 16n baiti Aizvērt un atvērt ceļu ((xl.yl),…)
Daudzstūris 40 + 16 n baiti Daudzstūris [(xl.yl)….]
Aplis 24 baiti Aplis <(xy) .r> (centra punkts un rādiuss)

Uzskaitītie veidi

Uzskaitītais PostgreSQL datu tips ir noderīgs, lai attēlotu reti mainīgu informāciju, piemēram, valsts kodu vai filiāles ID. Lai nodrošinātu datu integritāti, uzskaitīto datu tips ir attēlots tabulā ar svešām atslēgām.

Piemērs:

Matu krāsa ir diezgan statiska demogrāfiskajā datu bāzē

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

Diapazona tips

Daudzām biznesa lietojumprogrammām ir nepieciešami dati diapazonos. Parasti diapazonu apstrādei ir noteiktas divas kolonnas (piemēram: sākuma datums, beigu datums). Tas ir gan neefektīvi, gan grūti uzturami.

Postgre ir izveidojis diapazonu tipus šādi

  • int4range - attēlo vesela skaitļa diapazonu
  • int8range - bigint displeja diapazons
  • numrange - parāda ciparu diapazonu
  • tstrange - palīdz jums parādīt laika zīmogu bez laika joslas
  • dīvaini - ļauj parādīt laika zīmogu ar laika joslu
  • datumu diapazons - datumu diapazons

UUID tips

Universally Unique Identified (UUID) ir 128 bitu lielums, ko ģenerē algoritms. Ir maz ticams, ka to pašu identifikatoru ģenerēs cita persona pasaulē, izmantojot to pašu algoritmu. Tāpēc izplatītajām sistēmām šie identifikatori ir ideāla izvēle, jo tie piedāvā unikalitāti vienā datu bāzē. UUID tiek rakstīts kā mazo burtu heksadecimālo ciparu grupa, ar dažādām grupām atdalot ar defisēm.

PostgreSQL ir vietējais UUID datu tips, kas patērē 16 baitus krātuves ... UUID ir ideāls datu tips primārajām atslēgām.

Piemērs:

d5f28c97-b962-43be-9cf8-ca1632182e8e

Postgre pieņem arī alternatīvas UUID ievades formas, piemēram, visus lielos burtus, bez defisēm, lencēm utt.

XML tips

PostgreSQL ļauj uzglabāt XML datus datu tipā, taču tas nav nekas cits kā teksta datu veida paplašinājums. Bet priekšrocība ir tā, ka tā pārbauda, ​​vai ievades XML ir labi izveidots.

Piemērs:

XMLPARSE (DOCUMENT 'Data Type')

JSON tips

JSON datu glabāšanai PostgreSQL piedāvā divus datu veidus

  1. JSON
  2. JSONB
json Jsonb
Vienkāršs teksta datu tipa paplašinājums ar JSON validāciju JSON datu binārs attēlojums
Ievietošana notiek ātri, bet datu izguve ir samērā lēna. Ievietošana ir lēna, bet izvēlieties (datu izguve ir ātra)
Saglabā ievadītos datus tieši tādā veidā, kā tas ietver atstarpi. Atbalsta indeksēšanu. Var optimizēt atstarpi, lai padarītu izguvi ātrāku.
Datu izguves pārstrāde Datu izgūšanai nav nepieciešama pārstrāde

Visplašāk izmantotais JSON datu tips izmantoja mūs jsonb, ja vien nav īpašas vajadzības izmantot JSON datu tipu.

Piemērs:

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

Pseidotipi

PostgreSQL ir daudz īpaša mērķa ierakstu, kurus sauc par pseidotipiem. Jūs nevarat izmantot pseidotipus kā PostgreSQL kolonnu tipus. Tie tiek izmantoti, lai deklarētu vai funkcijas argumentu vai atgriešanās tipu.

Katrs no pieejamajiem pseidotipiem ir noderīgs situācijās, kad funkcijas uzvedības dokumenti neatbilst vienkārši noteikta SQL datu veida vērtības ņemšanai vai atdošanai.

Nosaukums Apraksts
Jebkurš Funkcija pieņem visu ievades datu tipu.
Masīvs Funkcija pieņem jebkuru masīva datu tipu.
Jebkurš elements Funkcija pieņem jebkura veida datus.
Jebkura enum Funkcija pieņem jebkuru enum datu tipu.
Nonarray Funkcija pieņem jebkuru datu veidu, kas nav masīvs.
Cstring Funkcija pieņem vai atgriež C virkni ar nulles galu.
Iekšējais Iekšējā funkcija pieņem vai atgriež servera iekšējo datu tipu.
Valodas apstrādātājs Tiek deklarēts, ka tas atgriež valodas apstrādātāju.
Ieraksts Atrodiet funkciju, kas atgriež nenoteiktu rindas veidu.
Trigeris Sprūda funkcija tiek izmantota, lai atgrieztu sprūdu.

Ir svarīgi, lai lietotājam, kurš izmanto šo funkciju, būtu jāpārliecinās, ka funkcija rīkosies droši, ja pseido tips tiek izmantots kā argumentu tips.

Datu tipu izmantošanas paraugprakse

  • Izmantojiet teksta datu veidu, ja vien nevēlaties ierobežot ievadi
  • Nekad nelietojiet "char".
  • Veseli skaitļi lieto “int”. Izmantojiet bigintu tikai tad, ja jums ir patiešām lieli skaitļi
  • Gandrīz vienmēr izmantojiet "ciparu"
  • Izmantojiet pludiņu PostgreSQL, ja jums ir IEEE 754 datu avots

Kopsavilkums

  • PostgreSQL lietotājiem piedāvā bagātīgu vietējo datu tipu komplektu
  • PostgreSQL atbalsta rakstzīmju datu tipus teksta vērtību glabāšanai
  • PostgreSQL atbalsta divus atšķirīgus skaitļu veidus: 1. Veseli skaitļi, 2. Peldošo punktu skaitļi
  • Binārā virkne ir baitu vai oktetu secība
  • PostgreSQL ir tīkla adreses tips, kas palīdz optimizēt tīkla datu glabāšanu
  • Teksta meklēšana PostgreSQL datu struktūras ir izstrādātas, lai atbalstītu pilnteksta meklēšanu
  • Datums / laiks PSQL datu tipi ir informācija par datumu un laiku dažādos formātos
  • Būla lauka Postgres lauku tipos var būt trīs vērtības 1. Patiesa 2. Nepatiesa 3. Null
  • Ģeometriskie PostgreSQL datu tipi attēlo divdimensiju telpiskos objektus
  • Uzskaitītie datu tipi PostgreSQL ir noderīgi, lai attēlotu reti mainīgu informāciju, piemēram, valsts kodu vai filiāles ID
  • Universally Unique Identified (UUID) ir 128 bitu lielums, ko ģenerē algoritms
  • PostgreSQL ir daudz īpaša mērķa ierakstu, kurus sauc par pseidotipiem
  • Vislabāk ir izmantot teksta datu tipu, ja vien nevēlaties ierobežot ievadi