postgresql
Datentypen
Suche…
Einführung
PostgreSQL verfügt über eine Vielzahl an systemeigenen Datentypen, die den Benutzern zur Verfügung stehen. Benutzer können mit dem Befehl CREATE TYPE neue Typen zu PostgreSQL hinzufügen.
Numerische Typen
Name | Speichergröße | Beschreibung | Angebot |
---|---|---|---|
smallint | 2 Bytes | Ganzzahl mit kleinem Bereich | -32768 bis +32767 |
integer | 4 Bytes | ypical Wahl für Ganzzahl | -2147483648 bis +2147483647 |
bigint | 8 Bytes | Large Range Integer | -9223372036854775808 bis +9223372036854775807 |
decimal | Variable | benutzerspezifizierte Genauigkeit, genau | bis zu 131072 Stellen vor dem Dezimalpunkt; bis zu 16383 Nachkommastellen |
numeric | Variable | benutzerspezifizierte Genauigkeit, genau | bis zu 131072 Stellen vor dem Dezimalpunkt; bis zu 16383 Nachkommastellen |
real | 4 Bytes | variable Genauigkeit, ungenau | 6 Dezimalstellen Genauigkeit |
double precision | 8 Bytes | variable Genauigkeit, ungenau | 15 Dezimalstellen Genauigkeit |
smallserial | 2 Bytes | kleine Ganzzahl mit automatischer Inkrementierung | 1 bis 32767 |
serial | 4 Bytes | Autoincrementing-Ganzzahl | 1 bis 2147483647 |
bigserial | 8 Bytes | große autoincrementing-Ganzzahl | 1 bis 9223372036854775807 |
int4range | Bereich der ganzen Zahl | ||
int8range | Bereich von bigint | ||
numrange | Bereich der numerischen |
Datums- / Zeittypen
Name | Speichergröße | Beschreibung | Niedriger Wert | Hochwertig | Auflösung |
---|---|---|---|---|---|
timestamp (ohne Zeitzone) | 8 Bytes | Datum und Uhrzeit (keine Zeitzone) | 4713 v | 294276 n. Chr | 1 Mikrosekunde / 14 Ziffern |
timestamp (mit Zeitzone) | 8 Bytes | sowohl Datum als auch Uhrzeit mit Zeitzone | 4713 v | 294276 n. Chr | 1 Mikrosekunde / 14 Ziffern |
date | 4 Bytes | Datum (keine Tageszeit) | 4713 v | 5874897 n. Chr | 1 Tag |
time (ohne Zeitzone) | 8 Bytes | Tageszeit (kein Datum) | 00:00:00 | 24:00:00 | 1 Mikrosekunde / 14 Ziffern |
time (mit Zeitzone) | 12 Bytes | Nur Tageszeiten mit Zeitzone | 00: 00: 00 + 1459 | 24: 00: 00-1459 | 1 Mikrosekunde / 14 Ziffern |
interval | 16 Bytes | Zeitintervall | -178000000 Jahre | 178000000 Jahre | 1 Mikrosekunde / 14 Ziffern |
tsrange | Zeitstempelbereich ohne Zeitzone | ||||
tstzrange | Zeitstempelbereich mit Zeitzone | ||||
daterange | Datumsbereich |
Geometrische Typen
Name | Speichergröße | Beschreibung | Darstellung |
---|---|---|---|
point | 16 Bytes | Zeigen Sie auf eine Ebene | (x, y) |
line | 32 Bytes | Unendliche Linie | {ABC} |
lseg | 32 Bytes | Endliches Liniensegment | ((x1, y1), (x2, y2)) |
box | 32 Bytes | Rechteckige Box | ((x1, y1), (x2, y2)) |
path | 16 + 16n Bytes | Geschlossener Pfad (ähnlich wie Polygon) | ((x1, y1), ...) |
path | 16 + 16n Bytes | Pfad öffnen | [(x1, y1), ...] |
polygon | 40 + 16n Bytes | Polygon (ähnlich wie geschlossener Pfad) | ((x1, y1), ...) |
circle | 24 Bytes | Kreis | <(x, y), r> (Mittelpunkt und Radius) |
Typen der Netzwerkadressen
Name | Speichergröße | Beschreibung |
---|---|---|
cidr | 7 oder 19 Bytes | IPv4- und IPv6-Netzwerke |
inet | 7 oder 19 Bytes | IPv4- und IPv6-Hosts und -Netzwerke |
macaddr | 6 Bytes | MAC-Adressen |
Zeichentypen
Name | Beschreibung |
---|---|
character varying(n) , varchar(n) | variable Länge mit Limit |
character(n) , character(n) char(n) | Feste Länge, leer aufgefüllt |
text | variable unbegrenzte Länge |
Arrays
In PostgreSQL können Sie Arrays aller integrierten, benutzerdefinierten oder Aufzählungstypen erstellen. Standardmäßig gibt es keine Begrenzung für ein Array, Sie können es jedoch angeben.
Ein Array deklarieren
SELECT integer[];
SELECT integer[3];
SELECT integer[][];
SELECT integer[3][3];
SELECT integer ARRAY;
SELECT integer ARRAY[3];
Array erstellen
SELECT '{0,1,2}';
SELECT '{{0,1},{1,2}}';
SELECT ARRAY[0,1,2];
SELECT ARRAY[ARRAY[0,1],ARRAY[1,2]];
Zugriff auf ein Array
Standardmäßig verwendet PostgreSQL eine Ein-Nummerierungs-Konvention für Arrays, dh ein Array von n Elementen beginnt mit array[1]
und endet mit array[n]
.
--accesing a spefific element
WITH arr AS (SELECT ARRAY[0,1,2] int_arr) SELECT int_arr[1] FROM arr;
int_arr
---------
0
(1 row)
--sclicing an array
WITH arr AS (SELECT ARRAY[0,1,2] int_arr) SELECT int_arr[1:2] FROM arr;
int_arr
---------
{0,1}
(1 row)
Informationen zu einem Array abrufen
--array dimensions (as text)
with arr as (select ARRAY[0,1,2] int_arr) select array_dims(int_arr) from arr;
array_dims
------------
[1:3]
(1 row)
--length of an array dimension
WITH arr AS (SELECT ARRAY[0,1,2] int_arr) SELECT array_length(int_arr,1) FROM arr;
array_length
--------------
3
(1 row)
--total number of elements across all dimensions
WITH arr AS (SELECT ARRAY[0,1,2] int_arr) SELECT cardinality(int_arr) FROM arr;
cardinality
-------------
3
(1 row)
Array-Funktionen
wird hinzugefügt werden
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow