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