2025年9月25日: PostgreSQL 18 釋出!
支援的版本: 當前 (18) / 17 / 16 / 15 / 14 / 13
開發版本: devel
不支援的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

第 8 章. 資料型別

目錄

8.1. 數值型別
8.1.1. 整數型別
8.1.2. 任意精度數值
8.1.3. 浮點型別
8.1.4. 序列型別
8.2. 貨幣型別
8.3. 字元型別
8.4. 二進位制資料型別
8.4.1. bytea 十六進位制格式
8.4.2. bytea 轉義格式
8.5. 日期/時間型別
8.5.1. 日期/時間輸入
8.5.2. 日期/時間輸出
8.5.3. 時區
8.5.4. 區間輸入
8.5.5. 區間輸出
8.6. 布林型別
8.7. 列舉型別
8.7.1. 列舉型別的宣告
8.7.2. 排序
8.7.3. 型別安全
8.7.4. 實現細節
8.8. 幾何型別
8.8.1. 點
8.8.2. 線
8.8.3. 線段
8.8.4. 矩形
8.8.5. 路徑
8.8.6. 多邊形
8.8.7. 圓
8.9. 網路地址型別
8.9.1. inet
8.9.2. cidr
8.9.3. inetcidr
8.9.4. macaddr
8.9.5. macaddr8
8.10. 位串型別
8.11. 文字搜尋型別
8.11.1. tsvector
8.11.2. tsquery
8.12. UUID型別
8.13. XML型別
8.13.1. 建立 XML 值
8.13.2. 編碼處理
8.13.3. 訪問 XML 值
8.14. JSON型別
8.14.1. JSON 輸入和輸出語法
8.14.2. 設計 JSON 文件
8.14.3. jsonb 包含和存在性
8.14.4. jsonb 索引
8.14.5. jsonb 下標訪問
8.14.6. 轉換
8.14.7. jsonpath 型別
8.15. 陣列
8.15.1. 陣列型別的宣告
8.15.2. 陣列值輸入
8.15.3. 訪問陣列
8.15.4. 修改陣列
8.15.5. 搜尋陣列
8.15.6. 陣列輸入和輸出語法
8.16. 複合型別
8.16.1. 複合型別的宣告
8.16.2. 構建複合值
8.16.3. 訪問複合型別
8.16.4. 修改複合型別
8.16.5. 在查詢中使用複合型別
8.16.6. 複合型別輸入和輸出語法
8.17. 範圍型別
8.17.1. 內建範圍和多範圍型別
8.17.2. 示例
8.17.3. 包含和排斥邊界
8.17.4. 無窮(無界)範圍
8.17.5. 範圍輸入/輸出
8.17.6. 構建範圍和多範圍
8.17.7. 離散範圍型別
8.17.8. 定義新範圍型別
8.17.9. 索引
8.17.10. 範圍約束
8.18. 域型別
8.19. 物件識別符號型別
8.20. pg_lsn 型別
8.21. 偽型別

PostgreSQL 提供了豐富的原生資料型別供使用者使用。使用者可以使用 CREATE TYPE 命令向 PostgreSQL 新增新型別。

表 8.1 顯示了所有內建的通用資料型別。別名 列中列出的許多別名是 PostgreSQL 出於歷史原因在內部使用的名稱。此外,還有一些內部使用或已棄用的型別可用,但此處未列出。

表 8.1. 資料型別

名稱 別名 描述
bigint int8 有符號八位元組整數
bigserial serial8 自增八位元組整數
bit [ (n) ]   固定長度位串
bit varying [ (n) ] varbit [ (n) ] 變長位串
boolean bool 邏輯布林值(真/假)
box   平面上的矩形框
bytea   二進位制資料(“位元組陣列”)
character [ (n) ] char [ (n) ] 固定長度字元字串
character varying [ (n) ] varchar [ (n) ] 變長字元字串
cidr   IPv4 或 IPv6 網路地址
circle   平面上的圓
date   日曆日期(年、月、日)
double precision float, float8 雙精度浮點數(8 位元組)
inet   IPv4 或 IPv6 主機地址
integer int, int4 有符號四位元組整數
interval [ fields ] [ (p) ]   時間間隔
json   文字 JSON 資料
jsonb   二進位制 JSON 資料,已分解
line   平面上的無限長線
lseg   平面上的線段
macaddr   MAC(媒體訪問控制)地址
macaddr8   MAC(媒體訪問控制)地址(EUI-64 格式)
money   貨幣金額
numeric [ (p, s) ] decimal [ (p, s) ] 精度可選的精確數值
path   平面上的幾何路徑
pg_lsn   PostgreSQL 日誌序列號
pg_snapshot   使用者級事務 ID 快照
point   平面上的幾何點
polygon   平面上的閉合幾何路徑
real float4 單精度浮點數(4 位元組)
smallint int2 有符號兩位元組整數
smallserial serial2 自增兩位元組整數
serial serial4 自增四位元組整數
text   變長字元字串
time [ (p) ] [ without time zone ]   一天中的時間(無時區)
time [ (p) ] with time zone timetz 一天中的時間,包含時區
timestamp [ (p) ] [ without time zone ]   日期和時間(無時區)
timestamp [ (p) ] with time zone timestamptz 日期和時間,包含時區
tsquery   文字搜尋查詢
tsvector   文字搜尋文件
txid_snapshot   使用者級事務 ID 快照(已棄用;請參見 pg_snapshot
uuid   通用唯一識別符號
xml   XML 資料

相容性

以下型別(或其拼寫)由SQL: bigint, bit, bit varying, boolean, char, character varying, character, varchar, date, double precision, integer, interval, numeric, decimal, real, smallint, time(帶時區或不帶時區), timestamp(帶時區或不帶時區), xml 指定。

每個資料型別都有一個由其輸入和輸出函式決定的外部表示。許多內建型別具有顯而易見的外部格式。然而,一些型別是 PostgreSQL 特有的,例如幾何路徑,或者有多種可能的格式,例如日期和時間型別。一些輸入和輸出函式是不可逆的,即輸出函式的結果在與原始輸入比較時可能會丟失精度。

提交更正

如果您在文件中發現任何不正確、與您對特定功能的體驗不符或需要進一步澄清的內容,請使用 此表單 報告文件問題。