Tipuri de date PostgreSQL: Caracter - Numeric - Binar - Boolean

Cuprins:

Anonim

PostgreSQL oferă un set bogat de tipuri de date native pentru utilizatori. Utilizatorii pot adăuga noi tipuri cu ajutorul comenzii CREATE TYPE. De asemenea, face interogările mai simple și mai ușor de citit.

Tipuri de date în PostgreSQL

PostgreSQL acceptă următoarele tipuri de date:

  • Tipuri de text
  • Tipuri numerice
  • Date și ore
  • XML
  • JSON
  • Boolean
  • Biți
  • Date binare
  • Reţea
  • Matrice
  • Creați tipul de date
  • Boolean
  • Temporal
  • UUID
  • Matrice
  • JSON
  • Tipuri speciale de date pentru stocarea unei adrese de rețea și date geometrice.

Să studiem în detaliu tipurile de date PostgreSQL

  • Tipuri de date de caracter
  • Tipuri de date numerice
  • Tipuri de date binare
  • Tipul adresei de rețea
  • Tipul de căutare text
  • Tipuri de date Data / Ora
  • Tip boolean
  • Tipuri de date geometrice
  • Tipuri enumerate
  • Tipul intervalului
  • Tip UUID
  • Tipul XML
  • Tip JSON
  • Pseudo-tipuri

Tipuri de date de caracter

PostgreSQL acceptă tipuri de date de caractere pentru stocarea valorilor textului. PostgreSQL construiește tipuri de date de caractere din aceleași structuri interne. PostgreSQL oferă trei tipuri de date de caractere: CHAR (n), VARCHAR (n) și TEXT.

Nume Descriere
varchar (n) Vă permite să declarați lungimea variabilă cu o limită
Char (n) Lungime fixă, căptușit gol
Text Utilizarea poate utiliza acest tip de date pentru a declara o variabilă cu lungime nelimitată

Tipuri de date numerice

PostgreSQL acceptă două tipuri distincte de numere:

  • Numere întregi
  • Numere în virgulă mobilă
Nume Dimensiunea magazinului Gamă
smallint 2 octeți -32768 până la +32767
întreg 4 octeți -2147483648 până la +2147483647
bigint 8 octeți -9223372036854775808 la 9223372036854775807
zecimal variabil Dacă l-ați declarat ca tip de date zecimal variază de la 131072 cifre înainte de punctul zecimal la 16383 cifre după punctul zecimal
numeric variabil Dacă îl declarați ca număr, puteți include un număr de până la 131072 cifre înainte de punctul zecimal la 16383 cifre după punctul zecimal
real 4 octeți 6 cifre zecimale de precizie
dubla 8 octeți Precizie de 15 cifre zecimale

Tipuri de date binare

Un șir binar este o secvență de octeți sau octeți. Tipurile de date postgre binare sunt împărțite în două moduri.

  • Șirurile binare permit stocarea cotelor de valoare zero
  • Octeti neprimabili

Șirurile de caractere nu permit zero octeți și, de asemenea, interzice orice alte valori și secvențe de octet care sunt nevalide conform regulilor de codificare a setului de caractere al bazei de date.

Nume Dimensiunea stocării Descriere
Octet 1 până la 4 octeți plus dimensiunea șirului binar Șir binar de lungime variabilă

Tipul adresei de rețea

Multe aplicații stochează informații despre rețea, cum ar fi adresa IP a utilizatorilor sau

senzori. PostgreSQL are trei tipuri native care vă ajută să optimizați datele de rețea.

Nume mărimea Descriere
cidru 7 sau 19 bye Rețele IPV4 și IPv6
Inet 7 sau 19 octeți IPV4 și IPV5 gazdă și rețele
macaddr 6 octeți Adrese MAC

Utilizarea tipurilor de adrese de rețea are următoarele avantaje

  1. Economie de spațiu de stocare
  2. Verificarea erorilor de intrare
  3. Funcții precum căutarea datelor prin subrețea

Tipul de căutare text

PostgreSQL oferă două tipuri de date care sunt concepute pentru a sprijini căutarea textului complet. Căutarea textului integral este căutarea printr-o colecție de documente în limbaj natural pentru a căuta pe cele care se potrivesc cel mai bine unei interogări.

  • Căutare text Tsvector Tipurile de variabile PostgreSQL reprezintă un document într-o formă optimizată pentru căutare text
  • Căutarea textului de tip interogare stochează cuvintele cheie care trebuie căutate

Tipuri de date Data / Ora

Eticheta de timp PostgreSQL oferă precizie de microsecundă în loc de a doua precizie. Mai mult, aveți și opțiunea de a stoca cu fus orar sau fără. PostgreSQL va converti marcajul de timp cu fusul orar în UTC la intrare și îl va stoca.

Introducerea datei și orei este acceptată în diverse formate, inclusiv Postgres tradițional, ISO 8601. Compatibil cu SQL etc.

PostgreSQL acceptă comenzile pe zi / lună / an. Formatele acceptate sunt DMY, MDY, YMD

Tipuri de date temporale

Nume mărimea Gamă Rezoluţie
Timestamp fără fus orar 8 octeți 4713 î.Hr. până la 294276 d.Hr. 1 microsecundă / 14 cifre
Timestamp cu fus orar 8 octeți 4713 î.Hr. până la 294276 d.Hr. 1 microsecundă / 14 cifre
Data 4 octeți 4713 î.Hr. până la 294276 d.Hr. Într-o zi
Timp fără fus orar 8 octeți 00:00:00 - 24:00:00 1 microsecundă / 14 cifre
Ora cu fusul orar 12 octeți 00:00:00 + 1459 - 24: 00: 00-1459 1 microsecundă / 14 cifre
Interval 12 octeți -178000000 la 178000000 de ani 1 microsecundă / 14 cifre

Exemple:

Intrare Descriere
2025-09-07 ISO 8601, 7 septembrie cu orice stil de dată (format recomandat)
7 septembrie 2025 7 septembrie cu orice stil de întâlnire
07.09.2025 7 septembrie cu MDY, 9 iulie cu DMY
25.09.07 7 septembrie 2025, cu MDY
2025-septembrie-7 7 septembrie cu orice stil de întâlnire
7 septembrie 2018 7 septembrie cu orice stil de întâlnire
7-septembrie-25 7 septembrie 2025, cu YMD
20250907 ISO 8601,7 Sep 20225 în orice mod
2025.250 anul și ziua anului, în acest caz, 7 septembrie 2025
J25250 Întâlnire cu Julian

Ora / ora cu intrare fus orar

Intrare Descriere
11: 19: 38.507 11:19:38 11:19 111938 ISO 8601
11:19 AM La fel ca 11:19
23:19 la fel ca 23:19
23: 19-3 23: 19-03: 00 231900-03 ISO 8601, la fel ca la 23:19 EST
23:19 EST fusul orar specificat ca EST, la fel ca la 23:19 EST

Tip boolean

Un tip de date boolean poate conține

  • Adevărat
  • Fals
  • nul

valori.

Utilizați un bool sau boolean cuvinte cheie pentru a declara o coloană cu tipul de date boolean.

Când introduceți valori într-o coloană booleană, Postgre convertește valori precum

  • da
  • y
  • 1
  • t
  • Adevărat

în 1.

În timp ce valori precum

  • Nu
  • N
  • 0
  • F
  • Fals

sunt convertite la 0

La selectarea datelor, valorile sunt din nou convertite înapoi la da, adevărat, y etc.

Tipuri de date geometrice

Tipurile de date geometrice reprezintă obiecte spațiale bidimensionale. Ele ajută la efectuarea de operații precum rotații, scalare, translație etc.

Nume Dimensiunea stocării Reprezentare Descriere
Punct 16 octeți Arată pe un avion (X y)
Linia 32 octeți Linie infinită ((xl.yl). (x2.y2))
Lseg 32 octeți Segment de linie finită ((xl.yl). (x2.y2))
Cutie 32 octeți Cutie dreptunghiulară ((xl.yl). (x2.y2))
cale 16n + 16n octeți Închideți și deschideți calea ((xl.yl), ...)
Poligon 40 + 16n octeți Poligon [(xl.yl) ....]
Cerc 24 octeți Cerc <(xy) .r> (punctul central și raza)

Tipuri enumerate

Tipul de date PostgreSQL enumerat este util pentru reprezentarea informațiilor care se schimbă rar, cum ar fi codul țării sau codul sucursalei. Tipul de date enumerate este reprezentat într-un tabel cu chei străine pentru a asigura integritatea datelor.

Exemplu:

Culoarea părului este destul de statică într-o bază de date demografică

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

Tipul intervalului

Multe aplicații de afaceri necesită date în intervale. De obicei, două coloane (exemplu: data de începere, data de sfârșit) sunt definite pentru a face față intervalelor. Acest lucru este atât ineficient, cât și dificil de întreținut.

Postgre a construit tipuri de gamă după cum urmează

  • int4range - Afișează intervalul întregului
  • int8range - Afișează gama bigint
  • numrange - Afișează intervalul numeric
  • tstrange - Vă ajută să afișați marca de timp fără fus orar
  • ciudat - Vă permite să afișați marca de timp cu fusul orar
  • interval de date - Interval de date

Tip UUID

Identificările unice universale (UUID) este o cantitate de 128 de biți care este generată de un algoritm. Este foarte puțin probabil ca același identificator să fie generat de o altă persoană din lume folosind același algoritm. De aceea, pentru sistemele distribuite, acești identificatori sunt o alegere ideală, deoarece oferă unicitate într-o singură bază de date. Un UUID este scris ca un grup de cifre hexazecimale cu litere mici, cu diferite grupuri separate prin cratime.

PostgreSQL are un tip de date UUID nativ care consumă 16 octeți de stocare ... UUID este un tip de date ideal pentru cheile primare.

Exemplu:

d5f28c97-b962-43be-9cf8-ca1632182e8e

Postgre acceptă, de asemenea, forme alternative de intrări UUID, cum ar fi toate majusculele, fără cratime, acolade etc.

Tipul XML

PostgreSQL vă permite să stocați date XML într-un tip de date, dar nu este altceva decât o extensie la un tip de date text. Dar avantajul este că verifică dacă intrarea XML este bine formată.

Exemplu:

XMLPARSE (DOCUMENT 'Data Type')

Tip JSON

Pentru a stoca date JSON PostgreSQL oferă 2 tipuri de date

  1. JSON
  2. JSONB
json Jsonb
O extensie simplă a unui tip de date text cu validare JSON O reprezentare binară a datelor JSON
Inserarea este rapidă, dar recuperarea datelor este relativ lentă. Insertul este lent, dar selectați (recuperarea datelor este rapidă)
Salvează datele introduse exact așa cum sunt acestea, inclusiv spațiul alb. Sprijină indexarea. Poate optimiza spațiul alb pentru a face recuperarea mai rapidă.
Reprocesarea la recuperarea datelor Nu este necesară reprocesarea la recuperarea datelor

Cel mai utilizat tip de date JSON ne-a folosit jsonb, cu excepția cazului în care există o nevoie specializată de a utiliza tipul de date JSON.

Exemplu:

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

PostgreSQL are multe intrări cu destinație specială care se numesc pseudo-tipuri. Nu puteți utiliza pseudo-tipuri ca tipuri de coloane PostgreSQL. Sunt folosite pentru a declara sau a argumenta funcției sau a tipului de returnare.

Fiecare dintre pseudo-tipurile disponibile este util în situațiile în care documentele de comportament ale unei funcții nu corespund pur și simplu luării sau returnării unei valori a unui anumit tip de date SQL.

Nume Descriere
Orice Funcția acceptă toate tipurile de date de intrare.
O matrice Funcția acceptă orice tip de date matrice.
Orice element Funcția acceptă orice tip de date.
Orice enumere Funcția acceptă orice tip de date enum.
Nonarray Funcția acceptă orice tip de date non-matrice.
Cstring Funcția acceptă sau returnează șirul C terminat nul.
Intern Funcția internă acceptă sau returnează tipul de date interne ale serverului.
Language_handler Se declară că returnează gestionarul de limbă.
Record Găsiți o funcție care returnează un tip de rând nespecificat.
Declanșator O funcție de declanșare este utilizată pentru a reveni la declanșator.

Este important ca utilizatorul care folosește această funcție să se asigure că funcția se va comporta în siguranță atunci când un pseudo-tip este folosit ca tip de argument.

Cele mai bune practici folosind tipurile de date

  • Folosiți tipul de date „text”, cu excepția cazului în care doriți să limitați intrarea
  • Nu folosiți niciodată „char”.
  • Numerele întregi folosesc „int”. Folosiți bigint numai atunci când aveți numere foarte mari
  • Folosiți „numeric” aproape întotdeauna
  • Utilizați float în PostgreSQL dacă aveți sursa de date IEEE 754

rezumat

  • PostgreSQL oferă un set bogat de tipuri de date native pentru utilizatori
  • PostgreSQL acceptă tipuri de date de caractere pentru stocarea valorilor textului
  • PostgreSQL acceptă două tipuri distincte de numere: 1. Numere întregi, 2. Numere cu virgulă mobilă
  • Un șir binar este o secvență de octeți sau octeți
  • PostgreSQL are un tip de adresă de rețea pentru a vă ajuta să optimizați stocarea datelor de rețea
  • Căutare text Structurile de date PostgreSQL sunt concepute pentru a sprijini căutarea textului complet
  • Data / Ora Tipurile de date PSQL permit informații despre dată și oră în diferite formate
  • Tipurile de câmp boolean Postgres pot conține trei valori 1. Adevărat 2. Fals 3. Nul
  • Tipurile de date geometrice PostgreSQL reprezintă obiecte spațiale bidimensionale
  • Tipurile de date enumerate din PostgreSQL sunt utile pentru a reprezenta informații care se schimbă rar, cum ar fi codul țării sau codul sucursalei
  • Identificările unice universale (UUID) este o cantitate de 128 de biți care este generată de un algoritm
  • PostgreSQL are multe intrări cu destinație specială care se numesc pseudo-tipuri
  • Este recomandată utilizarea tipului de date „text”, cu excepția cazului în care doriți să limitați intrarea