Tabulka 3-1. Postgres - Datové typy
Typ | SQL92 nebo SQL3 typ | Popis |
---|---|---|
bool | boolean | logická hodnota (true/false) |
box | obdélník v 2D | |
char(n) | character(n) | řetězec s pevnou délkou |
circle | kružnice v rovině | |
date | date | datum (bez času) |
decimal | decimal(p,s) | numeric pro p <= 9, s = 0 |
float4 | float(p), p < 7 | číslo v poh. řád. čárce s přesnostíp |
float8 | float(p), 7 <= p < 16 | číslo v poh. řád. čárce s přesností p |
inet | IP adresa nebo hostname | |
int2 | smallint | integer 2 byty |
int4 | int, integer | integer 4 byty |
int8 | integer 8 bytů | |
interval | interval | časový interval |
line | přímka v rovině | |
lseg | úsečka v rovině | |
numeric | numeric(p,s) | numerická hodnota pro p == 9, s = 0 |
point | bod v rovině | |
polygon | uzavřený polygon v rovině | |
serial | jednoznačná hodnota (klíč) | |
time | time | čas |
timetz | time with time zone | čas včetně časového pásma |
timestamp | timestamp with time zone | datum/čas |
varchar(n) | character varying(n) | řetězec s proměnnou délkou |
Postgres | SQL92 | Popis |
---|---|---|
getpgusername() | current_user | jméno uživatele |
date('now') | current_date | datum provádění operace |
time('now') | current_time | čas provádění operace |
timestamp('now') | current_timestamp | datum a čas provádění operace |
Lze použít 2- a 4-bytová celá čísla, 4- a 8-bytová čísla v pohyblivé řádové čárce a typ decimal s udanou přesností.
typ | uložení | popis | rozsah |
---|---|---|---|
decimal | proměnné | přesnost udaná uživatelem | ~8000 míst |
float4 | 4 byty | poh. řád. čárka | 6 des. míst |
float8 | 8 bytů | poh. řád. čárka | 15 des. míst |
int2 | 2 byty | celé číslo | -32768 až +32767 |
int4 | 4 byty | dop. typ pro celé číslo | -2147483648 až +2147483647 |
int8 | 8 bytů | velké celé číslo | +/- > 18 platných cifer |
numeric | proměnné | přesnost udaná uživatelem | bez omezení |
serial | 4 byty | ID | 0 až +2147483647 |
SQL92 definuje dva základní typy: char a varchar. Postgres podporuje tyto typy a přidává obecný typ text, který nevyžaduje stanovení horní meze pro délku ukládaného textu.
Typ | Uložení | Doporučení | Popis |
---|---|---|---|
char | 1 byte | SQL92 kompatibilní | jeden znak |
char(n) | (4+n) bytů | SQL92 kompatibilní | řetězec pevné délky doplněný zprava mezerami |
text | (4+x) bytů | doporučeno | proměnná délka |
varchar(n) | (4+n) bytů | SQL92 kompatibilní | proměnná délka se zadaným maximem |
Postgres podporuje typ bool dle SQL3. bool má dvě hodnoty: 'true' a 'false'. Lze použít v logickém výraze a výsledkem logického výrazu je tento typ. Je uložen v jednoum bytu.
Hodnota | Výstup | Vstup |
---|---|---|
True | 't' | TRUE, 't', 'true', 'y', 'yes', '1' |
False | 'f' | FALSE, 'f', 'false', 'n', 'no', '0' |