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
它指定true
或false
的狀態。
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>
(中心點和半徑)