1. 程式人生 > >PostgreSQL資料型別概述

PostgreSQL資料型別概述

PostgreSQL支援以下資料型別:

  • 布林型別(boolean)
  • 字元型別,如charvarchartext
  • 數字型別,例如整數和浮點數。
  • 時間型別,如date,time,timestamp
  • 用於儲存通用唯一識別符號的[UUID]
  • array(陣列),用於儲存陣列字串,數字等
  • json 儲存json資料
  • hstore儲存鍵值對
  • 特殊型別,如網路地址、幾何資料、貨幣資料等。

布林

一個[布林]資料型別可以容納三個可能的值之一:true,false或null。您使用boolean或者 bool來宣告具有布林資料型別的列。

當將資料插入布林列時,PostgreSQL將其轉換為布林值,例如 1yesyttrue會轉換為true;0non, falsef會轉換為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(別名:intint4)是一個4位元組的整數,範圍從-2,147,483,648到-2,147,483,647。
  • bigint(別名:int8
    )是一個八位元組的整數,範圍從-9223372036854775808 到9223372036854775807
  • serial(別名:serial2serial4serial8)最大值與整數相同,只是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的資料型別:jsonjsonb用於儲存json資料。

json需要為每個處理重新分析資料型別儲存json資料,而jsonb在二進位制格式這是更快處理,但速度慢於插入資料型別儲存json資料。另外,jsonb支援索引,這可能是一個優勢。

UUID

UUID資料型別允許您儲存通用唯一識別符號被定義 。這些UUID值保證了更好的唯一性,serial並且可以用於隱藏公開的敏感資料,例如id中的值。

特殊資料型別

除原始資料型別外,PostgreSQL還提供了幾種與幾何和網路相關的特殊資料型別。

  • box- 一個矩形框。
  • line- 一組積分。
  • point- 一對幾何數字。
  • lseg- 線段。
  • polygon- 封閉的幾何形狀。
  • inet- IP4地址。
  • macaddr- 一個 MAC地址。
  • money-貨幣金額

我的部落格地址