postgresql
Gegevenstypen
Zoeken…
Invoering
PostgreSQL heeft een uitgebreide set native gegevenstypen die beschikbaar zijn voor gebruikers. Gebruikers kunnen nieuwe typen toevoegen aan PostgreSQL met de opdracht CREATE TYPE.
Numerieke typen
Naam | Opslag grootte | Beschrijving | reeks |
---|---|---|---|
smallint | 2 bytes | klein bereik geheel getal | -32768 tot +32767 |
integer | 4 bytes | ypical keuze voor geheel getal | -2147483648 tot +2147483647 |
bigint | 8 bytes | groot bereik geheel getal | -9223372036854775808 tot +9223372036854775807 |
decimal | veranderlijk | door de gebruiker gespecificeerde precisie, exact | tot 131072 cijfers vóór de komma; tot 16383 cijfers achter de komma |
numeric | veranderlijk | door de gebruiker gespecificeerde precisie, exact | tot 131072 cijfers vóór de komma; tot 16383 cijfers achter de komma |
real | 4 bytes | variabele precisie, onnauwkeurig | 6 decimale cijfers precisie |
double precision | 8 bytes | variabele precisie, onnauwkeurig | 15 decimale cijfers precisie |
smallserial | 2 bytes | klein automatisch oplopend getal | 1 tot 32767 |
serial | 4 bytes | automatisch oplopend geheel getal | 1 tot 2147483647 |
bigserial | 8 bytes | groot automatisch oplopend getal | 1 tot 9223372036854775807 |
int4range | Bereik van geheel getal | ||
int8range | Bereik van bigint | ||
numrange | Bereik van numerieke |
Datum / tijd-typen
Naam | Opslag grootte | Beschrijving | Lage waarde | Hoge waarde | Resolutie |
---|---|---|---|---|---|
timestamp (zonder tijdzone) | 8 bytes | zowel datum als tijd (geen tijdzone) | 4713 v.Chr | 294276 AD | 1 microseconde / 14 cijfers |
timestamp (met tijdzone) | 8 bytes | zowel datum als tijd, met tijdzone | 4713 v.Chr | 294276 AD | 1 microseconde / 14 cijfers |
date | 4 bytes | datum (geen tijd van de dag) | 4713 v.Chr | 5874897 AD | 1 dag |
time (zonder tijdzone) | 8 bytes | tijd van de dag (geen datum) | 00:00:00 | 24:00:00 | 1 microseconde / 14 cijfers |
time (met tijdzone) | 12 bytes | alleen tijden van de dag, met tijdzone | 00: 00: 00 + 1459 | 24: 00: 00-1459 | 1 microseconde / 14 cijfers |
interval | 16 bytes | tijdsinterval | -178000000 jaar | 178000000 jaar | 1 microseconde / 14 cijfers |
tsrange | bereik van tijdstempel zonder tijdzone | ||||
tstzrange | bereik van tijdstempel met tijdzone | ||||
daterange | datumbereik |
Geometrische typen
Naam | Opslag grootte | Beschrijving | Vertegenwoordiging |
---|---|---|---|
point | 16 bytes | Wijs op een vliegtuig | (X, y) |
line | 32 bytes | Oneindige lijn | {ABC} |
lseg | 32 bytes | Eindig lijnsegment | ((X1, y1), (x2, y2)) |
box | 32 bytes | Rechthoekige doos | ((X1, y1), (x2, y2)) |
path | 16 + 16n bytes | Gesloten pad (vergelijkbaar met polygoon) | ((X1, y1), ...) |
path | 16 + 16n bytes | Open pad | [(X1, y1), ...] |
polygon | 40 + 16n bytes | Veelhoek (vergelijkbaar met gesloten pad) | ((X1, y1), ...) |
circle | 24 bytes | Cirkel | <(x, y), r> (middelpunt en straal) |
Typen netwerkadres
Naam | Opslag grootte | Beschrijving |
---|---|---|
cidr | 7 of 19 bytes | IPv4- en IPv6-netwerken |
inet | 7 of 19 bytes | IPv4- en IPv6-hosts en -netwerken |
macaddr | 6 bytes | MAC-adressen |
Tekensoorten
Naam | Beschrijving |
---|---|
character varying(n) , varchar(n) | variabele lengte met limiet |
character(n) , char(n) | vaste lengte, blanco gevoerd |
text | variabele onbeperkte lengte |
arrays
In PostgreSQL kunt u arrays maken van elk ingebouwd, door de gebruiker gedefinieerd of enum-type. Standaard is er geen limiet voor een array, maar u kunt deze opgeven.
Een array verklaren
SELECT integer[];
SELECT integer[3];
SELECT integer[][];
SELECT integer[3][3];
SELECT integer ARRAY;
SELECT integer ARRAY[3];
Een array maken
SELECT '{0,1,2}';
SELECT '{{0,1},{1,2}}';
SELECT ARRAY[0,1,2];
SELECT ARRAY[ARRAY[0,1],ARRAY[1,2]];
Toegang tot een array
Standaard gebruikt PostgreSQL een op één gebaseerde nummeringsconventie voor arrays, dat wil zeggen dat een array van n-elementen begint met array[1]
en eindigt met 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)
Informatie krijgen over een array
--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)
Matrixfuncties
zal toegevoegd worden
Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow