PostgreSQL tipovi podataka: Znak - Numerički - Binarni - Booleova

Sadržaj:

Anonim

PostgreSQL nudi bogat skup nativnih vrsta podataka za korisnike. Korisnici mogu dodavati nove vrste uz pomoć naredbe CREATE TYPE. Također čini upite jednostavnijim i čitljivijim.

Tipovi podataka u PostgreSQL-u

PostgreSQL podržava sljedeće tipove podataka:

  • Vrste teksta
  • Numeričke vrste
  • Datumi i vremena
  • XML
  • JSON
  • Booleova
  • Komadići
  • Binarni podaci
  • Mreža
  • Nizovi
  • Stvorite svoj tip podataka
  • Booleova
  • Vremenski
  • UUID
  • Polje
  • JSON
  • Posebni tipovi podataka za pohranu mrežne adrese i geometrijskih podataka.

Detaljno proučimo tipove podataka PostgreSQL

  • Tipovi podataka o znakovima
  • Numerički tipovi podataka
  • Binarni tipovi podataka
  • Vrsta mrežne adrese
  • Vrsta pretraživanja teksta
  • Vrste podataka o datumu / vremenu
  • Logički tip
  • Geometrijski tipovi podataka
  • Nabrojani tipovi
  • Tip dometa
  • UUID tip
  • XML tip
  • Tip JSON
  • Pseudo-vrste

Tipovi podataka o znakovima

PostgreSQL podržava tipove podataka znakova za pohranu tekstualnih vrijednosti. PostgreSQL gradi tipove podataka znakova iz istih unutarnjih struktura. PostgreSQL nudi tri vrste znakova: CHAR (n), VARCHAR (n) i TEXT.

Ime Opis
varchar (n) Omogućuje vam deklariranje promjenljive duljine s ograničenjem
Char (n) Fiksne duljine, prazno podstavljeno
Tekst Use može koristiti ovaj tip podataka za deklariranje varijable neograničene duljine

Numerički tipovi podataka

PostgreSQL podržava dvije različite vrste brojeva:

  • Cijeli brojevi
  • Brojevi s pomičnom zarezom
Ime Veličina trgovine Domet
smallint 2 bajta -32768 do +32767
cijeli broj 4 bajta -2147483648 do +2147483647
bigint 8 bajtova -9223372036854775808 do 9223372036854775807
decimal varijabilna Ako ste ga deklarirali kao decimalni tip podataka, kreće se od 131072 znamenke prije decimalne točke do 16383 znamenke nakon decimalne točke
brojčani varijabilna Ako ga prijavite kao broj, možete uključiti broj do 131072 znamenke prije decimalne točke na 16383 znamenke nakon decimalne točke
stvaran 4 bajta Preciznost 6 decimalnih znamenki
dvostruko 8 bajtova Preciznost 15 decimalnih znamenki

Binarni tipovi podataka

Binarni niz je niz okteta ili bajtova. Binarni tipovi podataka Postgres podijeljeni su na dva načina.

  • Binarni nizovi omogućuju pohranjivanje izgleda nula
  • Okteti koji se ne mogu ispisati

Nizovi znakova ne dopuštaju nula okteta, a također onemogućuju bilo koje druge oktetne vrijednosti i sekvence koje su nevaljane prema pravilima kodiranja skupa znakova baze podataka.

Ime Veličina spremišta Opis
Bajt 1 do 4 bajta plus veličina binarnog niza Binarni niz promjenljive duljine

Vrsta mrežne adrese

Mnoge aplikacije pohranjuju mrežne podatke poput IP adrese korisnika ili

senzori. PostgreSQL ima tri izvorna tipa koja vam pomažu u optimizaciji mrežnih podataka.

Ime Veličina Opis
jabukovača 7 ili 19 bajba IPV4 i IPv6 mreže
Inet 7 ili 19 bajtova IPV4 i IPV5 domaćin i mreže
macaddr 6 bajtova MAC adrese

Korištenje vrsta mrežnih adresa ima sljedeće prednosti

  1. Ušteda prostora za pohranu
  2. Provjera ulazne pogreške
  3. Funkcije poput pretraživanja podataka po podmreži

Vrsta pretraživanja teksta

PostgreSQL nudi dvije vrste podataka koje su dizajnirane za podršku pretraživanju cijelog teksta. Pretraživanje cjelovitog teksta je pretraživanje zbirke dokumenata na prirodnom jeziku radi pretraživanja onih koji najbolje odgovaraju upitu.

  • Tsvector pretraživanje teksta Vrste varijabli PostgreSQL predstavljaju dokument u obliku optimiziranom za pretraživanje teksta
  • Pretraživanje teksta vrste upita pohranjuje ključne riječi koje je potrebno pretražiti

Vrste podataka o datumu / vremenu

PostgreSQL vremenska oznaka nudi mikrosekundnu preciznost umjesto druge preciznosti. Štoviše, također imate mogućnost pohrane s vremenskom zonom ili bez nje. PostgreSQL će pretvoriti vremensku oznaku s vremenskom zonom u UTC na unosu i pohraniti je.

Unos datuma i vremena prihvaća se u različitim formatima, uključujući tradicionalni Postgres, ISO 8601. SQL-kompatibilni itd.

PostgreSQL podržava redoslijed po danu / mjesecu / godini. Podržani formati su DMY, MDY, YMD

Privremeni tipovi podataka

Ime Veličina Domet Razlučivost
Vremenska oznaka bez vremenske zone 8 bajtova 4713. pr. Kr. Do 294276 1 mikrosekunda / 14 znamenki
Vremenska oznaka s vremenskom zonom 8 bajtova 4713. pr. Kr. Do 294276 1 mikrosekunda / 14 znamenki
datum 4 bajta 4713. pr. Kr. Do 294276 Jednog dana
Vrijeme bez vremenske zone 8 bajtova 00:00:00 do 24:00:00 1 mikrosekunda / 14 znamenki
Vrijeme s vremenskom zonom 12 bajtova 00:00:00 + 1459 do 24: 00: 00-1459 1 mikrosekunda / 14 znamenki
Interval 12 bajtova -178000000 do 178000000 godina 1 mikrosekunda / 14 znamenki

Primjeri:

Ulazni Opis
2025-09-07 ISO 8601, 7. rujna s bilo kojim stilom datuma (preporučeni format)
7. rujna 2025 7. rujna s bilo kojim stilom datuma
7.9.2025 7. rujna s MDY, 9. srpnja s DMY
7. 9. 25 7. rujna 2025. s MDY
2025.-7 7. rujna s bilo kojim stilom datuma
7. rujna 2018 7. rujna s bilo kojim stilom datuma
7. rujna-25 7. rujna 2025. s YMD
20250907 ISO 8601,7 rujna 20225 u bilo kojem načinu
2025.250 godine i dana u godini, u ovom slučaju 7. rujna 2025
J25250 Julian datum

Vrijeme / Vrijeme s unosom vremenske zone

Ulazni Opis
11: 19: 38,507 11:19:38 11:19 111938 ISO 8601
11:19 Isto kao i 11:19
23:19 isto kao 23:19
23: 19-3 23: 19-03: 00 231900-03 ISO 8601, isto kao i 23:19 EST
23:19 EST vremenska zona navedena kao EST, isto kao i 23:19 EST

Logički tip

Može sadržavati logički tip podataka

  • Pravi
  • Lažno
  • null

vrijednosti.

Koristite bool ili logičku ključnu riječ za deklariranje stupca s logičkim tipom podataka.

Kada umetnete vrijednosti u logički stupac, Postgre pretvara vrijednosti poput

  • Da
  • g
  • 1
  • t
  • pravi

u 1.

Dok vrijednosti poput

  • Ne
  • N
  • 0
  • F
  • Lažno

pretvaraju se u 0

Tijekom odabira podataka, vrijednosti se ponovno pretvaraju natrag u da, istinu, y itd.

Geometrijski tipovi podataka

Geometrijski tipovi podataka predstavljaju dvodimenzionalne prostorne objekte. Pomažu u izvođenju operacija poput rotacija, skaliranja, prevođenja itd.

Ime Veličina spremišta Zastupanje Opis
Točka 16 bajtova Usmjerite na ravninu (x, y)
Crta 32 bajta Beskonačna crta ((xl.yl). (x2.y2))
Lseg 32 bajta Konačni linijski segment ((xl.yl). (x2.y2))
Kutija 32 bajta Pravokutna kutija ((xl.yl). (x2.y2))
Staza 16n + 16n bajtova Zatvori i otvori put ((xl.yl),…)
Poligon 40 + 16n bajtova Poligon [(xl.yl)….]
Krug 24 bajta Krug <(xy) .r> (središnja točka i polumjer)

Nabrojani tipovi

Nabrojeni PostgreSQL tip podataka koristan je za predstavljanje rijetko mijenjajućih podataka kao što su pozivni broj države ili ID podružnice. Nabrojani tip podataka predstavljen je u tablici s inozemnim ključevima kako bi se osigurala cjelovitost podataka.

Primjer:

Boja kose prilično je statična u demografskoj bazi podataka

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

Tip dometa

Mnoge poslovne aplikacije zahtijevaju podatke u rasponima. Uobičajeno su definirana dva stupca (primjer: datum početka, datum završetka) za obradu raspona. To je i neučinkovito i teško za održavanje.

Postgre je sagradio vrste raspona kako slijedi

  • int4range - Prikazuje raspon cijelog broja
  • int8range - Prikaz raspona biginta
  • numrange - prikazuje numerički raspon
  • tstrange - pomaže vam da prikažete vremensku oznaku bez vremenske zone
  • čudno - omogućuje vam prikaz vremenske oznake s vremenskom zonom
  • datumski raspon - raspon datuma

UUID tip

Univerzalno jedinstveni identificira (UUID) je 128-bitna veličina koju generira algoritam. Vrlo je malo vjerojatno da će isti identifikator generirati druga osoba na svijetu koristeći isti algoritam. Zbog toga su za distribuirane sustave ovi identifikatori idealan izbor jer nude jedinstvenost unutar jedne baze podataka. UUID je napisan kao skupina malih heksadecimalnih znamenki, s različitim skupinama odvojenim crticama.

PostgreSQL ima izvorni UUID tip podataka koji zauzima 16 bajta prostora za pohranu ... UUID je idealan tip podataka za primarne ključeve.

Primjer:

d5f28c97-b962-43be-9cf8-ca1632182e8e

Postgre također prihvaća alternativne oblike UUID unosa, kao što su svi veliki i mali slovi, bez crtica, zagrada itd.

XML tip

PostgreSQL vam omogućuje pohranu XML podataka u vrstu podataka, ali to je ništa više od proširenja tekstualne vrste podataka. Ali prednost je u tome što provjerava je li ulazni XML dobro oblikovan.

Primjer:

XMLPARSE (DOCUMENT 'Data Type')

Tip JSON

Za pohranu JSON podataka PostgreSQL nudi 2 vrste podataka

  1. JSON
  2. JSONB
json Jsonb
Jednostavno proširenje tekstualne vrste podataka s JSON provjerom valjanosti Binarni prikaz JSON podataka
Umetanje je brzo, ali dohvat podataka relativno spor. Umetanje je sporo, ali odabir (brzo je preuzimanje podataka)
Sprema unesene podatke točno onako kako jesu, uključujući razmake. Podržava indeksiranje. Može optimizirati razmak kako bi se brže pristupilo.
Ponovna obrada pri pronalaženju podataka Nije potrebna ponovna obrada za pronalaženje podataka

Najčešće korišteni tip podataka JSON koristio je nas jsonb, osim ako postoji posebna potreba za korištenjem tipa podataka JSON.

Primjer:

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-vrste

PostgreSQL ima mnogo unosa za posebne namjene koji se nazivaju pseudo-tipovima. Ne možete koristiti pseudo-vrste kao vrste stupaca PostgreSQL. Koriste se za deklariranje ili argument funkcije ili tip povratka.

Svaka od dostupnih pseudo-vrsta korisna je u situacijama kada dokumenti ponašanja funkcije ne odgovaraju jednostavnom uzimanju ili vraćanju vrijednosti određenog SQL tipa podataka.

Ime Opis
Bilo koji Funkcija prihvaća sve vrste ulaznih podataka.
Niz Funkcija prihvaća bilo koji tip podataka niza.
Bilo koji element Funkcija prihvaća bilo koji tip podataka.
Bilo koji nabrajanje Funkcija prihvaća bilo koji tip podataka enum.
Nonarray Funkcija prihvaća bilo koji tip podataka koji nije niz.
Cstring Funkcija prihvaća ili vraća nulom završeni C niz.
Interno Interna funkcija prihvaća ili vraća interni tip podataka poslužitelja.
Rukovalac jezikom Proglašeno je da vraća rukovatelj jezikom.
Snimiti Pronađite funkciju koja vraća neodređeni tip retka.
Okidač Funkcija okidača koristi se za vraćanje okidača.

Važno je da korisnik koji koristi ovu funkciju mora biti siguran da će se funkcija ponašati sigurno kada se pseudo-tip koristi kao tip argumenta.

Najbolji primjeri iz tipova podataka

  • Upotrijebite vrstu podataka "tekst", osim ako ne želite ograničiti unos
  • Nikad ne upotrebljavajte "char".
  • Cijeli brojevi koriste "int." Koristite bigint samo kada imate stvarno velike brojeve
  • Gotovo uvijek koristite "numeričku"
  • Koristite float u PostgreSQL-u ako imate IEEE 754 izvor podataka

Sažetak

  • PostgreSQL nudi bogat skup nativnih vrsta podataka za korisnike
  • PostgreSQL podržava tipove podataka znakova za pohranu tekstualnih vrijednosti
  • PostgreSQL podržava dvije različite vrste brojeva: 1. Cijeli brojevi, 2. brojevi s pomičnom zarezom
  • Binarni niz je slijed bajtova ili okteta
  • PostgreSQL ima vrstu mrežne adrese koja vam pomaže optimizirati pohranu mrežnih podataka
  • Pretraživanje teksta PostgreSQL podatkovne strukture dizajnirane su za podršku pretraživanju cijelog teksta
  • Datum / vrijeme PSQL tipovi podataka dopuštaju podatke o datumu i vremenu u različitim formatima
  • Logičke vrste polja Postgres mogu sadržavati tri vrijednosti 1. Tačno 2. Netačno 3. Null
  • Geometrijski tipovi podataka PostgreSQL predstavljaju dvodimenzionalne prostorne objekte
  • Nabrojani tipovi podataka u PostgreSQL-u korisni su za predstavljanje rijetko mijenjajućih podataka kao što su pozivni broj države ili ID podružnice
  • Univerzalno jedinstveni identificira (UUID) je 128-bitna veličina koju generira algoritam
  • PostgreSQL ima mnogo unosa za posebne namjene koji se nazivaju pseudo-tipovima
  • Najbolja je praksa koristiti vrstu podataka "tekst", osim ako ne želite ograničiti unos