GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Tipi di dati PostgreSQL

Introduzione

PostgreSQL è un sistema di gestione di database relazionali open source noto per la sua robustezza ed estensibilità. Ciò significa anche che PostgreSQL offre una varietà di tipi di dati per gli utenti.

In questo tutorial tratteremo i diversi tipi di dati integrati disponibili in PostgreSQL.

Tipi di dati PostgreSQL

Quando crei una tabella in PostgreSQL, puoi specificare un tipo di dati per ogni colonna. PostgreSQL supporta un'ampia gamma di tipi di dati integrati:

Personaggio

PostgreSQL utilizza tipi di dati carattere per memorizzare valori di testo. Ci sono tre tipi di dati di carattere in PostgreSQL:

Nome Descrizione
carattere(n), carattere(n) Stringhe a lunghezza fissa, dove n è il numero di caratteri. Spazio vuoto riempito a destra per essere uguale a n .
carattere variabile(n), varchar(n) Stringa di lunghezza variabile con un limite di caratteri, dove n è il numero di caratteri.
testo Stringa illimitata di lunghezza variabile.

Tipi numerici

Tipi di dati numerici includere:

  • Interi a due, quattro e otto byte
  • Numeri in virgola mobile a quattro e otto byte
  • Decimali selezionabili:
Nome Dimensioni di archiviazione Descrizione Intervallo
piccolo lavoro 2 byte Intero di piccolo intervallo. -32768 a +32767
numero intero 4 byte Intero medio. -2147483648 a +2147483647
grande 8 byte Intero a grande intervallo. -9223372036854775808 a 9223372036854775807
decimale variabile Decimale di precisione specificato dall'utente. Fino a 131072 cifre prima del punto decimale. Fino a 16383 cifre dopo il punto decimale
numerico variabile Decimale di precisione specificato dall'utente. fino a 131072 cifre prima del punto decimale. Fino a 16383 cifre dopo il punto decimale
reale 4 byte Decimale di precisione variabile. Precisione a 6 cifre decimali
doppia precisione 8 byte Decimale di precisione variabile. Precisione a 15 cifre decimali
piccolo serial 2 byte Numero intero piccolo con incremento automatico. da 1 a 32767
seriale 4 byte Intero medio autoincrementante. 1 a 2147483647
grande serie 8 byte Numero intero grande con incremento automatico. 1 a 9223372036854775807

Denaro

Il tipo di dati monetari memorizza una quantità numerica di denaro con precisione frazionaria fissa. Questo tipo memorizza fino a 8 byte di dati con un intervallo da -92233720368547758.08 a +92233720368547758.07 e utilizza numerico , numero intero e bigint tipi di dati come valori.

Data/Ora

PostgreSQL Supporta tutti i tipi di dati di data e ora SQL standard , con una risoluzione di 1 microsecondo o 14 cifre. La data è l'unica eccezione, con risoluzione di un giorno, conteggiata secondo il calendario gregoriano:

Nome Dimensioni di archiviazione Descrizione Intervallo
indicatore orario 8 byte Data e ora, senza fuso orario. 4713 aC al 294276 dC
timestampz 8 byte Data e ora, con fuso orario. 4713 aC al 294276 dC
data 4 byte Data. 4713 aC al 294276 dC
ora senza fuso orario 8 byte Ora del giorno, senza fuso orario. 00:00:00 alle 24:00:00
ora con fuso orario 12 byte Ora del giorno, con fuso orario. 00:00:00 + 1459 alle 24:00:00-1459
intervallo 12 byte Intervallo di tempo. -178000000 a 178000000 anni

Binario

PostgreSQL può salvare stringhe binarie di lunghezza variabile come tipo di dati bytea , prendendo 1 o 4 byte più la dimensione della stringa binaria effettiva.

Booleano

Un tipo di dati booleano è dichiarato utilizzando bool o boolean parole chiave. Può valere vero (1) , falso (0) o sconosciuto (null) valori.

Enumerato

Tipi di dati enumerati sono costituiti da un insieme di valori statici e ordinati, ad esempio numeri da 1 a 10 o mesi nell'anno. A differenza di altri tipi di dati, puoi creare tipi enumerati utilizzando il create type comando:

CREATE TYPE year AS ENUM ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');

Stringa di bit

Tipo stringa di bit memorizza stringhe di 1 e 0, utilizzate per memorizzare o visualizzare maschere di bit:

Nome Descrizione
bit(n) Memorizza una stringa di bit con una lunghezza fissa di n caratteri.
variabile(n) Memorizza una stringa di bit di lunghezza variabile, fino a n caratteri.

UUID

Un UUID (Identificatori univoci universali) è un insieme di 32 cifre creato da un algoritmo. È costituito da diversi gruppi di quattro, otto e dodici cifre, separati da trattini:

Indirizzo di rete

PostgreSQL utilizza tipi di dati di indirizzi di rete per memorizzare indirizzi IPv4, IPv6 e MAC:

Nome Dimensioni di archiviazione Descrizione
cidro 7 o 19 byte Memorizza le reti IPv4 e IPv6.
inet 7 o 19 byte Memorizza host e reti IPv4 e IPv6.
macaddr 6 byte Memorizza gli indirizzi MAC.

L'utilizzo dei tipi di dati dell'indirizzo di rete presenta diversi vantaggi rispetto all'utilizzo del testo normale. Ciò include il risparmio di spazio di archiviazione, funzioni e comandi specializzati e un controllo degli errori più semplice.

Ricerca di testo

Tipo di dati di ricerca di testo ti consente di cercare la corrispondenza migliore in una raccolta di documenti in linguaggio naturale:

Nome Descrizione
tsvector Rappresenta un documento ottimizzato per la ricerca testuale, con un elenco di parole distinte normalizzate per unire diverse varianti della stessa parola (lessemi).
tsquery Memorizza le parole chiave che devono essere ricercate e le combina utilizzando gli operatori booleani (AND, OR e NOT).

Geometrico

Tipi di dati geometrici rappresentano oggetti spaziali resi in due dimensioni, come punti, linee e poligoni:

Nome Dimensioni di archiviazione Rappresentanza Descrizione numerica
punto 16 byte Punta su un piano. (x,y)
linea 32 byte Linea infinita. ((x1,y1),(x2,y2))
lseg 32 byte Segmento di linea finito. ((x1,y1),(x2,y2))
scatola 32 byte Scatola rettangolare. ((x1,y1),(x2,y2))
percorso 16+16n byte Percorso aperto o chiuso. ((x1,y1),...(xn,yn))
poligono 40+16n byte Poligono. ((x1,y1),...(xn,yn))
cerchio 24 byte Cerchio. ((x,y),r) (punto centrale e raggio)

XML

PostgreSQL ti consente di salvare i dati XML come tipo di dati XML utilizzando il XMLPARSE funzione:

XMLPARSE (DOCUMENT [document name] WELLFORMED)

oppure:

XMLPARSE (CONTENT [XML content] WELLFORMED)

Dove:

  • [document name] :un documento XML con radice singola.
  • [XML content] :valore XML valido
  • WELLFORMED :questa opzione garantisce che [nome documento] o [contenuto XML] si risolvano in un documento XML ben formato. Usalo solo quando non vuoi che il database controlli se l'input è ben formato.

JSON

PostgreSQL offre due tipi di dati JSON :

  • json: Un'estensione del tipo di dati di testo con convalida JSON. Questo tipo di dati salva i dati esattamente come sono (inclusi gli spazi bianchi). Puoi inserirlo rapidamente nel database, ma è relativamente lento da recuperare a causa della rielaborazione.
  • jsonb: Rappresenta i dati JSON in un formato binario. Più lento da inserire nel database, ma il supporto per l'indicizzazione e la mancanza di rielaborazione rendono il recupero significativamente più veloce.

Matrice

Il tipo di dati dell'array consente di definire una colonna di una tabella come matrice multidimensionale che può utilizzare qualsiasi tipo di dati di base, enumerato o composito. Puoi dichiarare, modificare e cercare array come faresti con qualsiasi altra colonna nel database.

Composito

Tipi di dati compositi consentono di utilizzare una riga o un record di una tabella come elemento di dati. Analogamente ai tipi di dati array, puoi anche dichiarare, cercare e modificare valori composti.

Raggio

Tipi di dati sull'intervallo utilizzare intervalli discreti o continui di altri tipi di dati. I tipi di dati dell'intervallo integrati includono:

Nome Descrizione
int4range Intervallo di numeri interi di medie dimensioni.
int8range Intervallo di numeri interi grandi.
intervallo numerico Intervallo di decimali di precisione specificati dall'utente.
strano Intervallo di orari e date senza fuso orario.
tstzrange Intervallo di orari e date con fuso orario.
intervallo di date Intervallo di date.

Puoi anche creare tipi di intervallo personalizzati utilizzando altri tipi di dati come base.

Identificatore oggetto

PostgreSQL utilizza identificatori di oggetti come sistemi di chiavi primarie durante l'esecuzione di operazioni di input e output specializzate:

Nome Riferimenti Descrizione
oide qualsiasi Identificatore di oggetto numerico.
regproc pg_proc Nome funzione.
procedura di registrazione pg_proc Funzione con i tipi di argomento.
regolatore operatore_pg Nome operatore.
regoperator operatore_pg Operatore con tipi di argomento.
regclass pg_class Nome relazione.
regtype pg_type Nome del tipo di dati.
regconfig pg_ts_config Configurazione ricerca testo.
regdizionario pg_ts_dict Dizionario di ricerca di testo.

Pseudotipi

I tipi pseudo sono una raccolta di voci speciali per dichiarare l'argomento di una funzione o il tipo di risultato:

Nome Descrizione
qualsiasi La funzione accetta qualsiasi tipo di dati di input.
qualsiasi elemento La funzione accetta qualsiasi tipo di dati.
qualsiasi array La funzione accetta qualsiasi tipo di dati array.
anynonarray La funzione accetta qualsiasi tipo di dati non array.
qualsiasi La funzione accetta qualsiasi tipo di dati enumerato.
qualsiasi intervallo La funzione accetta qualsiasi tipo di dati di intervallo.
cstring La funzione accetta o restituisce una stringa C con terminazione null.
interno La funzione accetta o restituisce il tipo di dati interno al server.
gestore_lingua La funzione restituisce il gestore della lingua.
fdw_handler Un gestore wrapper di dati esterni restituisce fdw_handler.
record Trova una funzione che restituisce un tipo di riga non specificato.
attivatore Una funzione trigger restituisce trigger.
vuoto La funzione non restituisce alcun valore.

Ubuntu
  1. PostgreSQL vs MySQL:un confronto dettagliato

  2. Tipi di dati Cassandra:integrati, di raccolta e definiti dall'utente

  3. Come configurare postgresql per la prima volta?

  4. Copia n byte di dati x nel file

  5. Time il tempo di esecuzione di più comandi

Che cos'è la replica dei dati? {Tipi di replica e schemi spiegati}

Installazione di Ubuntu 20.04 PostgreSQL

Installazione di Ubuntu 22.04 PostgreSQL

Ora di sistema

L'indicatore dell'ora non mostra la data/l'ora?

Procedura:Introduzione alla programmazione:variabili, tipi e manipolazione dei dati