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.

https://www.postgresql.org/docs/9.6/static/datatype.html

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