openGauss中的數(shù)據(jù)類型

openGauss中的常用數(shù)據(jù)類型

參考

數(shù)值類型

整數(shù)類型

名稱 描述 存儲(chǔ)空間 范圍
TINYINT 微整數(shù),別名為INT1。 1字節(jié) 0 ~ 255
SMALLINT 小范圍整數(shù),別名為INT2。 2字節(jié) -32,768 ~ +32,767
INTEGER 常用的整數(shù),別名為INT4。 4字節(jié) -2,147,483,648 ~ +2,147,483,647
BINARY_INTEGER 常用的整數(shù)INTEGER的別名。 4字節(jié) -2,147,483,648 ~ +2,147,483,647
BIGINT 大范圍的整數(shù),別名為INT8。 8字節(jié) -9,223,372,036,854,775,808 ~ +9,223,372,036,854,775,807
int16 十六字節(jié)的大范圍證書,目前不支持用戶用于建表等使用。 16字節(jié) -170,141,183,460,469,231,731,687,303,715,884,105,728 ~ +170,141,183,460,469,231,731,687,303,715,884,105,727

說(shuō)明:

  • TINYINT、SMALLINT、INTEGER、BIGINT和INT16類型存儲(chǔ)各種范圍的數(shù)字,也就是整數(shù)。試圖存儲(chǔ)超出范圍以外的數(shù)值將會(huì)導(dǎo)致錯(cuò)誤。
  • 常用的類型是INTEGER,因?yàn)樗峁┝嗽诜秶?、存?chǔ)空間、性能之間的最佳平衡。一般只有取值范圍確定不超過(guò)SMALLINT的情況下,才會(huì)使用SMALLINT類型。而只有在INTEGER的范圍不夠的時(shí)候才使用BIGINT,因?yàn)榍罢呦鄬?duì)快得多。

任意精度型

名稱 描述 存儲(chǔ)空間 范圍
NUMERIC[(p[,s])],DECIMAL[(p[,s])] 精度p取值范圍為[1,1000],標(biāo)度s取值范圍為[0,p]。說(shuō)明:p為總位數(shù),s為小數(shù)位數(shù)。 用戶聲明精度。每四位(十進(jìn)制位)占用兩個(gè)字節(jié),然后在整個(gè)數(shù)據(jù)上加上八個(gè)字節(jié)的額外開銷。 未指定精度的情況下,小數(shù)點(diǎn)前最大131,072位,小數(shù)點(diǎn)后最大16,383位。
NUMBER[(p[,s])] NUMERIC類型的別名。 用戶聲明精度。每四位(十進(jìn)制位)占用兩個(gè)字節(jié),然后在整個(gè)數(shù)據(jù)上加上八個(gè)字節(jié)的額外開銷。 未指定精度的情況下,小數(shù)點(diǎn)前最大131,072位,小數(shù)點(diǎn)后最大16,383位。

說(shuō)明:

  • 與整數(shù)類型相比,任意精度類型需要更大的存儲(chǔ)空間,其存儲(chǔ)效率、運(yùn)算效率以及壓縮比效果都要差一些。在進(jìn)行數(shù)值類型定義時(shí),優(yōu)先選擇整數(shù)類型。當(dāng)且僅當(dāng)數(shù)值超出整數(shù)可表示最大范圍時(shí),再選用任意精度類型。
  • 使用Numeric/Decimal進(jìn)行列定義時(shí),建議指定該列的精度p以及標(biāo)度s。

序列整型

名稱 描述 存儲(chǔ)空間 范圍
SMALLSERIAL 二字節(jié)序列整型。 2字節(jié) -32,768 ~ +32,767
SERIAL 四字節(jié)序列整型。 4字節(jié) -2,147,483,648 ~ +2,147,483,647
BIGSERIAL 八字節(jié)序列整型。 8字節(jié) -9,223,372,036,854,775,808 ~ +9,223,372,036,854,775,807
LARGESERIAL 十六字節(jié)序列整形。 16字節(jié) -170,141,183,460,469,231,731,687,303,715,884,105,728 ~ +170,141,183,460,469,231,731,687,303,715,884,105,727

說(shuō)明:

SMALLSERIAL、SERIAL、BIGSERIAL和LARGESERIAL類型不是真正的類型,只是為在表中設(shè)置唯一標(biāo)識(shí)做的概念上的便利。因此,創(chuàng)建一個(gè)整數(shù)字段,并且把它的缺省數(shù)值安排為從一個(gè)序列發(fā)生器讀取。應(yīng)用了一個(gè)NOT NULL約束以確保NULL不會(huì)被插入。在大多數(shù)情況下用戶可能還希望附加一個(gè)UNIQUE或PRIMARY KEY約束避免意外地插入重復(fù)的數(shù)值,但這個(gè)不是自動(dòng)的。最后,將序列發(fā)生器從屬于那個(gè)字段,這樣當(dāng)該字段或表被刪除的時(shí)候也一并刪除它。目前只支持在創(chuàng)建表時(shí)候指定SERIAL列,不可以在已有的表中,增加SERIAL列。另外臨時(shí)表也不支持創(chuàng)建SERIAL列。因?yàn)镾ERIAL不是真正的類型,也不可以將表中存在的列類型轉(zhuǎn)化為SERIAL。

浮點(diǎn)類型

名稱 描述 存儲(chǔ)空間 范圍
REAL,FLOAT4 單精度浮點(diǎn)數(shù),不精準(zhǔn)。 4字節(jié) -3.402E+38~3.402E+38,6位十進(jìn)制數(shù)字精度。
DOUBLE PRECISION,FLOAT8 雙精度浮點(diǎn)數(shù),不精準(zhǔn)。 8字節(jié) -1.79E+308~1.79E+308,15位十進(jìn)制數(shù)字精度。
FLOAT[(p)] 浮點(diǎn)數(shù),不精準(zhǔn)。精度p取值范圍為[1,53]。說(shuō)明:p為精度,表示總位數(shù)。 4字節(jié)或8字節(jié) 根據(jù)精度p不同選擇REAL或DOUBLE PRECISION作為內(nèi)部表示。如不指定精度,內(nèi)部用DOUBLE PRECISION表示。
BINARY_DOUBLE 是DOUBLE PRECISION的別名。 8字節(jié) -1.79E+308~1.79E+308,15位十進(jìn)制數(shù)字精度。
DEC[(p[,s])] 精度p取值范圍為[1,1000],標(biāo)度s取值范圍為[0,p]。說(shuō)明:p為總位數(shù),s為小數(shù)位位數(shù)。 用戶聲明精度。每四位(十進(jìn)制位)占用兩個(gè)字節(jié),然后在整個(gè)數(shù)據(jù)上加上八個(gè)字節(jié)的額外開銷。 未指定精度的情況下,小數(shù)點(diǎn)前最大131,072位,小數(shù)點(diǎn)后最大16,383位。
INTEGER[(p[,s])] 精度p取值范圍為[1,1000],標(biāo)度s取值范圍為[0,p]。 用戶聲明精度。每四位(十進(jìn)制位)占用兩個(gè)字節(jié),然后在整個(gè)數(shù)據(jù)上加上八個(gè)字節(jié)的額外開銷。 -

貨幣類型

名稱 存儲(chǔ)容量 描述 范圍
money 8 字節(jié) 貨幣金額 -92233720368547758.08 到 +92233720368547758.07

布爾類型

名稱 描述 存儲(chǔ)空間 取值
BOOLEAN 布爾類型 1字節(jié)。 true:真false:假null:未知(unknown)
  • “真”值的有效文本值是:

    TRUE、't'、'true'、'y'、'yes'、'1' 、'TRUE'、true、整數(shù)范圍內(nèi)12^63-1、整數(shù)范圍內(nèi)-1-2^63。

  • “假”值的有效文本值是:

    FALSE、'f'、'false'、'n'、'no'、'0'、0、'FALSE'、false。

字符類型

名稱 描述 存儲(chǔ)空間
CHAR(n)CHARACTER(n)NCHAR(n) 定長(zhǎng)字符串,不足補(bǔ)空格。n是指字節(jié)長(zhǎng)度,如不帶精度n,默認(rèn)精度為1。 最大為10MB。
VARCHAR(n)CHARACTER VARYING(n) 變長(zhǎng)字符串。PG兼容模式下,n是字符長(zhǎng)度。其他兼容模式下,n是指字節(jié)長(zhǎng)度。 最大為10MB。
VARCHAR2(n) 變長(zhǎng)字符串。是VARCHAR(n)類型的別名。n是指字節(jié)長(zhǎng)度。 最大為10MB。
NVARCHAR2(n) 變長(zhǎng)字符串。n是指字符長(zhǎng)度。 最大為10MB。
NVARCHAR(n) 變長(zhǎng)字符串。是NVARCHAR2(n)類型的別名。n是指字符長(zhǎng)度。 最大為10MB。
TEXT 變長(zhǎng)字符串。 最大為1GB-1,但還需要考慮到列描述頭信息的大小, 以及列所在元組的大小限制(也小于1GB-1),因此TEXT類型最大大小可能小于1GB-1。
CLOB 文本大對(duì)象。是TEXT類型的別名。 最大為1GB-1,但還需要考慮到列描述頭信息的大小, 以及列所在元組的大小限制(也小于1GB-1),因此CLOB類型最大大小可能小于1GB-1。

說(shuō)明:

  • 除了每列的大小限制以外,每個(gè)元組的總大小也不可超過(guò)1GB-1字節(jié),主要受列的控制頭信息、元組控制頭信息以及元組中是否存在NULL字段等影響。

  • NCHAR為bpchar類型的別名,NCHAR(n)為bpchar(n)類型的別名。

  • 超過(guò)1GB的clob只有dbe_lob相關(guān)高級(jí)包支持,系統(tǒng)函數(shù)不支持大于1GBclob。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容