PostgreSQL資料型別概述
阿新 • • 發佈:2018-12-18
PostgreSQL支援以下資料型別:
- 布林型別(boolean)
- 字元型別,如
char
,varchar
和text
。 - 數字型別,例如整數和浮點數。
- 時間型別,如
date
,time
,timestamp
- 用於儲存通用唯一識別符號的[UUID]
- array(陣列),用於儲存陣列字串,數字等
- json 儲存json資料
- hstore儲存鍵值對
- 特殊型別,如網路地址、幾何資料、貨幣資料等。
布林
一個[布林]資料型別可以容納三個可能的值之一:true,false或null。您使用boolean
或者 bool
來宣告具有布林資料型別的列。
當將資料插入布林列時,PostgreSQL將其轉換為布林值,例如 1
,yes
,y
,t
,true
會轉換為true;0
,no
,n
, false
,f
會轉換為false。
當您從布林列中查詢資料時候,PostgreSQL會將t
值轉換為true,將f
空格轉換為false。
字元
PostgreSQL的提供了三種[字元資料型別]:char(n)
,varchar(n)
,和text
char(n)
是帶有空格填充的固定長度字元。如果插入的字串短於列的長度,PostgreSQL會填充空格。如果插入的字串長度超過列的長度,PostgreSQL將發出錯誤。varchar(n)
是可變長度的字串。有了varchar(N)
n
字元。當儲存的字串短於列的長度時,PostgreSQL不會填充空格。text
是可變長度的字串。從理論上講,文字資料是一個長度不限的字串。
數字
PostgreSQL提供兩種不同型別的數字:
- 整數
- 浮點數
整數
PostgreSQL中有三種整數:
- smallint(
小整數
別名int2
)是2位元組有符號整數,範圍從-32,768到32,767。 - integer(別名:
int
、int4
)是一個4位元組的整數,範圍從-2,147,483,648到-2,147,483,647。 - bigint(別名:
int8
- serial(別名:
serial2
、serial4
、serial8
)最大值與整數相同,只是PostgreSQL會自動生成值並將值填充到serial
列中。這類似於MySQL中的AUTO_INCREMENT
浮點數
有三種主要型別的浮點數:
float(n)
是一個浮點數,其精度至少為n,最多為8個位元組。real
或者float8
是雙精度(8位元組)浮點數。numeric
或者numeric(p,s)
是帶小數點後帶有s數的p位數的實數。這numeric(p,s)
是確切的數字。
時間資料型別
時態資料型別允許您儲存日期和/或時間資料。PostgreSQL有五種主要的時態資料型別:
date
僅儲存日期值。time
儲存時間值。timestamp
儲存日期和時間值。timestampz
是一種時區感知時間戳資料型別。它是帶時區的[時間戳]的縮寫。interval
儲存一段時間,時間間隔。
這timestampz
是PostgreSQL對SQL標準的時間資料型別的擴充套件。
陣列
在PostgreSQL中有儲存字串,整數等型別的陣列。該陣列在某些情況下會派上用場,例如,儲存一週中的幾天,一年中的幾個月。
JSON
PostgreSQL提供2種JSON的資料型別:json
和jsonb
用於儲存json資料。
在json
需要為每個處理重新分析資料型別儲存json資料,而jsonb
在二進位制格式這是更快處理,但速度慢於插入資料型別儲存json資料。另外,jsonb
支援索引,這可能是一個優勢。
UUID
該UUID
資料型別允許您儲存通用唯一識別符號被定義 。這些UUID
值保證了更好的唯一性,serial
並且可以用於隱藏公開的敏感資料,例如id
中的值。
特殊資料型別
除原始資料型別外,PostgreSQL還提供了幾種與幾何和網路相關的特殊資料型別。
box
- 一個矩形框。line
- 一組積分。point
- 一對幾何數字。lseg
- 線段。polygon
- 封閉的幾何形狀。inet
- IP4地址。macaddr
- 一個MAC
地址。money
-貨幣金額
我的部落格地址