PostgreSQL資料型別


資料型別指定要在表欄位中儲存哪種型別的資料。 在建立表時,對於每列必須使用資料型別。
PotgreSQL中主要有三種型別的資料型別。 此外,使用者還可以使用CREATE TYPE SQL命令建立自己的自定義資料型別。

以下是PostgreSQL中主要有三種型別的資料型別:

  • 數值資料型別
  • 字串資料型別
  • 日期/時間資料型別

數值資料型別

數位資料型別用於指定表中的數位資料。

名稱 描述 儲存大小 範圍
smallint 儲存整數,小範圍 2位元組 -32768 至 +32767
integer 儲存整數。使用這個型別可儲存典型的整數 4位元組 -2147483648 至 +2147483647
bigint 儲存整數,大範圍。 8位元組 -9223372036854775808 至 9223372036854775807
decimal 使用者指定的精度,精確 變數 小數點前最多為131072個數位; 小數點後最多為16383個數位。
numeric 使用者指定的精度,精確 變數 小數點前最多為131072個數位; 小數點後最多為16383個數位。
real 可變精度,不精確 4位元組 6位數位精度
double 可變精度,不精確 8位元組 15位數位精度
serial 自動遞增整數 4位元組 1 至 2147483647
bigserial 大的自動遞增整數 8位元組 1 至 9223372036854775807

字串資料型別

String資料型別用於表示字串型別值。

資料型別 描述
char(size) 這裡size是要儲存的字元數。固定長度字串,右邊的空格填充到相等大小的字元。
character(size) 這裡size是要儲存的字元數。 固定長度字串。 右邊的空格填充到相等大小的字元。
varchar(size) 這裡size是要儲存的字元數。 可變長度字串。
character varying(size) 這裡size是要儲存的字元數。 可變長度字串。
text 可變長度字串。

日期/時間資料型別

日期/時間資料型別用於表示使用日期和時間值的列。

名稱 描述 儲存大小 最小值 最大值 解析度
timestamp [ (p) ] [不帶時區 ] 日期和時間(無時區) 8位元組 4713 bc 294276 ad 1微秒/14位元數
timestamp [ (p) ]帶時區 包括日期和時間,帶時區 8位元組 4713 bc 294276 ad
date 日期(沒有時間) 4位元組 4713 bc 5874897 ad 1微秒/14位元數
time [ (p) ] [ 不帶時區 ] 時間(無日期) 8位元組 00:00:00 24:00:00 1微秒/14位元數
time [ (p) ] 帶時區 僅限時間,帶時區 12位元組 00:00:00+1459 24:00:00-1459 1微秒/14位元數
interval [ fields ] [ (p) ] 時間間隔 12位元組 -178000000年 178000000年 1微秒/14位元數

一些其他資料型別

布林型別:

名稱 描述 儲存大小
boolean 它指定truefalse的狀態。 1位元組

貨幣型別:

名稱 描述 儲存大小 範圍
money 貨幣金額 8位元組 -92233720368547758.08 至 +92233720368547758.07

幾何型別:

幾何資料型別表示二維空間物件。最根本的型別: - 形成所有其他型別的基礎。

名稱 儲存大小 表示 描述
point 16位元組 在一個平面上的點 (x,y)
line 32位元組 無限線(未完全實現) ((x1,y1),(x2,y2))
lseg 32位元組 有限線段 ((x1,y1),(x2,y2))
box 32位元組 矩形框 ((x1,y1),(x2,y2))
path 16+16n位元組 封閉路徑(類似於多邊形) ((x1,y1),…)
polygon 40+16n位元組 多邊形(類似于封閉路徑) ((x1,y1),…)
circle 24位元組 <(x,y),r>(中心點和半徑)