Dátové typy PostgreSQL: Znak - Numerické - Binárne - Boolovský

Obsah:

Anonim

PostgreSQL ponúka používateľom bohatú sadu natívnych dátových typov. Používatelia môžu pridávať nové typy pomocou príkazu CREATE TYPE. Vďaka tomu sú dotazy tiež jednoduchšie a čitateľnejšie.

Dátové typy v PostgreSQL

PostgreSQL podporuje nasledujúce dátové typy:

  • Typy textu
  • Číselné typy
  • Dátumy a časy
  • XML
  • JSON
  • Boolovský
  • Bity
  • Binárne údaje
  • Sieť
  • Polia
  • Vytvorte svoj dátový typ
  • Boolovský
  • Dočasný
  • UUID
  • Pole
  • JSON
  • Špeciálne dátové typy na ukladanie sieťovej adresy a geometrických údajov.

Poďme si podrobne preštudovať dátové typy PostgreSQL

  • Charakterové dátové typy
  • Číselné datové typy
  • Binárne dátové typy
  • Typ sieťovej adresy
  • Typ textového vyhľadávania
  • Dátové typy dátumu a času
  • Boolovský typ
  • Typy geometrických údajov
  • Vymenované typy
  • Typ rozsahu
  • Typ UUID
  • Typ XML
  • Typ JSON
  • Pseudotypy

Charakterové dátové typy

PostgreSQL podporuje dátové typy znakov na ukladanie textových hodnôt. PostgreSQL stavia dátové typy znakov z rovnakých vnútorných štruktúr. PostgreSQL ponúka tri znakové dátové typy: CHAR (n), VARCHAR (n) a TEXT.

názov Popis
varchar (n) Umožňuje deklarovať premennú dĺžku s obmedzením
Char (n) Pevná dĺžka, prázdne polstrované
Text Pomocou tohto typu údajov je možné deklarovať premennú s neobmedzenou dĺžkou

Číselné datové typy

PostgreSQL podporuje dva odlišné typy čísel:

  • Celé čísla
  • Čísla s pohyblivou rádovou čiarkou
názov Veľkosť obchodu Rozsah
smallint 2 bajty -32768 až +32767
celé číslo 4 bajty -2147483648 až +2147483647
bigint 8 bajtov -9223372036854775808 až 9223372036854775807
desatinný premenná Ak ste to deklarovali ako desatinné číslo, typ dátového typu sa pohybuje od 13 1072 číslic pred desatinnou čiarkou do 16 383 číslic za desatinnou čiarkou
číselný premenná Ak ho deklarujete ako číslo, môžete do neho pridať číslo až 131072 číslic pred desatinnou čiarkou a 16383 číslic za desatinnou čiarkou.
reálny 4 bajty Presnosť na 6 desatinných číslic
dvojitý 8 bajtov Presnosť na 15 desatinných miest

Binárne dátové typy

Binárny reťazec je postupnosť oktetov alebo bajtov. Binárne dátové typy Postgres sú rozdelené dvoma spôsobmi.

  • Binárne reťazce umožňujú ukladanie kurzov s nulovou hodnotou
  • Netlačiteľné oktety

Reťazce znakov nepovoľujú nula oktetov a tiež zakazujú akékoľvek ďalšie oktetové hodnoty a sekvencie, ktoré sú neplatné podľa pravidiel kódovania znakových sád databázy.

názov Veľkosť úložiska Popis
Byte 1 až 4 bajty plus veľkosť binárneho reťazca Binárny reťazec s premennou dĺžkou

Typ sieťovej adresy

Mnoho aplikácií ukladá sieťové informácie, ako je IP adresa používateľov alebo

senzory. PostgreSQL má tri natívne typy, ktoré vám pomôžu optimalizovať sieťové dáta.

názov Veľkosť Popis
cider 7 alebo 19 bye Siete IPV4 a IPv6
Inet 7 alebo 19 bajtov Hostiteľ a siete IPV4 a IPV5
makaddr 6 bajtov MAC adresy

Používanie typov sieťových adries má nasledujúce výhody

  1. Úspora úložného priestoru
  2. Kontrola chyby vstupu
  3. Funkcie ako vyhľadávanie údajov podľa podsiete

Typ textového vyhľadávania

PostgreSQL poskytuje dva dátové typy, ktoré sú navrhnuté tak, aby podporovali fulltextové vyhľadávanie. Fulltextové vyhľadávanie je prehľadávanie zbierky dokumentov v prírodnom jazyku, ktoré vyhľadáva tie, ktoré sa najlepšie zhodujú s dotazom.

  • Textové vyhľadávanie Tsvector Typy premenných PostgreSQL predstavujú dokument vo forme optimalizovanej pre textové vyhľadávanie
  • Textové vyhľadávanie typu dotazu ukladá kľúčové slová, ktoré je potrebné vyhľadať

Dátové typy dátumu a času

Časová pečiatka PostgreSQL ponúka namiesto druhej presnosti mikrosekundovú presnosť. Okrem toho máte tiež možnosť ukladania s časovým pásmom alebo bez neho. PostgreSQL pri vstupe prevedie časovú pečiatku s časovým pásmom na UTC a uloží ju.

Zadanie dátumu a času je akceptované v rôznych formátoch vrátane tradičných Postgres, ISO 8601. Kompatibilné s SQL atď.

PostgreSQL podporuje objednávanie podľa dňa / mesiaca / roka. Podporované formáty sú DMY, MDY, YMD

Časové typy údajov

názov Veľkosť Rozsah Rozhodnutie
Časová pečiatka bez časového pásma 8 bajtov 4713 pred Kr. Do 294 276 po Kr 1 mikrosekunda / 14 číslic
Časová pečiatka s časovým pásmom 8 bajtov 4713 pred Kr. Do 294 276 po Kr 1 mikrosekunda / 14 číslic
dátum 4 bajty 4713 pred Kr. Do 294 276 po Kr Jeden deň
Čas bez časového pásma 8 bajtov 00:00:00 až 24:00:00 1 mikrosekunda / 14 číslic
Čas s časovým pásmom 12 bajtov 00:00:00 + 1459 až 24: 00: 00-1459 1 mikrosekunda / 14 číslic
Interval 12 bajtov -178000000 až 178000000 rokov 1 mikrosekunda / 14 číslic

Príklady:

Vstup Popis
2025-09-07 ISO 8601, 7. september s akýmkoľvek štýlom dátumu (odporúčaný formát)
7. septembra 2025 7. september s akýmkoľvek štýlom dátumu
7.92525 7. september s MDY, 9. júl s DMY
7.9.25 7. septembra 2025, s MDY
2025 - 7. september 7. september s akýmkoľvek štýlom dátumu
7. september 2018 7. september s akýmkoľvek štýlom dátumu
7. septembra - 25 7. septembra 2025, s YMD
20250907 ISO 8601,7 sept. 20225 v ľubovoľnom režime
2025,250 rok a deň v roku, v tomto prípade 7. september 2025
J25250 Juliánske rande

Čas / čas so zadaním časového pásma

Vstup Popis
11: 19: 38,507 11:19:38 11:19 111938 ISO 8601
11:19 Rovnaké ako 11:19
23:19 rovnako ako 23:19
23: 19-3 23: 19-03: 00 231900-03 ISO 8601, rovnaké ako 23:19 EST
23:19 EST časové pásmo určené ako EST, rovnaké ako 23:19 EST

Boolovský typ

Boolovský dátový typ môže obsahovať

  • Pravdaže
  • Falošné
  • nulový

hodnoty.

Na deklaráciu stĺpca s boolovským údajovým typom použijete bool alebo boolean kľúčové slovo.

Keď vložíte hodnoty do boolovského stĺpca, Postgre prevedie hodnoty ako

  • Áno
  • r
  • 1
  • t
  • pravda

do 1.

Zatiaľ čo hodnoty ako

  • Nie
  • N
  • 0
  • F
  • Falošné

sa prevedú na 0

Pri výbere údajov sa hodnoty znova prevedú späť na áno, true, y atď.

Typy geometrických údajov

Geometrické dátové typy predstavujú dvojrozmerné priestorové objekty. Pomáhajú vykonávať operácie ako rotácie, zmena mierky, preklad atď.

názov Veľkosť úložiska Zastúpenie Popis
Bod 16 bajtov Namierte na rovinu (x, y)
Riadok 32 bajtov Nekonečná čiara ((xl.yl). (x2.y2))
Lseg 32 bajtov Segment konečnej čiary ((xl.yl). (x2.y2))
Krabica 32 bajtov Obdĺžniková krabica ((xl.yl). (x2.y2))
Cesta 16 n + 16 n bajtov Zatvoriť a otvoriť cestu ((xl.yl), ...)
Polygón 40 + 16 n bajtov Polygón [(xl.yl)….]
Kruh 24 bajtov Kruh <(xy) .r> (stredový bod a polomer)

Vymenované typy

Vymenovaný dátový typ PostgreSQL je užitočný na reprezentáciu zriedka sa meniacich informácií, ako je kód krajiny alebo ID pobočky. Typ údajov Enumerated je uvedený v tabuľke s cudzími kľúčmi, aby sa zaistila integrita údajov.

Príklad:

Farba vlasov je v demografickej databáze pomerne statická

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

Typ rozsahu

Mnoho podnikových aplikácií vyžaduje údaje v rozsahu. Spravidla sú definované dva stĺpce (príklad: dátum začatia, dátum ukončenia), ktoré sa zaoberajú rozsahmi. Je to neefektívne aj náročné na údržbu.

Postgre postavil typy radov nasledovne

  • int4range - Zobrazenie rozsahu celého čísla
  • int8range - Zobraziť rozsah bigintu
  • numrange - Zobrazuje číselný rozsah
  • tstrange - Pomôže vám zobraziť časovú pečiatku bez časového pásma
  • divné - umožňuje zobraziť časovú pečiatku s časovým pásmom
  • rozsah dátumov - rozsah dátumov

Typ UUID

Universally Unique Identifies (UUID) je 128-bitová veličina, ktorá je generovaná algoritmom. Je veľmi nepravdepodobné, že rovnaký identifikátor vygeneruje iná osoba na svete pomocou rovnakého algoritmu. Preto sú pre distribuované systémy tieto identifikátory ideálnou voľbou, pretože ponúkajú jedinečnosť v jednej databáze. UUID sa píše ako skupina malých šestnástkových číslic, pričom rôzne skupiny sú oddelené spojovníkmi.

PostgreSQL má natívny dátový typ UUID, ktorý spotrebuje 16 bajtov úložiska ... UUID je ideálny dátový typ pre primárne kľúče.

Príklad:

d5f28c97-b962-43be-9cf8-ca1632182e8e

Postgre tiež akceptuje alternatívne formy vstupov UUID, ako sú všetky veľké písmená, žiadne pomlčky, zátvorky atď.

Typ XML

PostgreSQL vám umožňuje ukladať údaje XML v dátovom type, ale nejde o nič iné ako rozšírenie o textový dátový typ. Výhodou však je, že kontroluje, či je vstupný XML správne vytvorený.

Príklad:

XMLPARSE (DOCUMENT 'Data Type')

Typ JSON

Na ukladanie údajov JSON ponúka PostgreSQL 2 dátové typy

  1. JSON
  2. JSONB
json Jsonb
Jednoduché rozšírenie textového dátového typu s validáciou JSON Binárna reprezentácia údajov JSON
Vloženie je rýchle, ale načítanie údajov pomerne pomalé. Vloženie je pomalé, ale vyberte (načítanie údajov je rýchle)
Ukladá zadané údaje presne tak, ako sú vrátane medzier. Podporuje indexovanie. Môže optimalizovať medzery, aby sa vyhľadávanie urýchlilo.
Spracovanie pri načítaní údajov Pri načítaní údajov sa nevyžaduje opätovné spracovanie

Najbežnejšie používaný dátový typ JSON nás používal jsonb, pokiaľ neexistuje špeciálna potreba použiť dátový typ JSON.

Príklad:

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

Pseudotypy

PostgreSQL má veľa položiek na špeciálne účely, ktoré sa nazývajú pseudotypy. Ako typy stĺpcov PostgreSQL nemôžete používať pseudotypy. Používajú sa na vyhlásenie alebo argument funkcie alebo návratový typ.

Každý z dostupných pseudotypov je užitočný v situáciách, keď dokumenty o chovaní funkcie nezodpovedajú jednoduchému prevzatiu alebo vráteniu hodnoty konkrétneho dátového typu SQL.

názov Popis
akýkoľvek Funkcia prijíma všetky vstupné dátové typy.
Pole Funkcia prijíma akýkoľvek dátový typ poľa.
Ľubovoľný prvok Funkcia akceptuje akýkoľvek dátový typ.
Akékoľvek enum Funkcia akceptuje akýkoľvek dátový typ enum.
Nonarray Funkcia prijíma akýkoľvek dátový typ bez poľa.
Cstring Funkcia prijíma alebo vracia reťazec C zakončený nulou.
Interné Interná funkcia prijíma alebo vracia interný dátový typ servera.
Obsluha jazyka Deklaruje sa návratová obsluha jazyka.
Záznam Nájdite funkciu, ktorá vráti neurčený typ riadku.
Spúšťač Na návrat spúšte sa používa funkcia spúšťača.

Je dôležité, aby sa užívateľ, ktorý používa túto funkciu, ubezpečil, že sa funkcia bude správať bezpečne, keď sa ako typ argumentu použije pseudo-typ.

Najlepšie postupy pri používaní dátových typov

  • Ak nechcete obmedziť vstup, použite dátový typ „text“
  • Nikdy nepoužívajte znak „char“.
  • Celé čísla používajú „int.“ Bigint používajte iba vtedy, keď máte skutočne veľké čísla
  • „Číselné“ používajte takmer vždy
  • Ak máte zdroj údajov IEEE 754, použite float v PostgreSQL

Zhrnutie

  • PostgreSQL ponúka používateľom bohatú sadu natívnych dátových typov
  • PostgreSQL podporuje dátové typy znakov na ukladanie textových hodnôt
  • PostgreSQL podporuje dva odlišné typy čísel: 1. Celé čísla, 2. Čísla s pohyblivou rádovou čiarkou
  • Binárny reťazec je postupnosť bajtov alebo oktetov
  • PostgreSQL má typ sieťovej adresy, ktorý vám pomôže optimalizovať ukladanie sieťových údajov
  • Textové vyhľadávanie Dátové štruktúry PostgreSQL sú navrhnuté tak, aby podporovali fulltextové vyhľadávanie
  • Dátum / čas Dátové typy PSQL umožňujú informácie o dátume a čase v rôznych formátoch
  • Typy polí Boolean Postgres môžu obsahovať tri hodnoty 1. True 2. False 3. Null
  • Geometrické dátové typy PostgreSQL predstavujú dvojrozmerné priestorové objekty
  • Vymenované dátové typy v PostgreSQL sú užitočné na vyjadrenie zriedka sa meniacich informácií, ako je kód krajiny alebo ID pobočky
  • Universally Unique Identifies (UUID) je 128-bitová veličina, ktorá je generovaná algoritmom
  • PostgreSQL má veľa položiek na špeciálne účely, ktoré sa nazývajú pseudotypy
  • Najlepšie je používať „textový“ dátový typ, pokiaľ nechcete obmedziť vstup