Vrste podatkov PostgreSQL: Znak - Številska - Binarni - Logično

Kazalo:

Anonim

PostgreSQL ponuja bogat nabor izvornih podatkovnih vrst za uporabnike. Uporabniki lahko dodajo nove vrste s pomočjo ukaza CREATE TYPE. Omogoča tudi poizvedbe enostavnejše in bolj berljive.

Vrste podatkov v PostgreSQL

PostgreSQL podpira naslednje tipe podatkov:

  • Vrste besedila
  • Številske vrste
  • Datumi in časi
  • XML
  • JSON
  • Logično
  • Bitovi
  • Binarni podatki
  • Omrežje
  • Polja
  • Ustvarite svoj podatkovni tip
  • Logično
  • Časovno
  • UUID
  • Matrika
  • JSON
  • Posebni tipi podatkov za shranjevanje omrežnega naslova in geometrijskih podatkov.

Podrobno preučimo tipe podatkov PostgreSQL

  • Znakovni tipi podatkov
  • Numerični podatkovni tipi
  • Binarni tipi podatkov
  • Vrsta omrežnega naslova
  • Vrsta iskanja besedila
  • Datum / čas Podatkovni tipi
  • Logična vrsta
  • Geometrijski tipi podatkov
  • Naštete vrste
  • Vrsta območja
  • Vrsta UUID
  • Tip XML
  • Vrsta JSON
  • Psevdotipi

Znakovni tipi podatkov

PostgreSQL podpira tipe podatkovnih znakov za shranjevanje besedilnih vrednosti. PostgreSQL gradi tipe podatkov o znakih iz istih notranjih struktur. PostgreSQL ponuja tri vrste znakov: CHAR (n), VARCHAR (n) in TEXT.

Ime Opis
varchar (n) Omogoča prijavo spremenljive dolžine z omejitvijo
Char (n) Fiksna dolžina, prazno oblazinjeno
Besedilo Uporaba lahko uporablja to vrsto podatkov za razglasitev spremenljivke z neomejeno dolžino

Numerični podatkovni tipi

PostgreSQL podpira dve različni vrsti številk:

  • Cela števila
  • Števila s plavajočo vejico
Ime Velikost trgovine Doseg
smallint 2 bajta -32768 do +32767
celo število 4 bajti -2147483648 do +2147483647
bigint 8 bajtov -9223372036854775808 do 9223372036854775807
decimalno spremenljivka Če ste ga razglasili kot decimalni tip podatkov, sega od 131072 števk pred decimalno vejico do 16383 števk za decimalno vejico
številčno spremenljivka Če jo prijavite kot številko, lahko vključite število do 131072 števk pred decimalno vejico na 16383 števk za decimalno vejico
resnično 4 bajti Natančnost 6 decimalnih mest
dvojno 8 bajtov Natančnost 15 decimalnih mest

Binarni tipi podatkov

Binarni niz je zaporedje oktetov ali bajtov. Binarni tipi podatkov Postgres so razdeljeni na dva načina.

  • Binarni nizi omogočajo shranjevanje verjetnosti vrednosti nič
  • Okteti, ki jih ni mogoče natisniti

Znakovni nizi ne dovoljujejo nič oktetov, prav tako pa ne dovoli nobenih drugih oktetnih vrednosti in zaporedij, ki so neveljavna v skladu s pravili kodiranja nabora znakov baze podatkov.

Ime Velikost prostora za shranjevanje Opis
Bajt 1 do 4 bajti plus velikost binarnega niza Binarni niz s spremenljivo dolžino

Vrsta omrežnega naslova

Številne aplikacije shranjujejo informacije o omrežju, kot so naslovi IP uporabnikov oz

senzorji. PostgreSQL ima tri izvorne vrste, ki vam pomagajo optimizirati omrežne podatke.

Ime Velikost Opis
jabolčnik 7 ali 19 bye Omrežja IPV4 in IPv6
Inet 7 ali 19 bajtov Gostitelj in omrežja IPV4 in IPV5
macaddr 6 bajtov Naslovi MAC

Uporaba vrst omrežnih naslovov ima naslednje prednosti

  1. Prihranek prostora za shranjevanje
  2. Preverjanje vhodnih napak
  3. Funkcije, kot je iskanje podatkov po podomrežju

Vrsta iskanja besedila

PostgreSQL ponuja dve vrsti podatkov, ki sta zasnovani za podporo iskanju po celotnem besedilu. Iskanje po celotnem besedilu je iskanje po zbirki dokumentov v naravnem jeziku za iskanje tistih, ki se najbolje ujemajo s poizvedbo.

  • Iskanje besedila Tsvector Vrste spremenljivk PostgreSQL predstavljajo dokument v obliki, optimizirani za iskanje po besedilu
  • Iskanje po besedilu vrste poizvedbe shranjuje ključne besede, ki jih je treba iskati

Datum / čas Podatkovni tipi

PostgreSQL časovni žig ponuja mikrosekundno natančnost namesto druge natančnosti. Poleg tega imate tudi možnost shranjevanja s časovnim pasom ali brez njega. PostgreSQL bo na vhodu časovni žig s časovnim pasom pretvoril v UTC in ga shranil.

Vnos datuma in časa je sprejemljiv v različnih oblikah, vključno s tradicionalnimi Postgres, ISO 8601. Združljiv s SQL itd.

PostgreSQL podpira naročanje dan / mesec / leto. Podprti formati so DMY, MDY, YMD

Časovne vrste podatkov

Ime Velikost Doseg Resolucija
Časovni žig brez časovnega pasu 8 bajtov 4713 pr.n.št. do 294276 n 1 mikrosekunda / 14 števk
Časovni žig s časovnim pasom 8 bajtov 4713 pr.n.št. do 294276 n 1 mikrosekunda / 14 števk
datum 4 bajti 4713 pr.n.št. do 294276 n Nekega dne
Čas brez časovnega pasu 8 bajtov Od 00:00:00 do 24:00:00 1 mikrosekunda / 14 števk
Čas s časovnim pasom 12 bajtov 00:00:00 + 1459 do 24: 00: 00-1459 1 mikrosekunda / 14 števk
Interval 12 bajtov -178000000 do 178000000 let 1 mikrosekunda / 14 števk

Primeri:

Vhod Opis
2025-09-07 ISO 8601, 7. septembra s poljubnim slogom datuma (priporočena oblika)
7. septembra 2025 7. septembra s poljubnim datumom
7.9.2025 7. septembra z MDY, 9. julija z DMY
7. 9. 25 7. septembra 2025 z MDY
2025-7. September 7. septembra s poljubnim datumom
7. september 2018 7. septembra s poljubnim datumom
7. september-25 7. septembra 2025 z YMD
20250907 ISO 8601,7, september 20225 v katerem koli načinu
2025.250 leto in dan v letu, v tem primeru 7. septembra 2025
J25250 Julijski zmenek

Čas / čas z vnosom časovnega pasu

Vhod Opis
11: 19: 38,507 11:19:38 11:19 111938 ISO 8601
11:19 Enako kot 11:19
23:19 enako kot 23:19
23: 19-3 23: 19-03: 00 231900-03 ISO 8601, enako kot 23:19 EST
23:19 EST časovni pas, določen kot EST, enako kot 23:19 EST

Logična vrsta

Logičen podatkovni tip lahko vsebuje

  • Prav
  • Lažno
  • nič

vrednote.

Uporabljate bool ali logične ključno besedo, da razglasi stolpec z Boolove vrste podatkov.

Ko vstavite vrednosti v logični stolpec, Postgre pretvori vrednosti kot

  • Da
  • y
  • 1.
  • t
  • prav

v 1.

Medtem ko vrednote kot

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

se pretvorijo v 0

Med izbiro podatkov se vrednosti ponovno pretvorijo nazaj v da, res, y itd.

Geometrijski tipi podatkov

Geometrijski podatkovni tipi predstavljajo dvodimenzionalne prostorske objekte. Pomagajo pri izvajanju operacij, kot so rotacije, skaliranje, prevajanje itd.

Ime Velikost prostora za shranjevanje Zastopanje Opis
Točka 16 bajtov Točka na ravnini (x, y)
Vrstica 32 bajtov Neskončna črta ((xl.yl). (x2.y2))
Lseg 32 bajtov Končni odsek črte ((xl.yl). (x2.y2))
Škatla 32 bajtov Pravokotna škatla ((xl.yl). (x2.y2))
Pot 16n + 16n bajtov Zapri in odpri pot ((xl.yl),…)
Poligon 40 + 16n bajtov Poligon [(xl.yl)….]
Krog 24 bajtov Krog <(xy) .r> (sredinska točka in polmer)

Naštete vrste

Našteti podatkovni tip PostgreSQL je uporaben za predstavitev redko spreminjajočih se informacij, kot je koda države ali ID podružnice. Vrsta števila podatkov je v tabeli predstavljena s tujimi ključi, da se zagotovi celovitost podatkov.

Primer:

Barva las je v demografski bazi podatkov dokaj statična

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

Vrsta območja

Številne poslovne aplikacije zahtevajo podatke v obsegih. Običajno sta za obravnavanje obsegov definirana dva stolpca (primer: začetni datum, končni datum). To je hkrati neučinkovito in težko vzdrževati.

Postgre je zgradil vrste obsega, kot sledi

  • int4range - prikaže obseg celotnega števila
  • int8range - prikaže obseg biginta
  • numrange - prikaže številčno območje
  • tstrange - vam pomaga prikazati časovni žig brez časovnega pasu
  • čudno - omogoča prikaz časovnega žiga s časovnim pasom
  • časovno obdobje - časovno obdobje

Vrsta UUID

Univerzalno edinstvena identifikacija (UUID) je 128-bitna količina, ki jo ustvari algoritem. Zelo malo verjetno je, da bo isti identifikator ustvarila druga oseba na svetu z istim algoritmom. Zato so za porazdeljene sisteme ti identifikatorji idealna izbira, saj ponujajo edinstvenost znotraj ene baze podatkov. UUID je zapisan kot skupina malih šestnajstiških številk, z različnimi skupinami, ločenimi z vezaji.

PostgreSQL ima izvorni podatkovni tip UUID, ki porabi 16 bajtov pomnilnika ... UUID je idealen podatkovni tip za primarne ključe.

Primer:

d5f28c97-b962-43be-9cf8-ca1632182e8e

Postgre sprejema tudi alternativne oblike vhodnih podatkov UUID, kot so vse velike črke, brez vezajev, oklepajev itd.

Tip XML

PostgreSQL omogoča shranjevanje podatkov XML v podatkovnem tipu, vendar ni nič drugega kot razširitev besedilnega podatkovnega tipa. Prednost pa je v tem, da preveri, ali je vhodni XML dobro oblikovan.

Primer:

XMLPARSE (DOCUMENT 'Data Type')

Vrsta JSON

Za shranjevanje podatkov JSON PostgreSQL ponuja 2 podatkovna tipa

  1. JSON
  2. JSONB
json Jsonb
Preprosta razširitev besedilnega podatkovnega tipa z validacijo JSON Binarna predstavitev podatkov JSON
Vstavljanje je hitro, vendar je pridobivanje podatkov razmeroma počasno. Vstavljanje je počasno, vendar izberite (hitro pridobivanje podatkov)
Vnesene podatke shrani natanko tako, kot so, vključno s presledki. Podpira indeksiranje. Lahko optimizira presledek za hitrejše iskanje.
Ponovna obdelava pri pridobivanju podatkov Pri pridobivanju podatkov ni potrebna ponovna obdelava

Najpogosteje uporabljeni podatkovni tip JSON je uporabljal nas jsonb, razen če obstaja posebna potreba po uporabi podatkovnega tipa JSON.

Primer:

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

Psevdotipi

PostgreSQL ima veliko namenskih vnosov, ki se imenujejo psevdotipi. Kot vrst stolpcev PostgreSQL ne morete uporabljati psevdotipov. Uporabljajo se za izjavo ali funkcijski argument ali vrsto vrnitve.

Vsak od razpoložljivih psevdotipov je koristen v primerih, ko dokumenti vedenja funkcije ne ustrezajo preprosto sprejemanju ali vrnitvi vrednosti določenega podatkovnega tipa SQL.

Ime Opis
Kaj Funkcija sprejema vse vrste vhodnih podatkov.
Matrika Funkcija sprejema kateri koli podatkovni tip matrike.
Kateri koli element Funkcija sprejema vse vrste podatkov.
Vsak enum Funkcija sprejema kateri koli podatkovni tip enum.
Nonarray Funkcija sprejema vse vrste podatkov, ki niso matrične.
Cstring Funkcija sprejme ali vrne nize C, ki se končajo z ničemer.
Notranji Notranja funkcija sprejme ali vrne notranji podatkovni tip strežnika.
Računalnik_jezika Izjavljeno je, da vrne upravljalnik jezika.
Snemaj Poiščite funkcijo, ki vrne nedoločen tip vrstice.
Sprožilec Funkcija sprožilca se uporablja za vrnitev sprožilca.

Pomembno je, da mora uporabnik, ki uporablja to funkcijo, poskrbeti, da se bo funkcija obnašala varno, kadar bo psevdotip uporabljen kot argument.

Najboljše prakse pri uporabi podatkovnih vrst

  • Uporabite podatkovni tip "besedilo", razen če želite omejiti vnos
  • Nikoli ne uporabljajte "char".
  • Cela števila uporabljajo "int." Bigint uporabljajte samo, če imate res velike številke
  • Skoraj vedno uporabite "številsko"
  • Če imate vir podatkov IEEE 754, uporabite float v PostgreSQL

Povzetek

  • PostgreSQL ponuja bogat nabor izvornih podatkovnih vrst za uporabnike
  • PostgreSQL podpira tipe podatkovnih znakov za shranjevanje besedilnih vrednosti
  • PostgreSQL podpira dve različni vrsti števil: 1. Cela števila, 2. Števila s plavajočo vejico
  • Binarni niz je zaporedje bajtov ali oktetov
  • PostgreSQL ima vrsto omrežnega naslova, ki vam pomaga optimizirati shranjevanje omrežnih podatkov
  • Iskanje besedila PostgreSQL podatkovne strukture so zasnovane tako, da podpirajo iskanje po celotnem besedilu
  • Datum / čas PSQL podatkovni tipi omogočajo informacije o datumu in času v različnih oblikah zapisa
  • Logične vrste polj Postgres lahko vsebujejo tri vrednosti 1. True 2. False 3. Null
  • Geometrijski podatkovni tipi PostgreSQL predstavljajo dvodimenzionalne prostorske objekte
  • Našteti podatkovni tipi v PostgreSQL so uporabni za predstavitev redko spreminjajočih se informacij, kot so koda države ali ID podružnice
  • Univerzalno edinstvena identifikacija (UUID) je 128-bitna količina, ki jo ustvari algoritem
  • PostgreSQL ima veliko namenskih vnosov, ki se imenujejo psevdotipi
  • Najboljša praksa je, da uporabite besedilno vrsto podatkov, razen če želite omejiti vnos