GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

PostgreSQL-Datentypen

Einführung

PostgreSQL ist ein relationales Open-Source-Datenbankverwaltungssystem, das für seine Robustheit und Erweiterbarkeit bekannt ist. Das bedeutet auch, dass PostgreSQL eine Vielzahl von Datentypen für Benutzer anbietet.

In diesem Tutorial behandeln wir die verschiedenen integrierten Datentypen, die in PostgreSQL verfügbar sind.

PostgreSQL-Datentypen

Beim Erstellen einer Tabelle in PostgreSQL können Sie für jede Spalte einen Datentyp angeben. PostgreSQL unterstützt eine breite Palette integrierter Datentypen:

Charakter

PostgreSQL verwendet Zeichendatentypen zum Speichern von Textwerten. Es gibt drei Zeichendatentypen in PostgreSQL:

Name Beschreibung
Zeichen(n), Zeichen(n) Strings fester Länge, wobei n ist die Anzahl der Zeichen. Leerzeichen rechts aufgefüllt, um n zu entsprechen .
Zeichenvariable(n), Varchar(n) String variabler Länge mit einer Zeichenbegrenzung, wobei n ist die Anzahl der Zeichen.
Text Variable Länge, unbegrenzter String.

Numerische Typen

Numerische Datentypen beinhalten:

  • Zwei-, Vier- und Acht-Byte-Ganzzahlen
  • Vier- und Acht-Byte-Gleitkommazahlen
  • Wählbare Dezimalstellen:
Name Speichergröße Beschreibung Bereich
smallint 2 Byte Ganzzahl mit kleinem Bereich. -32768 bis +32767
Ganzzahl 4 Byte Ganzzahl im mittleren Bereich. -2147483648 bis +2147483647
bigint 8 Byte Ganzzahl mit großem Bereich. -9223372036854775808 bis 9223372036854775807
dezimal Variable Benutzerdefinierte Dezimalzahl. Bis zu 131072 Stellen vor dem Dezimalpunkt. Bis zu 16383 Nachkommastellen
numerisch Variable Benutzerdefinierte Dezimalzahl. bis zu 131072 Stellen vor dem Komma. Bis zu 16383 Nachkommastellen
echt 4 Byte Variable Genauigkeit dezimal. 6 Dezimalstellen Genauigkeit
doppelte Genauigkeit 8 Byte Variable Genauigkeit dezimal. 15 Dezimalstellen Genauigkeit
Kleinserie 2 Byte Kleine, automatisch inkrementierende Ganzzahl. 1 bis 32767
Seriennummer 4 Byte Mittelgroße, automatisch inkrementierende Ganzzahl. 1 bis 2147483647
bigserial 8 Byte Große automatisch inkrementierende Ganzzahl. 1 bis 9223372036854775807

Währung

Der monetäre Datentyp speichert einen numerischen Geldbetrag mit fester gebrochener Genauigkeit. Dieser Typ speichert bis zu 8 Byte Daten mit einem Bereich von -92233720368547758,08 bis +92233720368547758,07 und verwendet numerisch , Ganzzahl und bigint Datentypen als Werte.

Datum/Uhrzeit

PostgreSQL unterstützt alle Standard-SQL-Datums- und Zeitdatentypen , mit einer Auflösung von 1 Mikrosekunde oder 14 Stellen. Date ist die einzige Ausnahme, mit einer Auflösung von einem Tag, gezählt nach dem gregorianischen Kalender:

Name Speichergröße Beschreibung Bereich
Zeitstempel 8 Byte Datum und Uhrzeit, ohne Zeitzone. 4713 v. Chr. bis 294276 n. Chr.
Zeitstempel 8 Byte Datum und Uhrzeit mit Zeitzone. 4713 v. Chr. bis 294276 n. Chr.
Datum 4 Byte Datum. 4713 v. Chr. bis 294276 n. Chr.
Zeit ohne Zeitzone 8 Byte Tageszeit, ohne Zeitzone. 00:00:00 bis 24:00:00
Zeit mit Zeitzone 12 Byte Tageszeit, mit Zeitzone. 00:00:00 + 1459 bis 24:00:00-1459
Intervall 12 Byte Zeitintervall. -178000000 bis 178000000 Jahre

Binär

PostgreSQL kann binäre Zeichenfolgen variabler Länge als Bytea-Datentyp speichern , wobei 1 oder 4 Bytes plus die Größe der tatsächlichen Binärzeichenfolge benötigt werden.

Boolesch

Ein boolescher Datentyp wird mit bool deklariert oder boolean Schlüsselwörter. Es kann wahr (1) sein , falsch (0) , oder unbekannt (null) Werte.

Aufgezählt

Aufgezählte Datentypen bestehen aus einer statischen, geordneten Menge von Werten, wie Zahlen von 1 bis 10 oder Monaten im Jahr. Im Gegensatz zu anderen Datentypen können Sie Aufzählungstypen mit create type erstellen Befehl:

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

Bit-String

Bitstringtyp speichert Zeichenfolgen aus Einsen und Nullen, die zum Speichern oder Visualisieren von Bitmasken verwendet werden:

Name Beschreibung
bit(n) Speichert einen Bit-String mit einer festen Länge von n Zeichen.
variierend(n) Speichert eine Bitfolge unterschiedlicher Länge bis zu n Zeichen.

UUID

Eine UUID (Universally Unique Identifiers) ist ein Satz von 32 Ziffern, der von einem Algorithmus erstellt wird. Es besteht aus mehreren Gruppen von vier, acht und zwölf Ziffern, die durch Bindestriche getrennt sind:

Netzwerkadresse

PostgreSQL verwendet Datentypen für Netzwerkadressen zum Speichern von IPv4-, IPv6- und MAC-Adressen:

Name Speichergröße Beschreibung
cidr 7 oder 19 Byte Speichert IPv4- und IPv6-Netzwerke.
inet 7 oder 19 Byte Speichert IPv4- und IPv6-Hosts und -Netzwerke.
macaddr 6 Byte Speichert MAC-Adressen.

Die Verwendung von Netzwerkadressdatentypen hat mehrere Vorteile gegenüber der Verwendung von reinem Text. Dazu gehören das Einsparen von Speicherplatz, spezialisierte Funktionen und Befehle sowie eine einfachere Fehlerprüfung.

Textsuche

Textsuche-Datentyp ermöglicht es Ihnen, in einer Sammlung von Dokumenten in natürlicher Sprache nach der besten Übereinstimmung zu suchen:

Name Beschreibung
tsvektor Stellt ein für die Textsuche optimiertes Dokument dar, mit einer Liste unterschiedlicher Wörter, die normalisiert sind, um verschiedene Varianten desselben Wortes (Lexeme) zusammenzuführen.
tsquery Speichert die Schlüsselwörter, die gesucht werden müssen, und kombiniert sie mit booleschen Operatoren (UND, ODER und NICHT).

Geometrisch

Geometrische Datentypen stellen räumliche Objekte dar, die in zwei Dimensionen gerendert wurden, wie z. B. Punkte, Linien und Polygone:

Name Speichergröße Vertretung Numerische Beschreibung
Punkt 16 Byte Punkt auf einem Flugzeug. (x,y)
Linie 32 Byte Unendliche Linie. ((x1,y1),(x2,y2))
lseg 32 Byte Endliches Liniensegment. ((x1,y1),(x2,y2))
Box 32 Byte Rechteckiger Kasten. ((x1,y1),(x2,y2))
Pfad 16+16n Byte Offener oder geschlossener Pfad. ((x1,y1),...(xn,yn))
Polygon 40+16n Byte Polygon. ((x1,y1),...(xn,yn))
Kreis 24 Byte Kreis. ((x,y),r) (Mittelpunkt und Radius)

XML

Mit PostgreSQL können Sie XML-Daten als XML-Datentyp speichern mit XMLPARSE Funktion:

XMLPARSE (DOCUMENT [document name] WELLFORMED)

oder:

XMLPARSE (CONTENT [XML content] WELLFORMED)

Wo:

  • [document name] :Ein Single-Root-XML-Dokument.
  • [XML content] :Gültiger XML-Wert
  • WELLFORMED :Diese Option garantiert, dass [Dokumentname] oder [XML-Inhalt] in ein wohlgeformtes XML-Dokument aufgelöst werden. Verwenden Sie es nur, wenn Sie nicht möchten, dass die Datenbank prüft, ob die Eingabe wohlgeformt ist.

JSON

PostgreSQL bietet zwei JSON-Datentypen :

  • json: Eine Erweiterung des Textdatentyps mit JSON-Validierung. Dieser Datentyp speichert Daten genau so, wie sie sind (einschließlich Leerzeichen). Sie können es schnell in die Datenbank einfügen, aber es ist aufgrund der erneuten Verarbeitung relativ langsam abzurufen.
  • jsonb: Stellt JSON-Daten in einem Binärformat dar. Das Einfügen in die Datenbank ist langsamer, aber die Indizierungsunterstützung und das Fehlen einer erneuten Verarbeitung machen den Abruf erheblich schneller.

Array

Der Array-Datentyp können Sie eine Spalte einer Tabelle als mehrdimensionales Array definieren, das jeden Basis-, Aufzählungs- oder zusammengesetzten Datentyp verwenden kann. Sie können Arrays wie jede andere Spalte in der Datenbank deklarieren, ändern und durchsuchen.

Komposit

Zusammengesetzte Datentypen ermöglichen es Ihnen, eine Zeile oder einen Datensatz einer Tabelle als Datenelement zu verwenden. Ähnlich wie bei Array-Datentypen können Sie auch zusammengesetzte Werte deklarieren, suchen und ändern.

Bereich

Bereichsdatentypen Verwenden Sie diskrete oder kontinuierliche Bereiche anderer Datentypen. Zu den integrierten Bereichsdatentypen gehören:

Name Beschreibung
int4range Bereich mittelgroßer Ganzzahlen.
int8range Bereich großer Ganzzahlen.
Nummernbereich Bereich der benutzerdefinierten Dezimalstellen.
seltsam Zeit- und Datumsbereich ohne Zeitzone.
tstzbereich Zeit- und Datumsbereich mit einer Zeitzone.
Zeitraum Zeitraum.

Sie können auch benutzerdefinierte Bereichstypen erstellen, indem Sie andere Datentypen als Grundlage verwenden.

Objektkennung

PostgreSQL verwendet Objektbezeichner als Primärschlüsselsysteme, wenn spezialisierte Ein- und Ausgabeoperationen durchgeführt werden:

Name Referenzen Beschreibung
oid beliebig Numerische Objektkennung.
regproc pg_proc Funktionsname.
regprozedur pg_proc Funktion mit Argumenttypen.
regoper pg_operator Betreibername.
Regoperator pg_operator Operator mit Argumenttypen.
regclass pg_class Beziehungsname.
regtype pg_type Name des Datentyps.
regconfig pg_ts_config Konfiguration der Textsuche.
Regierungsverzeichnis pg_ts_dict Textsuchwörterbuch.

Pseudotypen

Pseudotypen sind eine Sammlung spezieller Einträge zum Deklarieren des Argument- oder Ergebnistyps einer Funktion:

Name Beschreibung
beliebig Funktion akzeptiert jeden Eingabedatentyp.
jedes Element Funktion akzeptiert jeden Datentyp.
Anyarray Funktion akzeptiert jeden Array-Datentyp.
beliebiges Nichtarray Funktion akzeptiert jeden Nicht-Array-Datentyp.
anyenum Funktion akzeptiert jeden aufgezählten Datentyp.
beliebig Funktion akzeptiert jeden Bereichsdatentyp.
cstring Funktion akzeptiert oder gibt einen nullterminierten C-String zurück.
intern Funktion akzeptiert oder gibt serverinternen Datentyp zurück.
language_handler Funktion gibt Sprachhandler zurück.
fdw_handler Ein Wrapper-Handler für fremde Daten gibt fdw_handler zurück.
Rekord Sucht eine Funktion, die einen nicht angegebenen Zeilentyp zurückgibt.
Auslöser Eine Trigger-Funktion gibt Trigger zurück.
nichtig Funktion gibt keinen Wert zurück.

Ubuntu
  1. PostgreSQL vs. MySQL:Ein detaillierter Vergleich

  2. Cassandra-Datentypen:Integriert, Sammlung und benutzerdefiniert

  3. Wie konfiguriere ich postgresql zum ersten Mal?

  4. Kopieren Sie n Datenbytes x in die Datei

  5. Timen Sie die Ausführungszeit mehrerer Befehle

Was ist Datenreplikation? {Replikationstypen und Schemas erklärt}

Ubuntu 20.04 PostgreSQL-Installation

Ubuntu 22.04 PostgreSQL-Installation

Systemzeit

Zeitanzeige zeigt Datum/Uhrzeit nicht an?

Gewusst wie:Einführung in die Programmierung – Variablen, Typen und Datenbearbeitung