PostgreSQL數據庫支持多種數據類型,以下是一些常見的數據類型:
-
數值類型:
- 整數類型:smallint, integer, bigint
- 浮點類型:real, double precision, numeric(可以指定精度和數值范圍)
- 定點類型:decimal(p, s)(可以指定總位數和小數位數)
- 二進制整數類型:bit(n)(n為位數)
- 二進制浮點類型:bit varying(n)(n為最大位數)
- 數值類型別名:integer(p)表示一個固定長度的整數,其范圍由p決定;numeric(p, s)表示一個任意精度的有符號十進制數,其范圍由p和s決定。
-
字符串類型:
- 普通字符串類型:char(n)(n為字符數,固定長度)
- 變長字符串類型:varchar(n)(n為最大字符數)
- 文本類型:text(無長度限制)
- 字符串類型別名:char(p)表示一個固定長度的字符串,其長度由p決定;varchar(p)表示一個最大長度為p的字符串;text表示無長度限制的字符串。
-
日期和時間類型:
- 日期類型:date(年-月-日)
- 時間類型:time(時:分:秒)
- 時間戳類型:timestamp(年-月-日 時:分:秒)
- 時間間隔類型:interval(表示時間差,如1天、2小時30分鐘等)
- 日期時間類型:timestamp with time zone(帶時區的時間戳)
- 日期類型別名:date表示一個日期值;time表示一個時間值;timestamp表示一個日期時間值;interval表示一個時間間隔值。
-
布爾類型:
-
二進制數據類型:
- 二進制整數類型:bytea(表示一個字節序列)
- 二進制字符串類型:varchar(n) binary(表示一個最大長度為n的字節序列)
-
其他數據類型:
- 枚舉類型:enum(定義一組有限的值,如status ‘active’, ‘inactive’)
- 數組類型:array(表示一個值的數組,如integer[]、varchar[]等)
- JSON類型:json(表示JSON數據)
- JSONB類型:jsonb(表示二進制格式的JSON數據,對性能優化更好)
- UUID類型:uuid(表示通用唯一標識符)
- 空間數據類型:如point(二維空間點)、line(線段)、polygon(多邊形)等(需要安裝PostGIS擴展)
- XML類型:xml(表示XML數據)
- 幾何類型:如circle(圓)、box(矩形)、path(路徑)等(需要安裝PostGIS擴展)
這些數據類型可以滿足大多數應用程序的需求。在實際應用中,可以根據需要選擇合適的數據類型來存儲和操作數據。